zhouxiantao
8 days ago 03193b2a27a2c23e10f3a2f298de9c1142116780
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/**
 * @author 韩天尊
 * @time 2024-01-15
 * @version 1.0.0
 * @description 志愿者服务平台主应用组件
 */
import React from 'react';
import { Routes, Route, useLocation } from 'react-router-dom';
import HomePage from './views/HomePage';
import AdminHomePage from './views/AdminHomePage';
import AdminActivityListPage from './views/AdminActivityListPage';
import AdminActivityDetailPage from './views/AdminActivityDetailPage';
import AdminPointsReviewPage from './views/AdminPointsReviewPage';
import AdminReviewDetailPage from './views/AdminReviewDetailPage';
import AdminVolunteerReviewPage from './views/AdminVolunteerReviewPage';
import AdminVolunteerReviewDetailPage from './views/AdminVolunteerReviewDetailPage';
import AdminPointsRedemptionPage from './views/AdminPointsRedemptionPage';
import AdminActivityCreatePage from './views/AdminActivityCreatePage';
import PointsDeclarationPage from './views/PointsDeclarationPage';
import DeclarationDetailPage from './views/DeclarationDetailPage';
import DeclarationFormPage from './views/DeclarationFormPage';
import PointsQueryPage from './views/PointsQueryPage';
import ScanCheckinPage from './views/ScanCheckinPage';
import PointsRedemptionPage from './views/PointsRedemptionPage';
import ActivityDetailPage from './views/ActivityDetailPage';
import ActivityCheckinPage from './views/ActivityCheckinPage';
import CheckinSuccessPage from './views/CheckinSuccessPage';
import ProfilePage from './views/ProfilePage';
import MessageListPage from './views/MessageListPage';
import MessageDetailPage from './views/MessageDetailPage';
import PointsQueryDetailPage from './views/PointsQueryDetailPage';
import RedemptionDetailPage from './views/RedemptionDetailPage';
import ActivityListPage from './views/MyRegistrationsPage';
import VolunteerRegisterPage from './views/VolunteerRegisterPage';
import LoginPage from './views/LoginPage';
import BottomNavigation from './components/BottomNavigation';
import ProtectedRoute from './components/ProtectedRoute';
import { AppProvider } from './context/AppContext';
 
const AppContent: React.FC = () => {
  const location = useLocation();
  
  // 判断是否显示底部导航栏(只在首页和我的页面显示)
  const shouldShowBottomNav = location.pathname === '/' || location.pathname === '/profile';
 
  return (
    <div className="app">
      <Routes>
        <Route path="/login" element={<LoginPage />} />
        <Route path="/" element={
          <ProtectedRoute>
            <HomePage />
          </ProtectedRoute>
        } />
        <Route path="/admin" element={
          <ProtectedRoute>
            <AdminHomePage />
          </ProtectedRoute>
        } />
        <Route path="/admin-activity-list" element={
          <ProtectedRoute>
            <AdminActivityListPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-activity-detail/:id" element={
          <ProtectedRoute>
            <AdminActivityDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-points-review" element={
          <ProtectedRoute>
            <AdminPointsReviewPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-review-detail/:id" element={
          <ProtectedRoute>
            <AdminReviewDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-volunteer-review" element={
          <ProtectedRoute>
            <AdminVolunteerReviewPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-volunteer-review-detail/:id" element={
          <ProtectedRoute>
            <AdminVolunteerReviewDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-points-redemption" element={
          <ProtectedRoute>
            <AdminPointsRedemptionPage />
          </ProtectedRoute>
        } />
        <Route path="/admin-activity-create" element={
          <ProtectedRoute>
            <AdminActivityCreatePage />
          </ProtectedRoute>
        } />
        <Route path="/points-declaration" element={
          <ProtectedRoute>
            <PointsDeclarationPage />
          </ProtectedRoute>
        } />
        <Route path="/declaration-detail/:id" element={
          <ProtectedRoute>
            <DeclarationDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/declaration-form" element={
          <ProtectedRoute>
            <DeclarationFormPage />
          </ProtectedRoute>
        } />
        <Route path="/points-query" element={
          <ProtectedRoute>
            <PointsQueryPage />
          </ProtectedRoute>
        } />
        <Route path="/scan-checkin" element={
          <ProtectedRoute>
            <ScanCheckinPage />
          </ProtectedRoute>
        } />
        <Route path="/points-redemption" element={
          <ProtectedRoute>
            <PointsRedemptionPage />
          </ProtectedRoute>
        } />
        <Route path="/activity-detail/:id" element={
          <ProtectedRoute>
            <ActivityDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/activity-checkin/:id" element={
          <ProtectedRoute>
            <ActivityCheckinPage />
          </ProtectedRoute>
        } />
        <Route path="/checkin-success" element={
          <ProtectedRoute>
            <CheckinSuccessPage />
          </ProtectedRoute>
        } />
        <Route path="/profile" element={
          <ProtectedRoute>
            <ProfilePage />
          </ProtectedRoute>
        } />
        <Route path="/message-list" element={
          <ProtectedRoute>
            <MessageListPage />
          </ProtectedRoute>
        } />
        <Route path="/message-detail/:id" element={
          <ProtectedRoute>
            <MessageDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/points-query-detail" element={
          <ProtectedRoute>
            <PointsQueryDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/redemption-detail/:id" element={
          <ProtectedRoute>
            <RedemptionDetailPage />
          </ProtectedRoute>
        } />
        <Route path="/my-registrations" element={
          <ProtectedRoute>
            <ActivityListPage />
          </ProtectedRoute>
        } />
        <Route path="/volunteer-register" element={<VolunteerRegisterPage />} />
      </Routes>
      {shouldShowBottomNav && <BottomNavigation />}
    </div>
  );
};
 
const App: React.FC = () => {
  return (
    <AppProvider>
      <AppContent />
    </AppProvider>
  );
};
 
export default App;