mirror of
https://github.com/CherryHQ/cherry-studio.git
synced 2025-12-28 13:31:32 +08:00
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:
parent
e5239f4623
commit
5ad5bd537b
6
src/renderer/src/routes/apps/$appId.tsx
Normal file
6
src/renderer/src/routes/apps/$appId.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/apps/index.tsx
Normal file
6
src/renderer/src/routes/apps/index.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/chat.tsx
Normal file
6
src/renderer/src/routes/chat.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/code.tsx
Normal file
6
src/renderer/src/routes/code.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/files.tsx
Normal file
6
src/renderer/src/routes/files.tsx
Normal 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
|
||||
})
|
||||
@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
6
src/renderer/src/routes/knowledge.tsx
Normal file
6
src/renderer/src/routes/knowledge.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/notes.tsx
Normal file
6
src/renderer/src/routes/notes.tsx
Normal 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
|
||||
})
|
||||
7
src/renderer/src/routes/paintings/$.tsx
Normal file
7
src/renderer/src/routes/paintings/$.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/paintings/index.tsx
Normal file
6
src/renderer/src/routes/paintings/index.tsx
Normal 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
|
||||
})
|
||||
@ -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>
|
||||
)
|
||||
}
|
||||
|
||||
6
src/renderer/src/routes/settings/about.tsx
Normal file
6
src/renderer/src/routes/settings/about.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/api-server.tsx
Normal file
6
src/renderer/src/routes/settings/api-server.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/data.tsx
Normal file
6
src/renderer/src/routes/settings/data.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/display.tsx
Normal file
6
src/renderer/src/routes/settings/display.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/docprocess.tsx
Normal file
6
src/renderer/src/routes/settings/docprocess.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/general.tsx
Normal file
6
src/renderer/src/routes/settings/general.tsx
Normal 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
|
||||
})
|
||||
8
src/renderer/src/routes/settings/index.tsx
Normal file
8
src/renderer/src/routes/settings/index.tsx
Normal 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' })
|
||||
}
|
||||
})
|
||||
7
src/renderer/src/routes/settings/mcp.tsx
Normal file
7
src/renderer/src/routes/settings/mcp.tsx
Normal 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
|
||||
})
|
||||
24
src/renderer/src/routes/settings/mcp/$.tsx
Normal file
24
src/renderer/src/routes/settings/mcp/$.tsx
Normal 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
|
||||
})
|
||||
12
src/renderer/src/routes/settings/mcp/builtin.tsx
Normal file
12
src/renderer/src/routes/settings/mcp/builtin.tsx
Normal 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
|
||||
})
|
||||
8
src/renderer/src/routes/settings/mcp/index.tsx
Normal file
8
src/renderer/src/routes/settings/mcp/index.tsx
Normal 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' })
|
||||
}
|
||||
})
|
||||
12
src/renderer/src/routes/settings/mcp/marketplaces.tsx
Normal file
12
src/renderer/src/routes/settings/mcp/marketplaces.tsx
Normal 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
|
||||
})
|
||||
13
src/renderer/src/routes/settings/mcp/mcp-install.tsx
Normal file
13
src/renderer/src/routes/settings/mcp/mcp-install.tsx
Normal 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
|
||||
})
|
||||
17
src/renderer/src/routes/settings/mcp/npx-search.tsx
Normal file
17
src/renderer/src/routes/settings/mcp/npx-search.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/mcp/servers.tsx
Normal file
6
src/renderer/src/routes/settings/mcp/servers.tsx
Normal 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
|
||||
})
|
||||
@ -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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/memory.tsx
Normal file
6
src/renderer/src/routes/settings/memory.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/model.tsx
Normal file
6
src/renderer/src/routes/settings/model.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/notes.tsx
Normal file
6
src/renderer/src/routes/settings/notes.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/provider.tsx
Normal file
6
src/renderer/src/routes/settings/provider.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/quickAssistant.tsx
Normal file
6
src/renderer/src/routes/settings/quickAssistant.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/quickphrase.tsx
Normal file
6
src/renderer/src/routes/settings/quickphrase.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/selectionAssistant.tsx
Normal file
6
src/renderer/src/routes/settings/selectionAssistant.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/shortcut.tsx
Normal file
6
src/renderer/src/routes/settings/shortcut.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/settings/websearch.tsx
Normal file
6
src/renderer/src/routes/settings/websearch.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/store.tsx
Normal file
6
src/renderer/src/routes/store.tsx
Normal 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
|
||||
})
|
||||
6
src/renderer/src/routes/translate.tsx
Normal file
6
src/renderer/src/routes/translate.tsx
Normal 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
|
||||
})
|
||||
Loading…
Reference in New Issue
Block a user