Fix for cases where you're viewing a lobby and hang up your existing call and try to join lobby (was not rendering for the correct room id, but was joining the correct call prior)

This commit is contained in:
Gigiaj 2025-05-25 22:01:57 -05:00
parent 108eb60b4a
commit 1a821961f3

View file

@ -313,10 +313,6 @@ export function CallProvider({ children }: CallProviderProps) {
}; };
activeClientWidgetApi?.transport.reply(ev.detail, {}); activeClientWidgetApi?.transport.reply(ev.detail, {});
if (ev.detail.widgetId === activeClientWidgetApi?.widget.id) {
setIsCallActive(true);
return;
}
if (activeClientWidgetApi) { if (activeClientWidgetApi) {
if (isCallActive && viewedClientWidgetApi && viewedCallRoomId) { if (isCallActive && viewedClientWidgetApi && viewedCallRoomId) {
activeClientWidgetApi?.removeAllListeners(); activeClientWidgetApi?.removeAllListeners();
@ -328,6 +324,10 @@ export function CallProvider({ children }: CallProviderProps) {
} else { } else {
setIsCallActive(true); setIsCallActive(true);
} }
} else if (viewedCallRoomId !== viewedRoomId) {
setViewedCallRoomId(viewedRoomId);
setActiveCallRoomIdState(viewedCallRoomId);
setIsCallActive(true);
} else { } else {
setViewedAsActive(); setViewedAsActive();
} }
@ -347,23 +347,7 @@ export function CallProvider({ children }: CallProviderProps) {
viewedClientWidgetApi?.on(`action:${WIDGET_TILE_UPDATE}`, handleOnTileLayout); viewedClientWidgetApi?.on(`action:${WIDGET_TILE_UPDATE}`, handleOnTileLayout);
viewedClientWidgetApi?.on(`action:${WIDGET_ON_SCREEN_ACTION}`, handleOnScreenStateUpdate); viewedClientWidgetApi?.on(`action:${WIDGET_ON_SCREEN_ACTION}`, handleOnScreenStateUpdate);
viewedClientWidgetApi?.on(`action:${WIDGET_HANGUP_ACTION}`, handleHangup); viewedClientWidgetApi?.on(`action:${WIDGET_HANGUP_ACTION}`, handleHangup);
}, [ }, [activeClientWidgetApi, activeCallRoomId, activeClientWidgetApiRoomId, hangUp, isChatOpen, isAudioEnabled, isVideoEnabled, isCallActive, viewedRoomId, viewedClientWidgetApi, isPrimaryIframe, viewedCallRoomId, setViewedClientWidgetApi, setActiveClientWidgetApi, viewedClientWidget, setViewedCallRoomId]);
activeClientWidgetApi,
activeCallRoomId,
activeClientWidgetApiRoomId,
hangUp,
isChatOpen,
isAudioEnabled,
isVideoEnabled,
isCallActive,
viewedRoomId,
viewedClientWidgetApi,
isPrimaryIframe,
viewedCallRoomId,
setViewedClientWidgetApi,
setActiveClientWidgetApi,
viewedClientWidget,
]);
const sendWidgetAction = useCallback( const sendWidgetAction = useCallback(
async <T = unknown,>(action: WidgetApiToWidgetAction | string, data: T): Promise<void> => { async <T = unknown,>(action: WidgetApiToWidgetAction | string, data: T): Promise<void> => {