diff --git a/src/App.tsx b/src/App.tsx index 39ba6d7..4ad3c8f 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -15,6 +15,7 @@ import { PackageOpen, ServerCog, Settings, + Sparkles, X, } from 'lucide-react'; import appLogo from './assets/logo.jpg'; @@ -25,6 +26,7 @@ import { KernelPage } from './pages/Kernel'; import { VersionManagementPage } from './pages/VersionManagementPage'; import { OAuthManagementPage } from './pages/ManagementPages'; import { AgentsPage } from './pages/AgentsPage'; +import { EasyModePage, type EasyModeDestination } from './pages/EasyModePage'; import { UsageRecordsPage } from './pages/UsageRecordsPage'; import { languageOptions, useI18n } from './i18n'; import { AppUpdateDialog, AppUpdateProvider, useAppUpdate } from './appUpdate'; @@ -35,6 +37,13 @@ import { detectInitialTheme, saveTheme, type AppTheme } from './theme'; const CONTACT_URL = 'https://qm.qq.com/q/3queDaIG'; const pages = [ + { + id: 'easy', + labelKey: 'app.nav.easy', + icon: Sparkles, + // The easy page is rendered separately so it can receive navigation callbacks. + component: HomePage, + }, { id: 'home', labelKey: 'app.nav.home', @@ -127,7 +136,6 @@ function AppContent() { const ActivePage = activePage.component; const selectedLanguage = languageOptions.find((option) => option.value === locale) ?? languageOptions[0]; - useEffect(() => { saveTheme(theme); }, [theme]); @@ -220,6 +228,10 @@ function AppContent() { setActive(pageId); }; + const openPage = (pageId: EasyModeDestination) => { + setActive(pageId); + }; + const openContact = async () => { try { await invoke('open_external_url', { url: CONTACT_URL }); @@ -275,7 +287,7 @@ function AppContent() {