diff --git a/src/components/setting/mods/service-viewer.tsx b/src/components/setting/mods/service-viewer.tsx index 137c55e8..5c4e97fa 100644 --- a/src/components/setting/mods/service-viewer.tsx +++ b/src/components/setting/mods/service-viewer.tsx @@ -41,8 +41,11 @@ export const ServiceViewer = forwardRef((props, ref) => { const onInstall = useLockFn(async () => { try { await installService(); - mutateCheck(); + await mutateCheck(); setOpen(false); + setTimeout(() => { + mutateCheck(); + }, 2000); Notice.success(t("Service Installed Successfully")); } catch (err: any) { mutateCheck(); diff --git a/src/components/setting/mods/stack-mode-switch.tsx b/src/components/setting/mods/stack-mode-switch.tsx index d671d339..4bb7604f 100644 --- a/src/components/setting/mods/stack-mode-switch.tsx +++ b/src/components/setting/mods/stack-mode-switch.tsx @@ -4,6 +4,7 @@ import { checkService } from "@/services/cmds"; import { useVerge } from "@/hooks/use-verge"; import getSystem from "@/utils/get-system"; import useSWR from "swr"; +import { useEffect } from "react"; const isWIN = getSystem() === "windows"; @@ -17,7 +18,7 @@ export const StackModeSwitch = (props: Props) => { const { verge } = useVerge(); const { enable_service_mode } = verge ?? {}; // service mode - const { data: serviceStatus } = useSWR( + const { data: serviceStatus, mutate: mutateCheck } = useSWR( isWIN ? "checkService" : null, checkService, { @@ -28,6 +29,10 @@ export const StackModeSwitch = (props: Props) => { const { t } = useTranslation(); + useEffect(() => { + mutateCheck(); + }, []); + return (