From 13e7418abc2c7b3c4d9ccea0a178442239773ea4 Mon Sep 17 00:00:00 2001 From: "anton.buksa" Date: Mon, 3 Jun 2024 17:07:32 +0200 Subject: [PATCH] fix calls web dial modal teardown on conference_deleted ws event Changelog: fixed --- webapp/channels/src/actions/kmeet_calls.ts | 16 ++++++++++++++++ .../channels/src/actions/websocket_actions.jsx | 11 +++-------- 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/webapp/channels/src/actions/kmeet_calls.ts b/webapp/channels/src/actions/kmeet_calls.ts index 03c27c2092..3ec3783174 100644 --- a/webapp/channels/src/actions/kmeet_calls.ts +++ b/webapp/channels/src/actions/kmeet_calls.ts @@ -205,3 +205,19 @@ export const closeRingModal = () => { } }; }; + +export function deleteConference(callId: string, channelId: string) { + return (dispatch: DispatchFunc, getState: () => GlobalState) => { + const state = getState(); + if (!isDesktopApp() && state.views.modals.modalState[ModalIdentifiers.INCOMING_CALL]?.dialogProps?.channelId === channelId) { + dispatch(closeModal(ModalIdentifiers.INCOMING_CALL)); + } + dispatch({ + type: ActionTypes.VOICE_CHANNEL_DELETED, + data: { + callID: callId, + channelID: channelId, + }, + }); + }; +} diff --git a/webapp/channels/src/actions/websocket_actions.jsx b/webapp/channels/src/actions/websocket_actions.jsx index 50c0aa3b65..c3c5d9d175 100644 --- a/webapp/channels/src/actions/websocket_actions.jsx +++ b/webapp/channels/src/actions/websocket_actions.jsx @@ -120,7 +120,7 @@ import WebSocketClient from 'client/web_websocket_client'; import {loadPlugin, loadPluginsIfNecessary, removePlugin} from 'plugins'; import {callNoLongerExist, getMyMeets, receivedCall} from './calls'; -import {closeRingModal, externalJoinCall} from './kmeet_calls'; +import {closeRingModal, deleteConference, externalJoinCall} from './kmeet_calls'; import {handleServerEvent} from './servers_actions'; const dispatch = store.dispatch; @@ -1960,13 +1960,8 @@ function handleConferenceDeleted(msg) { if (isDesktopApp()) { window.desktopAPI?.closeRingCallWindow?.(); } - doDispatch({ - type: ActionTypes.VOICE_CHANNEL_DELETED, - data: { - callID: msg.data.url.split('/').at(-1), - channelID: msg.data.channel_id, - }, - }); + + doDispatch(deleteConference(msg.data.url.split('/').at(-1), msg.data.channel_id)); }; }