diff --git a/src/frontend/src/features/sdk/routes/CreateMeetingButton.tsx b/src/frontend/src/features/sdk/routes/CreateMeetingButton.tsx index dd0936bf..3b472005 100644 --- a/src/frontend/src/features/sdk/routes/CreateMeetingButton.tsx +++ b/src/frontend/src/features/sdk/routes/CreateMeetingButton.tsx @@ -66,6 +66,7 @@ export const CreateMeetingButton = () => { setRoom(undefined) setCallbackId(undefined) setIsPending(false) + popupManager.clearState() } if (isPending) { diff --git a/src/frontend/src/features/sdk/utils/PopupManager.ts b/src/frontend/src/features/sdk/utils/PopupManager.ts index d5f9889f..f98a4cd3 100644 --- a/src/frontend/src/features/sdk/utils/PopupManager.ts +++ b/src/frontend/src/features/sdk/utils/PopupManager.ts @@ -24,6 +24,21 @@ export class PopupManager { } } + // eslint-disable-next-line @typescript-eslint/no-explicit-any + private messageParent(type: ClientMessageType, data: any) { + window?.parent.postMessage( + { + type: type, + data: data, + }, + '*' + ) + } + + public clearState() { + this.messageParent(ClientMessageType.STATE_CLEAR, {}) + } + public setupMessageListener( onCallbackId: (id: string) => void, onRoomData: (data: CallbackCreationRoomData) => void @@ -39,18 +54,12 @@ export class PopupManager { case PopupMessageType.ROOM_DATA: if (!data?.room) return onRoomData(data.room) - window?.parent.postMessage( - { - type: ClientMessageType.ROOM_CREATED, - data: { - room: { - url: getRouteUrl('room', data.room.slug), - ...data.room, - }, - }, + this.messageParent(ClientMessageType.ROOM_CREATED, { + room: { + url: getRouteUrl('room', data.room.slug), + ...data.room, }, - '*' - ) + }) return } } diff --git a/src/frontend/src/features/sdk/utils/types.ts b/src/frontend/src/features/sdk/utils/types.ts index 1c9c4bde..b3e02bc8 100644 --- a/src/frontend/src/features/sdk/utils/types.ts +++ b/src/frontend/src/features/sdk/utils/types.ts @@ -4,6 +4,7 @@ export type CallbackCreationRoomData = { export enum ClientMessageType { ROOM_CREATED = 'ROOM_CREATED', + STATE_CLEAR = 'STATE_CLEAR', } export interface PopupMessageData { diff --git a/src/sdk/consumer/src/App.tsx b/src/sdk/consumer/src/App.tsx index 8ecf1f2c..5a9468ea 100644 --- a/src/sdk/consumer/src/App.tsx +++ b/src/sdk/consumer/src/App.tsx @@ -21,7 +21,10 @@ function App() {