import { BrowserRouter, Routes, Route } from "react-router-dom"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { ThemeProvider, createTheme } from "@mui/material/styles"; import { LocalizationProvider } from "@mui/x-date-pickers"; import { AdapterDayjs } from "@mui/x-date-pickers/AdapterDayjs"; import CssBaseline from "@mui/material/CssBaseline"; import "dayjs/locale/it"; import Layout from "./components/Layout"; import Dashboard from "./pages/Dashboard"; import EventiPage from "./pages/EventiPage"; import EventoDetailPage from "./pages/EventoDetailPage"; import ClientiPage from "./pages/ClientiPage"; import LocationPage from "./pages/LocationPage"; import ArticoliPage from "./pages/ArticoliPage"; import RisorsePage from "./pages/RisorsePage"; import CalendarioPage from "./pages/CalendarioPage"; import ReportTemplatesPage from "./pages/ReportTemplatesPage"; import ReportEditorPage from "./pages/ReportEditorPage"; import ModulesAdminPage from "./pages/ModulesAdminPage"; import ModulePurchasePage from "./pages/ModulePurchasePage"; import AutoCodesAdminPage from "./pages/AutoCodesAdminPage"; import WarehouseRoutes from "./modules/warehouse/routes"; import { ModuleGuard } from "./components/ModuleGuard"; import { useRealTimeUpdates } from "./hooks/useRealTimeUpdates"; import { CollaborationProvider } from "./contexts/CollaborationContext"; import { ModuleProvider } from "./contexts/ModuleContext"; const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, retry: 1, staleTime: 1000 * 60, // 1 minuto - i dati sono considerati freschi }, mutations: { // Le mutation non mostrano errori bloccanti }, }, }); // Componente wrapper per abilitare real-time updates function RealTimeProvider({ children }: { children: React.ReactNode }) { useRealTimeUpdates(); return <>{children}; } const theme = createTheme({ palette: { primary: { main: "#1976d2", }, secondary: { main: "#dc004e", }, }, typography: { fontFamily: '"Roboto", "Helvetica", "Arial", sans-serif', }, }); function App() { return ( }> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> {/* Admin */} } /> } /> } /> {/* Warehouse Module */} } /> ); } export default App;