添加注册模块

This commit is contained in:
yoyuzh
2026-03-18 11:49:32 +08:00
parent 8b1b2ea48a
commit 7518dc158f
12 changed files with 272 additions and 11 deletions

View File

@@ -1,25 +1,54 @@
import React from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { Layout } from './components/layout/Layout';
import { useAuth } from './auth/AuthProvider';
import Login from './pages/Login';
import Overview from './pages/Overview';
import Files from './pages/Files';
import School from './pages/School';
import Games from './pages/Games';
function AppRoutes() {
const { ready, session } = useAuth();
if (!ready) {
return (
<div className="min-h-screen flex items-center justify-center bg-[#07101D] text-slate-300">
...
</div>
);
}
const isAuthenticated = Boolean(session?.token);
return (
<Routes>
<Route
path="/login"
element={isAuthenticated ? <Navigate to="/overview" replace /> : <Login />}
/>
<Route
path="/"
element={isAuthenticated ? <Layout /> : <Navigate to="/login" replace />}
>
<Route index element={<Navigate to="/overview" replace />} />
<Route path="overview" element={<Overview />} />
<Route path="files" element={<Files />} />
<Route path="school" element={<School />} />
<Route path="games" element={<Games />} />
</Route>
<Route
path="*"
element={<Navigate to={isAuthenticated ? '/overview' : '/login'} replace />}
/>
</Routes>
);
}
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/login" element={<Login />} />
<Route path="/" element={<Layout />}>
<Route index element={<Navigate to="/overview" replace />} />
<Route path="overview" element={<Overview />} />
<Route path="files" element={<Files />} />
<Route path="school" element={<School />} />
<Route path="games" element={<Games />} />
</Route>
</Routes>
<AppRoutes />
</BrowserRouter>
);
}

View File

@@ -1,10 +1,13 @@
import {StrictMode} from 'react';
import {createRoot} from 'react-dom/client';
import App from './App.tsx';
import {AuthProvider} from './auth/AuthProvider.tsx';
import './index.css';
createRoot(document.getElementById('root')!).render(
<StrictMode>
<App />
<AuthProvider>
<App />
</AuthProvider>
</StrictMode>,
);