feat(routes): add new routes for chat, code, files, knowledge, notes, store, translate, and paintings

- Introduced new route files for chat, code, files, knowledge, notes, store, translate, and paintings, each linking to their respective components.
- Updated the main index route to use LaunchpadPage instead of the previous Index component.
- Added settings routes for various configuration options, enhancing the application's routing structure.

These changes expand the application's routing capabilities, improving navigation and user experience.
This commit is contained in:
MyPrototypeWhat 2025-12-09 17:29:45 +08:00
parent e5239f4623
commit 5ad5bd537b
38 changed files with 274 additions and 21 deletions

View File

@ -0,0 +1,6 @@
import MinAppPage from '@renderer/pages/minapps/MinAppPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/apps/$appId')({
component: MinAppPage
})

View File

@ -0,0 +1,6 @@
import MinAppsPage from '@renderer/pages/minapps/MinAppsPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/apps/')({
component: MinAppsPage
})

View File

@ -0,0 +1,6 @@
import HomePage from '@renderer/pages/home/HomePage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/chat')({
component: HomePage
})

View File

@ -0,0 +1,6 @@
import CodeToolsPage from '@renderer/pages/code/CodeToolsPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/code')({
component: CodeToolsPage
})

View File

@ -0,0 +1,6 @@
import FilesPage from '@renderer/pages/files/FilesPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/files')({
component: FilesPage
})

View File

@ -1,14 +1,6 @@
import LaunchpadPage from '@renderer/pages/launchpad/LaunchpadPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/')({
component: Index
component: LaunchpadPage
})
function Index() {
return (
<div className="flex h-full flex-col items-center justify-center gap-4 p-8">
<h3 className="font-semibold text-xl">Home</h3>
<p className="text-muted-foreground text-sm">TODO: Migrate HomePage</p>
</div>
)
}

View File

@ -0,0 +1,6 @@
import KnowledgePage from '@renderer/pages/knowledge/KnowledgePage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/knowledge')({
component: KnowledgePage
})

View File

@ -0,0 +1,6 @@
import NotesPage from '@renderer/pages/notes/NotesPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/notes')({
component: NotesPage
})

View File

@ -0,0 +1,7 @@
import PaintingsRoutePage from '@renderer/pages/paintings/PaintingsRoutePage'
import { createFileRoute } from '@tanstack/react-router'
// 通配符路由:捕获 /paintings/* 所有子路径
export const Route = createFileRoute('/paintings/$')({
component: PaintingsRoutePage
})

View File

@ -0,0 +1,6 @@
import PaintingsRoutePage from '@renderer/pages/paintings/PaintingsRoutePage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/paintings/')({
component: PaintingsRoutePage
})

View File

@ -1,16 +1,7 @@
import SettingsPage from '@renderer/pages/settings/SettingsPage'
import { createFileRoute } from '@tanstack/react-router'
import { Settings } from 'lucide-react'
// 布局路由SettingsPage 作为布局组件,使用 Outlet 渲染子路由
export const Route = createFileRoute('/settings')({
component: SettingsPage
})
function SettingsPage() {
return (
<div className="flex h-full w-full flex-col items-center justify-center gap-4 bg-background p-8">
<Settings className="size-12 text-muted-foreground" />
<h2 className="font-semibold text-xl">Settings</h2>
<p className="text-muted-foreground text-sm">TODO: Migrate SettingsPage</p>
</div>
)
}

View File

@ -0,0 +1,6 @@
import AboutSettings from '@renderer/pages/settings/AboutSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/about')({
component: AboutSettings
})

View File

@ -0,0 +1,6 @@
import { ApiServerSettings } from '@renderer/pages/settings/ToolSettings/ApiServerSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/api-server')({
component: ApiServerSettings
})

View File

@ -0,0 +1,6 @@
import DataSettings from '@renderer/pages/settings/DataSettings/DataSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/data')({
component: DataSettings
})

View File

@ -0,0 +1,6 @@
import DisplaySettings from '@renderer/pages/settings/DisplaySettings/DisplaySettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/display')({
component: DisplaySettings
})

View File

@ -0,0 +1,6 @@
import DocProcessSettings from '@renderer/pages/settings/DocProcessSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/docprocess')({
component: DocProcessSettings
})

View File

@ -0,0 +1,6 @@
import GeneralSettings from '@renderer/pages/settings/GeneralSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/general')({
component: GeneralSettings
})

View File

@ -0,0 +1,8 @@
import { createFileRoute, redirect } from '@tanstack/react-router'
// /settings/ 重定向到 /settings/provider
export const Route = createFileRoute('/settings/')({
beforeLoad: () => {
throw redirect({ to: '/settings/provider' })
}
})

View File

@ -0,0 +1,7 @@
import MCPSettings from '@renderer/pages/settings/MCPSettings'
import { createFileRoute } from '@tanstack/react-router'
// MCP 布局路由MCPSettings 作为布局组件,使用 Outlet 渲染子路由
export const Route = createFileRoute('/settings/mcp')({
component: MCPSettings
})

View File

