import { useState, useEffect } from "preact/hooks"; import { I18nProvider } from "@shared/i18n/context"; import { ThemeProvider } from "@shared/theme/context"; import { Header } from "./components/Header"; import { AccountList } from "./components/AccountList"; import { AddAccount } from "./components/AddAccount"; import { ProxyPool } from "./components/ProxyPool"; import { ApiConfig } from "./components/ApiConfig"; import { AnthropicSetup } from "./components/AnthropicSetup"; import { CodeExamples } from "./components/CodeExamples"; import { TestConnection } from "./components/TestConnection"; import { Footer } from "./components/Footer"; import { ProxySettings } from "./pages/ProxySettings"; import { useAccounts } from "@shared/hooks/use-accounts"; import { useProxies } from "@shared/hooks/use-proxies"; import { useStatus } from "@shared/hooks/use-status"; import { useUpdateStatus } from "@shared/hooks/use-update-status"; /** Minimal status hook — only used for version/commit display. * Updates are handled by electron-updater via system tray. */ function useVersionInfo() { const update = useUpdateStatus(); return { version: update.status?.proxy.version ?? null, commit: update.status?.proxy.commit ?? null, }; } function Dashboard() { const accounts = useAccounts(); const proxies = useProxies(); const status = useStatus(accounts.list.length); const versionInfo = useVersionInfo(); const handleProxyChange = async (accountId: string, proxyId: string) => { accounts.patchLocal(accountId, { proxyId }); await proxies.assignProxy(accountId, proxyId); }; return ( <>