wallets-api / client /src /App.tsx
z1amez's picture
v.1
2dddd1f
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;