import { useRef } from "react"; import { useTranslation } from "react-i18next"; import { Typography } from "@mui/material"; import { exitApp, openAppDir, openCoreDir, openLogsDir, openDevTools, } from "@/services/cmds"; import { check as checkUpdate } from "@tauri-apps/plugin-updater"; import { useVerge } from "@/hooks/use-verge"; import { version } from "@root/package.json"; import { DialogRef, Notice } from "@/components/base"; import { SettingList, SettingItem } from "./mods/setting-comp"; import { ConfigViewer } from "./mods/config-viewer"; import { HotkeyViewer } from "./mods/hotkey-viewer"; import { MiscViewer } from "./mods/misc-viewer"; import { ThemeViewer } from "./mods/theme-viewer"; import { LayoutViewer } from "./mods/layout-viewer"; import { UpdateViewer } from "./mods/update-viewer"; import { BackupViewer } from "./mods/backup-viewer"; import { TooltipIcon } from "@/components/base/base-tooltip-icon"; interface Props { onError?: (err: Error) => void; } const SettingVergeAdvanced = ({ onError }: Props) => { const { t } = useTranslation(); const { verge, patchVerge, mutateVerge } = useVerge(); const configRef = useRef(null); const hotkeyRef = useRef(null); const miscRef = useRef(null); const themeRef = useRef(null); const layoutRef = useRef(null); const updateRef = useRef(null); const backupRef = useRef(null); const onCheckUpdate = async () => { try { const info = await checkUpdate(); if (!info?.available) { Notice.success(t("Currently on the Latest Version")); } else { updateRef.current?.open(); } } catch (err: any) { Notice.error(err.message || err.toString()); } }; return ( backupRef.current?.open()} label={t("Backup Setting")} extra={ } /> configRef.current?.open()} label={t("Runtime Config")} /> } /> } onClick={() => patchVerge({ enable_lite_mode: true })} /> { exitApp(); }} label={t("Exit")} /> v{version} ); }; export default SettingVergeAdvanced;