From 1f2e46fc60ec6728edc7b92dbb9960f81e25b0c8 Mon Sep 17 00:00:00 2001 From: Tristan Yang Date: Tue, 4 Apr 2023 10:53:07 +0800 Subject: [PATCH] feat: leave voice while logout --- src/common/hook/useLogout.ts | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/common/hook/useLogout.ts b/src/common/hook/useLogout.ts index 5f4ec39f..7788a33e 100644 --- a/src/common/hook/useLogout.ts +++ b/src/common/hook/useLogout.ts @@ -1,3 +1,4 @@ +import { useEffect } from 'react'; import { useDispatch } from "react-redux"; import { resetFootprint } from "../../app/slices/footprint"; import { resetChannels } from "../../app/slices/channels"; @@ -8,6 +9,7 @@ import { resetReactionMessage } from "../../app/slices/message.reaction"; import { resetFileMessage } from "../../app/slices/message.file"; import { resetMessage } from "../../app/slices/message"; import { useLazyLogoutQuery } from "../../app/services/auth"; +import { updateVoicingInfo } from '../../app/slices/voice'; export default function useLogout() { const dispatch = useDispatch(); const [logout, { isLoading, isSuccess }] = useLazyLogoutQuery(); @@ -22,5 +24,15 @@ export default function useLogout() { dispatch(resetFileMessage()); }; + useEffect(() => { + if (isSuccess) { + // 清理当前voicing上下文 + if (window.VOICE_CLIENT) { + window.VOICE_CLIENT.leave(); + dispatch(updateVoicingInfo(null)); + } + } + }, [isSuccess]); + return { clearLocalData, logout, exited: isSuccess, exiting: isLoading }; }