fix: Connect atoms not working inside iframe (#25418)

* fix: google connect broken for iframe
* chore: add changesets
* chore: update atoms exports
* chore: update atoms exports
This commit is contained in:
Rajiv Sahal
2025-11-28 11:44:20 -03:00
committed by GitHub
parent a050ccb4ee
commit 8fcbf2c167
3 changed files with 17 additions and 2 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"@calcom/atoms": patch
---
This PR fixes the issue of connect atoms not working inside iframes. It also updates the atoms exports to include the `useAvailableSlots` hook.
@@ -18,7 +18,7 @@ export const useGetRedirectUrl = (
redir?: string,
isDryRun?: boolean
) => {
const redirectUrl = !!redir ? encodeURIComponent(redir) : "";
const redirectUrl = redir ? encodeURIComponent(redir) : "";
const authUrl = useQuery({
queryKey: getQueryKey(calendar),
@@ -49,7 +49,15 @@ export const useConnect = (calendar: (typeof CALENDARS)[number], redir?: string,
const redirectUri = await refetch();
if (redirectUri.data) {
window.location.href = redirectUri.data;
let targetWindow;
if (window !== window.top && window.top) {
// if its an iframe, the target window should be the parent window
targetWindow = window.top;
} else {
targetWindow = window;
}
targetWindow.location.href = redirectUri.data;
}
};
+2
View File
@@ -48,3 +48,5 @@ export { CreateSchedulePlatformWrapper as CreateSchedule } from "./create-schedu
export { CreateScheduleForm } from "./create-schedule/CreateScheduleForm";
export { ListSchedulesPlatformWrapper as ListSchedules } from "./list-schedules/index";
export { useAvailableSlots } from "./hooks/useAvailableSlots";