Files
TaskPool/web/src/routeTree.gen.ts
T
admin e6956aa001 Initial commit: TaskPool React panel
- React frontend with route-level code splitting
- Backend rebranded from Baihu to TaskPool
- DB brand migration script and local compatibility
2026-07-26 08:43:52 +08:00

197 lines
5.1 KiB
TypeScript

import { createRootRoute, createRoute, Outlet, redirect } from '@tanstack/react-router'
import Layout from '@/components/Layout'
import { lazyPage } from '@/lib/lazy-page'
import { getAuthStatus } from '@/lib/auth'
// 轻量入口页直接加载,其余路由懒加载以降低主包
import Login from '@/pages/Login'
import Install from '@/pages/Install'
import NotFound from '@/pages/NotFound'
import { ErrorPage } from '@/pages/ErrorPage'
const Dashboard = lazyPage(() => import('@/pages/Dashboard'))
const Tasks = lazyPage(() => import('@/pages/Tasks'))
const Editor = lazyPage(() => import('@/pages/Editor'))
const Environments = lazyPage(() => import('@/pages/Environments'))
const Languages = lazyPage(() => import('@/pages/Languages'))
const Dependencies = lazyPage(() => import('@/pages/Dependencies'))
const Agents = lazyPage(() => import('@/pages/Agents'))
const History = lazyPage(() => import('@/pages/History'))
const MessageLogs = lazyPage(() => import('@/pages/MessageLogs'))
const Terminal = lazyPage(() => import('@/pages/Terminal'))
const Notify = lazyPage(() => import('@/pages/Notify'))
const Monitor = lazyPage(() => import('@/pages/Monitor'))
const Interconnect = lazyPage(() => import('@/pages/Interconnect'))
const Settings = lazyPage(() => import('@/pages/Settings'))
const rootRoute = createRootRoute({
component: Outlet,
errorComponent: ErrorPage,
notFoundComponent: NotFound,
})
const loginRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/login',
component: Login,
beforeLoad: async () => {
const isAuthenticated = await getAuthStatus(true)
if (isAuthenticated) {
throw redirect({ to: '/' })
}
},
})
const installRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/install',
component: Install,
})
// pathless layout,避免与 dashboard 的 path `/` 产生重复路由 id
const layoutRoute = createRoute({
getParentRoute: () => rootRoute,
id: 'app',
component: Layout,
beforeLoad: async () => {
const isAuthenticated = await getAuthStatus()
if (!isAuthenticated) {
throw redirect({ to: '/login' })
}
},
})
const dashboardRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/',
component: Dashboard,
})
const tasksRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/tasks',
component: Tasks,
validateSearch: (search: Record<string, unknown>) => ({
agent_id: typeof search.agent_id === 'string' ? search.agent_id : undefined,
type: typeof search.type === 'string' ? search.type : undefined,
tags: typeof search.tags === 'string' ? search.tags : undefined,
}),
})
const agentsRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/agents',
component: Agents,
})
const editorRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/editor',
component: Editor,
})
const historyRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/history',
component: History,
validateSearch: (search: Record<string, unknown>) => ({
status: typeof search.status === 'string' ? search.status : undefined,
task_name: typeof search.task_name === 'string' ? search.task_name : undefined,
}),
})
const environmentsRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/environments',
component: Environments,
})
const languagesRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/languages',
component: Languages,
})
const dependenciesRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/dependencies',
component: Dependencies,
validateSearch: (search: Record<string, unknown>) => ({
language: typeof search.language === 'string' ? search.language : undefined,
version: typeof search.version === 'string' ? search.version : undefined,
}),
})
const terminalRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/terminal',
component: Terminal,
})
const notifyRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/notify',
component: Notify,
})
const logsRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/logs',
component: MessageLogs,
})
const monitorRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/monitor',
component: Monitor,
})
const interconnectRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/interconnect',
component: Interconnect,
})
const settingsRoute = createRoute({
getParentRoute: () => layoutRoute,
path: '/settings',
component: Settings,
})
const notFoundRoute = createRoute({
getParentRoute: () => rootRoute,
path: '/404',
component: NotFound,
})
const catchAllRoute = createRoute({
getParentRoute: () => rootRoute,
path: '$',
beforeLoad: () => {
throw redirect({ to: '/404' })
},
})
export const routeTree = rootRoute.addChildren([
loginRoute,
installRoute,
notFoundRoute,
catchAllRoute,
layoutRoute.addChildren([
dashboardRoute,
tasksRoute,
agentsRoute,
editorRoute,
historyRoute,
environmentsRoute,
languagesRoute,
dependenciesRoute,
terminalRoute,
notifyRoute,
logsRoute,
monitorRoute,
interconnectRoute,
settingsRoute,
]),
])