esameits24-26frontend/src/App.tsx

88 lines
2.9 KiB
TypeScript

//=======================================
// File: App.tsx
// Componete pagina principale dell'applicazione
// author: "villari.andrea@libero.it"
// version: "1.0.0 2026-07.14"
//=======================================
import { BrowserRouter, Navigate, Route, Routes } from "react-router-dom";
import { Toaster } from "@/components/ui/sonner";
import GuestRoute from "@/components/GuestRoute";
import Layout from "@/components/Layout";
import ProtectedRoute from "@/components/ProtectedRoute";
import { AuthProvider } from "@/context/AuthContext";
import Dashboard from "@/pages/Dashboard";
import Login from "@/pages/Login";
import MieiCorsi from "@/pages/MieiCorsi";
import MioCorsoDettaglio from "@/pages/MioCorsoDettaglio";
import Corsi from "@/pages/Corsi";
import Assegnazioni from "@/pages/Assegnazioni";
import Dipendenti from "@/pages/Dipendenti";
import Statistiche from "@/pages/Statistiche";
export default function App() {
return (
<AuthProvider>
<BrowserRouter>
<Routes>
<Route path="/login" element={<GuestRoute><Login /></GuestRoute>} />
<Route element={<ProtectedRoute><Layout /></ProtectedRoute>}>
<Route path="/dashboard" element={<Dashboard />} />
<Route
path="/i-miei-corsi"
element={
<ProtectedRoute roles={["Dipendente"]}>
<MieiCorsi />
</ProtectedRoute>
}
/>
<Route
path="/i-miei-corsi/:id"
element={
<ProtectedRoute roles={["Dipendente"]}>
<MioCorsoDettaglio />
</ProtectedRoute>
}
/>
<Route
path="/corsi"
element={
<ProtectedRoute roles={["Referente Academy"]}>
<Corsi />
</ProtectedRoute>
}
/>
<Route
path="/assegnazioni"
element={
<ProtectedRoute roles={["Referente Academy"]}>
<Assegnazioni />
</ProtectedRoute>
}
/>
<Route
path="/dipendenti"
element={
<ProtectedRoute roles={["Referente Academy"]}>
<Dipendenti />
</ProtectedRoute>
}
/>
<Route
path="/statistiche"
element={
<ProtectedRoute roles={["Referente Academy"]}>
<Statistiche />
</ProtectedRoute>
}
/>
<Route path="/" element={<Navigate to="/dashboard" replace />} />
<Route path="*" element={<Navigate to="/dashboard" replace />} />
</Route>
<Route path="*" element={<Navigate to="/login" replace />} />
</Routes>
<Toaster />
</BrowserRouter>
</AuthProvider>
);
}