From e7dccbba6988fa7a176402066eedc3f572afceaa Mon Sep 17 00:00:00 2001 From: yj <1336058017@qq.com> Date: Thu, 15 Aug 2024 11:23:42 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 53 +++++++++++++++++------------------- src/utils/package/signalr.ts | 2 ++ 2 files changed, 27 insertions(+), 28 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index bc324db..f01f485 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -31,7 +31,6 @@ const App: React.FC = () => { }); const [spinning, setSpinning] = useState(false); const [isState, setIsState] = useState(true); - const [isSignalr, setIsSignalr] = useState(true); useEffect(() => { let userInfo = JSON.parse(storage.getItem('user') as string) let loginInfo = JSON.parse(storage.getItem('login') as string) @@ -45,7 +44,6 @@ const App: React.FC = () => { storage.setItem('user', JSON.stringify(res.data)) toSrc('/home') await startSignalr() - onEventSignalr() } else { toSrc('/login') } @@ -153,7 +151,6 @@ const App: React.FC = () => { } }) } - onEventSignalr() storage.setItem('stateInfo', JSON.stringify(state)) }, [state]) const handleResize = (): void => { @@ -171,36 +168,32 @@ const App: React.FC = () => { }; const onEventSignalr = (): void => { - if (isSignalr) { - setIsSignalr(false) - onOtherSignalr(async (item: any) => { - switch (item.key) { - case 'Invitation': - window.electron.joinNotification({ - body: item.roomName, - name: item.InviterName, - }) - joinMeetingModalRef.current.changeModal(item) - break; - case 'ForceLogout': - if (item.msg) { - message.error(item.msg) - } - await leaveChannel(true) - toSrc('/login') - break; - } - }) - onReconnected(async () => { - storage.setItem('reconnect', true) - }) - } + onOtherSignalr(async (item: any) => { + switch (item.key) { + case 'Invitation': + window.electron.joinNotification({ + body: item.roomName, + name: item.InviterName, + }) + joinMeetingModalRef.current.changeModal(item) + break; + case 'ForceLogout': + if (item.msg) { + message.error(item.msg) + } + await leaveChannel(true) + toSrc('/login') + break; + } + }) + onReconnected(async () => { + storage.setItem('reconnect', true) + }) } const toSrc = (path: string): void => { switch (path) { case '/login': onStop() - setIsSignalr(true) window.electron.setMainWindowSize({ width: 752, height: 520, @@ -233,6 +226,10 @@ const App: React.FC = () => { const handleCustomStorageChange = (e: any): void => { if (e.key === 'loading') { setSpinning(Boolean(e.value)) + } else if (e.key === 'isSignalr') { + if (Boolean(e.value)) { + onEventSignalr() + } } }; diff --git a/src/utils/package/signalr.ts b/src/utils/package/signalr.ts index 8fcc67f..54c55ab 100644 --- a/src/utils/package/signalr.ts +++ b/src/utils/package/signalr.ts @@ -11,6 +11,7 @@ export const startSignalr = async () => { }) .build(); onStart() + storage.setItem('isSignalr', true) connection.onclose(async () => { await onStart() }); @@ -162,6 +163,7 @@ export const onInvoke = async (str: string, data: any) => { } export const onStop = async () => { if (connection) { + storage.setItem('isSignalr', false) connection.off('Invitation'); connection.off('ForceLogout'); connection.stop()