import { useState, useEffect } from 'react' import AuthPage from './pages/AuthPage' import DashboardPage from './pages/DashboardPage' import { useLanguage } from './contexts/LanguageContext' export type Page = 'auth' | 'dashboard' function BootScreen({ loadingText }: { loadingText: string }) { return (
CA

Copilot API

{loadingText}

) } export default function App() { const [page, setPage] = useState(null) const [username, setUsername] = useState('') const [port, setPort] = useState(4141) const { setLangPref, t } = useLanguage() useEffect(() => { let active = true const bootstrap = async () => { try { const [authResult, settings] = await Promise.all([ window.electronAPI.checkSavedToken(), window.electronAPI.getSettings(), ]) if (!active) return setPort(settings.lastPort) setLangPref(settings.language ?? 'auto') if (authResult.success && authResult.username) { setUsername(authResult.username) setPage('dashboard') return } setPage('auth') } catch { if (active) setPage('auth') } } void bootstrap() return () => { active = false } }, []) const handleAuthSuccess = (user: string) => { setUsername(user) setPage('dashboard') } const handleLogout = async () => { await window.electronAPI.logout() setUsername('') setPage('auth') } if (page === null) { return } if (page === 'auth') { return } return ( ) }