From f7077c22b5c8764df818da22513d6e6b2f4123f6 Mon Sep 17 00:00:00 2001 From: Tristan Yang Date: Fri, 14 Jul 2023 07:07:57 +0800 Subject: [PATCH] fix: clear local data after reset msgs --- src/hooks/useLogout.ts | 7 +++++-- src/routes/setting/DataManagement/ClearConfirmModal.tsx | 9 +++++++++ 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/hooks/useLogout.ts b/src/hooks/useLogout.ts index 1429fd39..b26f774c 100644 --- a/src/hooks/useLogout.ts +++ b/src/hooks/useLogout.ts @@ -13,11 +13,14 @@ import { resetUsers } from "@/app/slices/users"; export default function useLogout() { const dispatch = useDispatch(); const [logout, { isLoading, isSuccess }] = useLazyLogoutQuery(); - const clearLocalData = () => { + const clearLocalData = (footprint?: boolean) => { + let fp = typeof footprint === "undefined" ? true : footprint; dispatch(resetChannels()); dispatch(resetUsers()); // 和消息相关的数据 - dispatch(resetFootprint()); + if (fp) { + dispatch(resetFootprint()); + } dispatch(resetChannelMsg()); dispatch(resetUserMsg()); dispatch(resetMessage()); diff --git a/src/routes/setting/DataManagement/ClearConfirmModal.tsx b/src/routes/setting/DataManagement/ClearConfirmModal.tsx index a09be02b..0fb87c3d 100644 --- a/src/routes/setting/DataManagement/ClearConfirmModal.tsx +++ b/src/routes/setting/DataManagement/ClearConfirmModal.tsx @@ -7,6 +7,7 @@ import Modal from "@/components/Modal"; import Button from "@/components/styled/Button"; import StyledModal from "@/components/styled/Modal"; import { VisibleModalType } from "./index"; +import useLogout from "@/hooks/useLogout"; interface Props { context: VisibleModalType; @@ -17,6 +18,7 @@ interface Props { const ClearConfirmModal: FC = ({ context, title, desc, closeModal }) => { // const { t } = useTranslation("auth"); + const { clearLocalData } = useLogout(); const { t: ct } = useTranslation(); const [clearFiles, { isLoading: filesClearing, isSuccess: clearFilesSuccess }] = useLazyClearAllFilesQuery(); @@ -42,6 +44,13 @@ const ClearConfirmModal: FC = ({ context, title, desc, closeModal }) => { closeModal(); } }, [clearSuccess]); + // 即时清除本地数据 + useEffect(() => { + if (clearMsgSuccess) { + clearLocalData(false); + } + }, [clearMsgSuccess]); + const clearing = msgClearing || filesClearing; return (