/** * Application Routes Configuration * 应用路由配置 */ import { Routes, Route, Navigate } from "react-router-dom"; import { ProtectedRoute } from "./RouteGuard"; import AppShell from "@/shared/components/layout/AppShell"; import { getPageInfo, type NavItem } from "../constants/navigation"; import { useLocation } from "react-router-dom"; import type { AuthResponse } from "@/api"; // Feature pages import AuthPage from "@/features/auth/pages/AuthPage"; import HomePage from "@/features/home/pages/HomePage"; import ClusterConfigPage from "@/features/configuration/clusters/pages/ClusterConfigPage"; import RegistryConfigPage from "@/features/configuration/registries/pages/RegistryConfigPage"; import ArtifactBrowserPage from "@/features/artifact/registries/pages/ArtifactBrowserPage"; import InstancesManagementPage from "@/features/artifact/instances/pages/InstancesManagementPage"; import MonitoringClustersPage from "@/features/monitoring/clusters/pages/MonitoringClustersPage"; import { ApiTest } from "@/components/ApiTest"; interface AppRoutesProps { isAuthenticated: boolean; userName?: string; navItems: NavItem[]; onLogin: (tokens: AuthResponse) => void; onLogout: () => void; } /** * Main application routes */ export const AppRoutes = ({ isAuthenticated, userName = "User", navItems, onLogin, onLogout, }: AppRoutesProps) => { const location = useLocation(); const pageInfo = getPageInfo(location.pathname); return ( {/* Public route - Authentication page */} ) : ( ) } /> {/* Protected routes - wrapped in AppShell */} } /> } /> } /> } /> } /> } /> {/* API Test page - Public for testing */} } /> {/* Legacy path compatibility - redirects */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> ); };