import useSWR from "swr"; import { useState } from "react"; import { useTranslation } from "react-i18next"; import { IconButton, MenuItem, Select, Switch, Typography, } from "@mui/material"; import { getVergeConfig, openAppDir, openLogsDir, patchVergeConfig, } from "@/services/cmds"; import { ArrowForward } from "@mui/icons-material"; import { SettingList, SettingItem } from "./setting"; import { version } from "@root/package.json"; import useModalHandler from "@/hooks/use-modal-handler"; import ThemeModeSwitch from "./mods/theme-mode-switch"; import ConfigViewer from "./mods/config-viewer"; import HotkeyViewer from "./mods/hotkey-viewer"; import GuardState from "./mods/guard-state"; import SettingTheme from "./setting-theme"; interface Props { onError?: (err: Error) => void; } const SettingVerge = ({ onError }: Props) => { const { t } = useTranslation(); const { data: vergeConfig, mutate: mutateVerge } = useSWR( "getVergeConfig", getVergeConfig ); const { theme_mode, theme_blur, traffic_graph, language } = vergeConfig ?? {}; const [themeOpen, setThemeOpen] = useState(false); const [configOpen, setConfigOpen] = useState(false); const onSwitchFormat = (_e: any, value: boolean) => value; const onChangeData = (patch: Partial) => { mutateVerge({ ...vergeConfig, ...patch }, false); }; const hotkeyHandler = useModalHandler(); return ( e.target.value} onChange={(e) => onChangeData({ language: e })} onGuard={(e) => patchVergeConfig({ language: e })} > onChangeData({ theme_mode: e })} onGuard={(e) => patchVergeConfig({ theme_mode: e })} > onChangeData({ theme_blur: e })} onGuard={(e) => patchVergeConfig({ theme_blur: e })} > onChangeData({ traffic_graph: e })} onGuard={(e) => patchVergeConfig({ traffic_graph: e })} > setThemeOpen(true)} > hotkeyHandler.current.open()} > setConfigOpen(true)} > v{version} setThemeOpen(false)} /> setConfigOpen(false)} /> ); }; export default SettingVerge;