import { forwardRef, useImperativeHandle, useState } from "react"; import { useTranslation } from "react-i18next"; import { List, Switch, Button } from "@mui/material"; import { useVerge } from "@/hooks/use-verge"; import { BaseDialog, DialogRef, Notice } from "@/components/base"; import { SettingItem } from "./setting-comp"; import { GuardState } from "./guard-state"; import { open as openDialog } from "@tauri-apps/api/dialog"; import { convertFileSrc } from "@tauri-apps/api/tauri"; export const LayoutViewer = forwardRef((props, ref) => { const { t } = useTranslation(); const { verge, patchVerge, mutateVerge } = useVerge(); const [open, setOpen] = useState(false); useImperativeHandle(ref, () => ({ open: () => setOpen(true), close: () => setOpen(false), })); const onSwitchFormat = (_e: any, value: boolean) => value; const onError = (err: any) => { Notice.error(err.message || err.toString()); }; const onChangeData = (patch: Partial) => { mutateVerge({ ...verge, ...patch }, false); }; return ( setOpen(false)} onCancel={() => setOpen(false)} > onChangeData({ traffic_graph: e })} onGuard={(e) => patchVerge({ traffic_graph: e })} > onChangeData({ enable_memory_usage: e })} onGuard={(e) => patchVerge({ enable_memory_usage: e })} > onChangeData({ common_tray_icon: e })} onGuard={(e) => patchVerge({ common_tray_icon: e })} > onChangeData({ sysproxy_tray_icon: e })} onGuard={(e) => patchVerge({ sysproxy_tray_icon: e })} > onChangeData({ tun_tray_icon: e })} onGuard={(e) => patchVerge({ tun_tray_icon: e })} > ); });