import useSWR, { useSWRConfig } from "swr"; import { useTranslation } from "react-i18next"; import { Box, ListItemText, Switch, TextField } from "@mui/material"; import { getVergeConfig, patchVergeConfig } from "../../services/cmds"; import { SettingList, SettingItem } from "./setting"; import { CmdType } from "../../services/types"; import GuardState from "./guard-state"; import SysproxyTooltip from "./sysproxy-tooltip"; interface Props { onError?: (err: Error) => void; } const SettingSystem = ({ onError }: Props) => { const { t } = useTranslation(); const { mutate } = useSWRConfig(); const { data: vergeConfig } = useSWR("getVergeConfig", getVergeConfig); const { enable_tun_mode, enable_auto_launch, enable_silent_start, enable_system_proxy, system_proxy_bypass, enable_proxy_guard, } = vergeConfig ?? {}; const onSwitchFormat = (_e: any, value: boolean) => value; const onChangeData = (patch: Partial) => { mutate("getVergeConfig", { ...vergeConfig, ...patch }, false); }; return ( onChangeData({ enable_tun_mode: e })} onGuard={(e) => patchVergeConfig({ enable_tun_mode: e })} > onChangeData({ enable_auto_launch: e })} onGuard={(e) => patchVergeConfig({ enable_auto_launch: e })} > onChangeData({ enable_silent_start: e })} onGuard={(e) => patchVergeConfig({ enable_silent_start: e })} > {t("System Proxy")} } /> onChangeData({ enable_system_proxy: e })} onGuard={async (e) => { await patchVergeConfig({ enable_system_proxy: e }); mutate("getVergeConfig"); // update bypass value }} > {enable_system_proxy && ( onChangeData({ enable_proxy_guard: e })} onGuard={(e) => patchVergeConfig({ enable_proxy_guard: e })} > )} {enable_system_proxy && ( e.target.value} onChange={(e) => onChangeData({ system_proxy_bypass: e })} onGuard={(e) => patchVergeConfig({ system_proxy_bypass: e })} waitTime={1000} > )} ); }; export default SettingSystem;