@ -0,0 +1,24 @@
import { useMCPServers } from '@renderer/hooks/useMCPServers'
import ProviderDetail from '@renderer/pages/settings/MCPSettings/McpProviderSettings'
import { providers } from '@renderer/pages/settings/MCPSettings/providers/config'
import { useParams } from '@tanstack/react-router'
import { createFileRoute } from '@tanstack/react-router'
// 通配符路由:捕获 provider 页面 /settings/mcp/:providerKey
const ProviderPage = () => {
const params = useParams({ strict: false }) as { _splat?: string }
const providerKey = params._splat
const { mcpServers } = useMCPServers()
const provider = providers.find((p) => p.key === providerKey)
if (!provider) {
return <div>Provider not found</div>
}
return <ProviderDetail provider={provider} existingServers={mcpServers} />
}
export const Route = createFileRoute('/settings/mcp/$')({
component: ProviderPage
})

View File

@ -0,0 +1,12 @@
import BuiltinMCPServerList from '@renderer/pages/settings/MCPSettings/BuiltinMCPServerList'
import { createFileRoute } from '@tanstack/react-router'
const BuiltinWrapper = () => (
<div className="h-full overflow-y-auto p-5">
<BuiltinMCPServerList />
</div>
)
export const Route = createFileRoute('/settings/mcp/builtin')({
component: BuiltinWrapper
})

View File

@ -0,0 +1,8 @@
import { createFileRoute, redirect } from '@tanstack/react-router'
// /settings/mcp/ 重定向到 /settings/mcp/servers
export const Route = createFileRoute('/settings/mcp/')({
beforeLoad: () => {
throw redirect({ to: '/settings/mcp/servers' })
}
})

View File

@ -0,0 +1,12 @@
import McpMarketList from '@renderer/pages/settings/MCPSettings/McpMarketList'
import { createFileRoute } from '@tanstack/react-router'
const MarketplacesWrapper = () => (
<div className="h-full overflow-y-auto p-5">
<McpMarketList />
</div>
)
export const Route = createFileRoute('/settings/mcp/marketplaces')({
component: MarketplacesWrapper
})

View File

@ -0,0 +1,13 @@
import { SettingContainer } from '@renderer/pages/settings'
import InstallNpxUv from '@renderer/pages/settings/MCPSettings/InstallNpxUv'
import { createFileRoute } from '@tanstack/react-router'
const McpInstallWrapper = () => (
<SettingContainer style={{ backgroundColor: 'inherit' }}>
<InstallNpxUv />
</SettingContainer>
)
export const Route = createFileRoute('/settings/mcp/mcp-install')({
component: McpInstallWrapper
})

View File

@ -0,0 +1,17 @@
import { useTheme } from '@renderer/context/ThemeProvider'
import { SettingContainer } from '@renderer/pages/settings'
import NpxSearch from '@renderer/pages/settings/MCPSettings/NpxSearch'
import { createFileRoute } from '@tanstack/react-router'
const NpxSearchWrapper = () => {
const { theme } = useTheme()
return (
<SettingContainer theme={theme}>
<NpxSearch />
</SettingContainer>
)
}
export const Route = createFileRoute('/settings/mcp/npx-search')({
component: NpxSearchWrapper
})

View File

@ -0,0 +1,6 @@
import McpServersList from '@renderer/pages/settings/MCPSettings/McpServersList'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/mcp/servers')({
component: McpServersList
})

View File

@ -0,0 +1,6 @@
import McpSettings from '@renderer/pages/settings/MCPSettings/McpSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/mcp/settings/$serverId')({
component: McpSettings
})

View File

@ -0,0 +1,6 @@
import MemorySettings from '@renderer/pages/settings/MemorySettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/memory')({
component: MemorySettings
})

View File

@ -0,0 +1,6 @@
import ModelSettings from '@renderer/pages/settings/ModelSettings/ModelSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/model')({
component: ModelSettings
})

View File

@ -0,0 +1,6 @@
import NotesSettings from '@renderer/pages/settings/NotesSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/notes')({
component: NotesSettings
})

View File

@ -0,0 +1,6 @@
import { ProviderList } from '@renderer/pages/settings/ProviderSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/provider')({
component: ProviderList
})

View File

@ -0,0 +1,6 @@
import QuickAssistantSettings from '@renderer/pages/settings/QuickAssistantSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/quickAssistant')({
component: QuickAssistantSettings
})

View File

@ -0,0 +1,6 @@
import QuickPhraseSettings from '@renderer/pages/settings/QuickPhraseSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/quickphrase')({
component: QuickPhraseSettings
})

View File

@ -0,0 +1,6 @@
import SelectionAssistantSettings from '@renderer/pages/settings/SelectionAssistantSettings/SelectionAssistantSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/selectionAssistant')({
component: SelectionAssistantSettings
})

View File

@ -0,0 +1,6 @@
import ShortcutSettings from '@renderer/pages/settings/ShortcutSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/shortcut')({
component: ShortcutSettings
})

View File

@ -0,0 +1,6 @@
import WebSearchSettings from '@renderer/pages/settings/WebSearchSettings'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/settings/websearch')({
component: WebSearchSettings
})

View File

@ -0,0 +1,6 @@
import AssistantPresetsPage from '@renderer/pages/store/assistants/presets/AssistantPresetsPage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/store')({
component: AssistantPresetsPage
})

View File

@ -0,0 +1,6 @@
import TranslatePage from '@renderer/pages/translate/TranslatePage'
import { createFileRoute } from '@tanstack/react-router'
export const Route = createFileRoute('/translate')({
component: TranslatePage
})