feat(ui): AppShell layout route — desktop rail, tablet icon rail, mobile tabs, theme toggle

This commit is contained in:
2026-09-08 17:35:14 +08:00
parent 913f3286bb
commit 7957e5cee5
3 changed files with 170 additions and 23 deletions
+7 -23
View File
@@ -1,5 +1,6 @@
import { Navigate, Route, Routes } from "react-router-dom";
import { AuthProvider, RequireAdmin, RequireAuth } from "./auth/AuthContext";
import { AppShell } from "./components/app-shell";
import { ErrorBoundary } from "./components/ErrorBoundary";
import { Toaster } from "./components/Toaster";
import { ThemeProvider } from "./components/theme";
@@ -17,13 +18,16 @@ export default function App() {
<Routes>
<Route path="/login" element={<Login />} />
<Route
path="/"
element={
<RequireAuth>
<Shelf />
<AppShell />
</RequireAuth>
}
/>
>
<Route path="/" element={<Shelf />} />
<Route path="/admin/users" element={<RequireAdmin><AdminUsers /></RequireAdmin>} />
<Route path="/admin/libraries" element={<RequireAdmin><AdminLibraries /></RequireAdmin>} />
</Route>
<Route
path="/book/:id"
element={
@@ -32,26 +36,6 @@ export default function App() {
</RequireAuth>
}
/>
<Route
path="/admin/users"
element={
<RequireAuth>
<RequireAdmin>
<AdminUsers />
</RequireAdmin>
</RequireAuth>
}
/>
<Route
path="/admin/libraries"
element={
<RequireAuth>
<RequireAdmin>
<AdminLibraries />
</RequireAdmin>
</RequireAuth>
}
/>
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
<Toaster />