import { Toaster } from "@/components/ui/toaster"; import { Toaster as Sonner } from "@/components/ui/sonner"; import { TooltipProvider } from "@/components/ui/tooltip"; import { ThemeProvider } from "@/components/theme-provider"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; import { BrowserRouter, Routes, Route, Navigate } from "react-router-dom"; import { useEffect, useState } from "react"; import Index from "./pages/Index"; import Login from "./pages/Login"; import NotFound from "./pages/NotFound"; import AuthService from "./services/AuthService"; import "./globals.css"; const queryClient = new QueryClient(); // Protected Route Component const ProtectedRoute = ({ children }: { children: React.ReactNode }) => { const isAuthenticated = AuthService.isAuthenticated(); if (!isAuthenticated) { return ; } return <>{children}; }; const App = () => { const [isLoading, setIsLoading] = useState(true); useEffect(() => { const checkAuth = async () => { try { if (AuthService.getToken()) { await AuthService.checkTokenValidity(); } } catch (error) { console.error("Error checking token validity:", error); } finally { setIsLoading(false); } }; checkAuth(); }, []); if (isLoading) { return (
); } return ( } /> } /> } /> ); }; export default App;