App.tsx
1.01 KB
import { Navigate, Route, Routes } from 'react-router-dom'
import { useAppSelector } from './store/hooks'
import AppShell from './components/AppShell'
import LoginPage from './pages/usr/LoginPage'
import MainPage from './pages/MainPage'
import UserListPage from './pages/usr/UserListPage'
import UserDetailPage from './pages/usr/UserDetailPage'
function AuthenticatedShell() {
const accessToken = useAppSelector(s => s.auth.accessToken)
if (!accessToken) return <Navigate to="/login" replace />
return <AppShell />
}
export default function App() {
return (
<Routes>
<Route path="/login" element={<LoginPage />} />
<Route element={<AuthenticatedShell />}>
<Route path="/" element={<MainPage />} />
<Route path="/usr/users" element={<UserListPage />} />
<Route path="/usr/users/new" element={<UserDetailPage />} />
<Route path="/usr/users/:id" element={<UserDetailPage />} />
</Route>
<Route path="*" element={<Navigate to="/" replace />} />
</Routes>
)
}