import { forwardRef, useImperativeHandle, useState } from "react"; import { useLockFn } from "ahooks"; import { useTranslation } from "react-i18next"; import { useVerge } from "@/hooks/use-verge"; import { entry_lightweight_mode } from "@/services/cmds"; import { showNotice } from "@/services/noticeService"; // Новые импорты import { DialogRef, Switch } from "@/components/base"; import { TooltipIcon } from "@/components/base/base-tooltip-icon"; import { Button } from "@/components/ui/button"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, DialogClose, } from "@/components/ui/dialog"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; // Наш переиспользуемый компонент для строки настроек const SettingRow = ({ label, extra, children }: { label: React.ReactNode; extra?: React.ReactNode; children?: React.ReactNode; }) => (

{label}

{extra &&
{extra}
}
{children}
); export const LiteModeViewer = forwardRef((props, ref) => { const { t } = useTranslation(); const { verge, patchVerge } = useVerge(); const [open, setOpen] = useState(false); const [values, setValues] = useState({ autoEnterLiteMode: false, autoEnterLiteModeDelay: 10, }); useImperativeHandle(ref, () => ({ open: () => { setOpen(true); setValues({ autoEnterLiteMode: verge?.enable_auto_light_weight_mode ?? false, autoEnterLiteModeDelay: verge?.auto_light_weight_minutes ?? 10, }); }, close: () => setOpen(false), })); const onSave = useLockFn(async () => { try { await patchVerge({ enable_auto_light_weight_mode: values.autoEnterLiteMode, auto_light_weight_minutes: values.autoEnterLiteModeDelay, }); setOpen(false); showNotice("success", t("Saved Successfully")); } catch (err: any) { showNotice("error", err.message || err.toString()); } }); return ( {t("LightWeight Mode Settings")}
{/* --- НАЧАЛО ИЗМЕНЕНИЙ --- */} {/* Меняем variant="link" на "outline" для вида кнопки */} {/* --- КОНЕЦ ИЗМЕНЕНИЙ --- */} } > setValues((v) => ({ ...v, autoEnterLiteMode: c }))} /> {values.autoEnterLiteMode && (
setValues((v) => ({ ...v, autoEnterLiteModeDelay: parseInt(e.target.value) || 1, })) } /> {t("mins")}

{t( "When closing the window, LightWeight Mode will be automatically activated after _n minutes", { n: values.autoEnterLiteModeDelay } )}

)}
); });