错题本乱序和顺序刷题

This commit is contained in:
2025-12-18 01:59:30 +08:00
parent 3d47e568f6
commit 3e4157f021
11 changed files with 157 additions and 308 deletions

View File

@@ -3,6 +3,7 @@ import { BrowserRouter as Router, Routes, Route, Navigate } from 'react-router-d
import { Toaster } from 'react-hot-toast'
import { AuthProvider } from './context/AuthContext'
import { ProtectedRoute } from './components/ProtectedRoute'
import Layout from './components/Layout'
// Auth Pages
import Login from './pages/Login'
@@ -56,88 +57,34 @@ function App() {
<Route path="/login" element={<Login />} />
<Route path="/register" element={<Register />} />
{/* Protected Routes */}
<Route
path="/dashboard"
element={
<ProtectedRoute>
<Dashboard />
</ProtectedRoute>
}
/>
{/* Protected Routes with Layout */}
<Route element={<ProtectedRoute><Layout /></ProtectedRoute>}>
<Route path="/dashboard" element={<Dashboard />} />
<Route path="/exams" element={<ExamList />} />
<Route path="/exams/:examId" element={<ExamDetail />} />
<Route path="/quiz/:examId" element={<QuizPlayer />} />
<Route path="/mistakes" element={<MistakeList />} />
<Route path="/mistake-quiz" element={<MistakePlayer />} />
<Route path="/questions" element={<QuestionBank />} />
<Route
path="/exams"
element={
<ProtectedRoute>
<ExamList />
</ProtectedRoute>
}
/>
<Route
path="/exams/:examId"
element={
<ProtectedRoute>
<ExamDetail />
</ProtectedRoute>
}
/>
<Route
path="/quiz/:examId"
element={
<ProtectedRoute>
<QuizPlayer />
</ProtectedRoute>
}
/>
<Route
path="/mistakes"
element={
<ProtectedRoute>
<MistakeList />
</ProtectedRoute>
}
/>
<Route
path="/mistake-quiz"
element={
<ProtectedRoute>
<MistakePlayer />
</ProtectedRoute>
}
/>
<Route
path="/questions"
element={
<ProtectedRoute>
<QuestionBank />
</ProtectedRoute>
}
/>
{/* Admin Only Routes */}
<Route
path="/admin"
element={
<ProtectedRoute adminOnly>
<AdminPanel />
</ProtectedRoute>
}
/>
<Route
path="/admin/settings"
element={
<ProtectedRoute adminOnly>
<AdminSettings />
</ProtectedRoute>
}
/>
{/* Admin Only Routes */}
<Route
path="/admin"
element={
<ProtectedRoute adminOnly>
<AdminPanel />
</ProtectedRoute>
}
/>
<Route
path="/admin/settings"
element={
<ProtectedRoute adminOnly>
<AdminSettings />
</ProtectedRoute>
}
/>
</Route>
{/* Default Route */}
<Route path="/" element={<Navigate to="/dashboard" replace />} />