Spaces:
Sleeping
Sleeping
| import { MainLayout } from './layouts/MainLayout'; | |
| import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom'; | |
| import { useAuthStore } from './store/useAuthStore'; | |
| import Transactions from './pages/Transactions'; | |
| import Dashboard from './pages/Dashboard'; | |
| import Loans from './pages/Loans'; | |
| import Settings from './pages/Settings'; | |
| import WalletsView from './pages/WalletsView'; | |
| import Analytics from './pages/Analytics'; | |
| import Login from './pages/Login'; | |
| const ProtectedRoute = ({ children }: { children: React.ReactNode }) => { | |
| const isAuthenticated = useAuthStore((state) => state.isAuthenticated); | |
| return isAuthenticated ? <>{children}</> : <Navigate to="/login" replace />; | |
| }; | |
| function App() { | |
| return ( | |
| <BrowserRouter> | |
| <Routes> | |
| <Route path="/login" element={<Login />} /> | |
| <Route | |
| path="/" | |
| element={ | |
| <ProtectedRoute> | |
| <MainLayout /> | |
| </ProtectedRoute> | |
| } | |
| > | |
| <Route index element={<Dashboard />} /> | |
| <Route path="transactions" element={<Transactions />} /> | |
| <Route path="wallets" element={<WalletsView />} /> | |
| <Route path="analytics" element={<Analytics />} /> | |
| <Route path="loans" element={<Loans />} /> | |
| <Route path="settings" element={<Settings />} /> | |
| </Route> | |
| <Route path="*" element={<Navigate to="/" replace />} /> | |
| </Routes> | |
| </BrowserRouter> | |
| ); | |
| } | |
| export default App; | |