import { useState, useEffect } from "react"; import { X, Info, RefreshCw, FolderOpen } from "lucide-react"; import "../lib/tauri-api"; interface Settings { showInDock: boolean; } interface SettingsModalProps { onClose: () => void; } export default function SettingsModal({ onClose }: SettingsModalProps) { const [settings, setSettings] = useState({ showInDock: true, }); const [configPath, setConfigPath] = useState(""); const [version] = useState("1.0.0"); const [isCheckingUpdate, setIsCheckingUpdate] = useState(false); useEffect(() => { loadSettings(); loadConfigPath(); }, []); const loadSettings = async () => { try { const loadedSettings = await window.api.getSettings(); if (loadedSettings?.showInDock !== undefined) { setSettings({ showInDock: loadedSettings.showInDock }); } } catch (error) { console.error("加载设置失败:", error); } }; const loadConfigPath = async () => { try { const status = await window.api.getConfigStatus("claude"); if (status?.path) { setConfigPath(status.path.replace("/claude_code_config.json", "")); } } catch (error) { console.error("获取配置路径失败:", error); } }; const saveSettings = async () => { try { await window.api.saveSettings(settings); onClose(); } catch (error) { console.error("保存设置失败:", error); } }; const handleCheckUpdate = async () => { setIsCheckingUpdate(true); try { await window.api.checkForUpdates(); } catch (error) { console.error("检查更新失败:", error); } finally { setTimeout(() => setIsCheckingUpdate(false), 2000); } }; const handleOpenConfigFolder = async () => { try { await window.api.openConfigFolder("claude"); } catch (error) { console.error("打开配置文件夹失败:", error); } }; return (
{/* 标题栏 */}

设置

{/* 设置内容 */}
{/* 显示设置 */}

显示设置

{/* 配置文件位置 */}

配置文件位置

{configPath || "加载中..."}
{/* 关于 */}

关于

CC Switch

版本 {version}

管理 Claude Code 和 Codex 的 MCP 服务器配置

{/* 底部按钮 */}
); }