|
|
@@ -1,2 +1,136 @@
|
|
|
import React from 'react';
|
|
|
-import { createBrowserRouter, Navigate } from
|
|
|
+import { createBrowserRouter, Navigate } from 'react-router-dom';
|
|
|
+import { ProtectedRoute } from './components/ProtectedRoute';
|
|
|
+import { ErrorPage } from './components/ErrorPage';
|
|
|
+import { NotFoundPage } from './components/NotFoundPage';
|
|
|
+import { ErrorBoundary } from './components/ErrorBoundary';
|
|
|
+import { MobileLayout } from './layouts/MobileLayout';
|
|
|
+import { silverPlatformTabs } from './components/BottomTabBar';
|
|
|
+
|
|
|
+// 页面组件导入
|
|
|
+import HomePage from './pages/HomePage';
|
|
|
+import SilverJobsPage from './pages/SilverJobsPage';
|
|
|
+import SilverTalentsPage from './pages/SilverTalentsPage';
|
|
|
+import SilverWisdomPage from './pages/SilverWisdomPage';
|
|
|
+import ElderlyUniversityPage from './pages/ElderlyUniversityPage';
|
|
|
+import TimeBankPage from './pages/TimeBankPage';
|
|
|
+import PolicyNewsPage from './pages/PolicyNewsPage';
|
|
|
+import PublishPage from './pages/PublishPage';
|
|
|
+import ProfilePage from './pages/ProfilePage';
|
|
|
+import ProfileEditPage from './pages/ProfileEditPage';
|
|
|
+import PointsPage from './pages/PointsPage';
|
|
|
+import MyPostsPage from './pages/MyPostsPage';
|
|
|
+import MyFavoritesPage from './pages/MyFavoritesPage';
|
|
|
+import SkillsPage from './pages/SkillsPage';
|
|
|
+import LoginPage from './pages/LoginPage';
|
|
|
+import RegisterPage from './pages/RegisterPage';
|
|
|
+
|
|
|
+export const router = createBrowserRouter([
|
|
|
+ {
|
|
|
+ path: '/',
|
|
|
+ element: <MobileLayout tabs={silverPlatformTabs} />,
|
|
|
+ children: [
|
|
|
+ {
|
|
|
+ index: true,
|
|
|
+ element: <Navigate to="/home" replace />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'home',
|
|
|
+ element: <HomePage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'silver-jobs',
|
|
|
+ element: <SilverJobsPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'silver-talents',
|
|
|
+ element: <SilverTalentsPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'silver-wisdom',
|
|
|
+ element: <SilverWisdomPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'elderly-university',
|
|
|
+ element: <ElderlyUniversityPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'time-bank',
|
|
|
+ element: <TimeBankPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'policy-news',
|
|
|
+ element: <PolicyNewsPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'publish',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <PublishPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <ProfilePage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile/edit',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <ProfileEditPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile/points',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <PointsPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile/posts',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <MyPostsPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile/favorites',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <MyFavoritesPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: 'profile/skills',
|
|
|
+ element: (
|
|
|
+ <ProtectedRoute>
|
|
|
+ <SkillsPage />
|
|
|
+ </ProtectedRoute>
|
|
|
+ )
|
|
|
+ }
|
|
|
+ ]
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/login',
|
|
|
+ element: <LoginPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '/register',
|
|
|
+ element: <RegisterPage />
|
|
|
+ },
|
|
|
+ {
|
|
|
+ path: '*',
|
|
|
+ element: <NotFoundPage />,
|
|
|
+ errorElement: <ErrorPage />
|
|
|
+ }
|
|
|
+]);
|