import { useTranslation } from "react-i18next"; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { Switch } from "@/components/ui/switch"; import { Combobox } from "@/components/ui/combobox"; import { useConfig } from "./ConfigProvider"; import { StatusLineConfigDialog } from "./StatusLineConfigDialog"; import { useState } from "react"; import type { StatusLineConfig } from "@/types"; interface SettingsDialogProps { isOpen: boolean; onOpenChange: (isOpen: boolean) => void; } export function SettingsDialog({ isOpen, onOpenChange }: SettingsDialogProps) { const { t } = useTranslation(); const { config, setConfig } = useConfig(); const [isStatusLineConfigOpen, setIsStatusLineConfigOpen] = useState(false); if (!config) { return null; } const handleLogChange = (checked: boolean) => { setConfig({ ...config, LOG: checked }); }; const handlePathChange = (e: React.ChangeEvent) => { setConfig({ ...config, CLAUDE_PATH: e.target.value }); }; const handleStatusLineEnabledChange = (checked: boolean) => { // Ensure we have a complete StatusLineConfig object const newStatusLineConfig: StatusLineConfig = { enabled: checked, currentStyle: config.StatusLine?.currentStyle || "default", default: config.StatusLine?.default || { modules: [] }, powerline: config.StatusLine?.powerline || { modules: [] }, }; setConfig({ ...config, StatusLine: newStatusLineConfig, }); }; const openStatusLineConfig = () => { setIsStatusLineConfigOpen(true); }; return ( {t("toplevel.title")}
{/* StatusLine Configuration */}
setConfig({ ...config, LOG_LEVEL: value })} />
setConfig({ ...config, HOST: e.target.value })} className="transition-all-ease focus:scale-[1.01]" />
setConfig({ ...config, PORT: parseInt(e.target.value, 10) }) } className="transition-all-ease focus:scale-[1.01]" />
setConfig({ ...config, API_TIMEOUT_MS: e.target.value }) } className="transition-all-ease focus:scale-[1.01]" />
setConfig({ ...config, PROXY_URL: e.target.value }) } placeholder="http://127.0.0.1:7890" className="transition-all-ease focus:scale-[1.01]" />
setConfig({ ...config, APIKEY: e.target.value })} className="transition-all-ease focus:scale-[1.01]" />
setConfig({ ...config, CUSTOM_ROUTER_PATH: e.target.value })} placeholder={t("toplevel.custom_router_path_placeholder")} className="transition-all-ease focus:scale-[1.01]" />
); }