import { useTranslation } from "react-i18next" import { Button } from "@/components/ui/button" import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@/components/ui/dialog" import { Input } from "@/components/ui/input" import { Label } from "@/components/ui/label" import { Switch } from "@/components/ui/switch" import { SettingsRow } from "./settings-row" import { useSettingsSave } from "./use-settings-save" interface SettingsServerDialogProps { open: boolean onOpenChange: (open: boolean) => void serverHostDraft: string serverPortDraft: string serverEnableDraft: boolean onServerHostDraftChange: (value: string) => void onServerPortDraftChange: (value: string) => void onServerEnableDraftChange: (value: boolean) => void } export function SettingsServerDialog({ open, onOpenChange, serverHostDraft, serverPortDraft, serverEnableDraft, onServerHostDraftChange, onServerPortDraftChange, onServerEnableDraftChange, }: SettingsServerDialogProps) { const { t } = useTranslation() const saveSettingsConfig = useSettingsSave() const handleConfirm = async () => { const port = Number(serverPortDraft) const nextServer = { host: serverHostDraft, port: Number.isFinite(port) ? port : 36677, enable: serverEnableDraft, } const isSaved = await saveSettingsConfig("settings.server", nextServer) if (isSaved) { onOpenChange(false) } } return ( {t("SETTINGS_SET_PICGO_SERVER")} {t("SETTINGS_TIPS_SERVER_NOTICE")}
onServerEnableDraftChange(checked === true)} /> } /> {serverEnableDraft ? ( <>
onServerHostDraftChange(event.target.value)} placeholder={t("SETTINGS_TIP_PLACEHOLDER_HOST")} />
onServerPortDraftChange(event.target.value)} placeholder={t("SETTINGS_TIP_PLACEHOLDER_PORT")} />
) : null}
) }