From a68005d4ab2263300822f843d2cc6035a301232a Mon Sep 17 00:00:00 2001 From: MystiPanda Date: Wed, 21 Feb 2024 10:52:03 +0800 Subject: [PATCH] feat: Disable system stack when service mode is turned off --- .../setting/mods/stack-mode-switch.tsx | 68 +++++++++++++++++++ src/components/setting/mods/tun-viewer.tsx | 17 ++--- 2 files changed, 73 insertions(+), 12 deletions(-) create mode 100644 src/components/setting/mods/stack-mode-switch.tsx diff --git a/src/components/setting/mods/stack-mode-switch.tsx b/src/components/setting/mods/stack-mode-switch.tsx new file mode 100644 index 00000000..9178e051 --- /dev/null +++ b/src/components/setting/mods/stack-mode-switch.tsx @@ -0,0 +1,68 @@ +import { Button, ButtonGroup, Tooltip } from "@mui/material"; +import { checkService } from "@/services/cmds"; +import { useVerge } from "@/hooks/use-verge"; +import getSystem from "@/utils/get-system"; +import useSWR from "swr"; + +const isWIN = getSystem() === "windows"; + +interface Props { + value?: string; + onChange?: (value: string) => void; +} + +export const StackModeSwitch = (props: Props) => { + const { value, onChange } = props; + const { verge } = useVerge(); + const { enable_service_mode } = verge ?? {}; + // service mode + const { data: serviceStatus } = useSWR( + isWIN ? "checkService" : null, + checkService, + { + revalidateIfStale: false, + shouldRetryOnError: false, + } + ); + + return ( + + + + + + + + + ); +}; diff --git a/src/components/setting/mods/tun-viewer.tsx b/src/components/setting/mods/tun-viewer.tsx index 02d22f65..c54dfc04 100644 --- a/src/components/setting/mods/tun-viewer.tsx +++ b/src/components/setting/mods/tun-viewer.tsx @@ -12,6 +12,7 @@ import { } from "@mui/material"; import { useClash } from "@/hooks/use-clash"; import { BaseDialog, DialogRef, Notice } from "@/components/base"; +import { StackModeSwitch } from "./stack-mode-switch"; export const TunViewer = forwardRef((props, ref) => { const { t } = useTranslation(); @@ -84,23 +85,15 @@ export const TunViewer = forwardRef((props, ref) => { - + />