Files
pfm/PostFundManagement.PartnerUI/src/App.tsx
T
2026-10-23 00:58:47 +02:00

65 lines
1.8 KiB
TypeScript

import React from 'react';
import { BrowserRouter, Routes, Route, Navigate } from 'react-router-dom';
import { QueryClientProvider } from '@tanstack/react-query';
import { queryClient } from './lib/queryClient';
import { AuthProvider, ProtectedRoute, useAuth } from './auth/AuthProvider';
import { ToastProvider } from './components/ui/Toast';
import { LandingPage } from './components/landing/LandingPage';
import { DashboardPage } from './components/dashboard/DashboardPage';
function AppRoutes() {
const { isAuthenticated, isLoading, login } = useAuth();
if (isLoading) {
return (
<div className="min-h-screen flex items-center justify-center bg-slate-950 text-slate-400 text-xs">
<div className="flex flex-col items-center gap-3">
<div className="h-6 w-6 animate-spin rounded-full border-2 border-emerald-500 border-t-transparent" />
<span>Loading session...</span>
</div>
</div>
);
}
return (
<Routes>
<Route
path="/"
element={
isAuthenticated ? (
<Navigate to="/dashboard" replace />
) : (
<LandingPage onLogin={login} isLoading={isLoading} />
)
}
/>
<Route
path="/dashboard"
element={
<ProtectedRoute>
<DashboardPage />
</ProtectedRoute>
}
/>
<Route
path="*"
element={<Navigate to={isAuthenticated ? '/dashboard' : '/'} replace />}
/>
</Routes>
);
}
export default function App() {
return (
<QueryClientProvider client={queryClient}>
<ToastProvider>
<AuthProvider>
<BrowserRouter>
<AppRoutes />
</BrowserRouter>
</AuthProvider>
</ToastProvider>
</QueryClientProvider>
);
}