88 lines
2.9 KiB
TypeScript
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>
|
|
);
|
|
}
|