File size: 2,643 Bytes
e85fa50
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import React from 'react';
import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-dom';
import { AuthProvider } from './contexts/AuthContext';
import { AppProvider } from './contexts/AppContext';
import ProtectedRoute from './components/ProtectedRoute';
import LoginPage from './pages/LoginPage';
import HomePage from './pages/HomePage';
import PromptGroupDetailPage from './pages/PromptGroupDetailPage';
import CreatePromptGroupPage from './pages/CreatePromptGroupPage';
import EditPromptGroupPage from './pages/EditPromptGroupPage';
import CategoriesPage from './pages/CategoriesPage';
import SettingsPage from './pages/SettingsPage';
import './styles/global.css';
import './styles/iosStyles.css';

function App() {
  return (
    <AuthProvider>

      <AppProvider>

        <Router>

          <Routes>

            {/* 公开路由 */}

            <Route path="/login" element={<LoginPage />} />

            

            {/* 受保护路由 */}

            <Route 

              path="/" 

              element={

                <ProtectedRoute>

                  <HomePage />

                </ProtectedRoute>

              } 

            />

            

            <Route 

              path="/prompt-group/:id" 

              element={

                <ProtectedRoute>

                  <PromptGroupDetailPage />

                </ProtectedRoute>

              } 

            />

            

            <Route 

              path="/create" 

              element={

                <ProtectedRoute>

                  <CreatePromptGroupPage />

                </ProtectedRoute>

              } 

            />

            

            <Route 

              path="/edit-prompt-group/:id" 

              element={

                <ProtectedRoute>

                  <EditPromptGroupPage />

                </ProtectedRoute>

              } 

            />

            

            <Route 

              path="/categories" 

              element={

                <ProtectedRoute>

                  <CategoriesPage />

                </ProtectedRoute>

              } 

            />

            

            <Route 

              path="/settings" 

              element={

                <ProtectedRoute>

                  <SettingsPage />

                </ProtectedRoute>

              } 

            />

            

            {/* 默认重定向 */}

            <Route path="*" element={<Navigate to="/" replace />} />

          </Routes>

        </Router>

      </AppProvider>

    </AuthProvider>
  );
}

export default App;