import { BrowserRouter as Router, Routes, Route, Outlet, useLocation, useNavigate } from 'react-router-dom'; import {useEffect, useState } from "react"; import { ToastContainer } from "react-toastify"; import { argbFromHex, themeFromSourceColor, applyTheme, } from "@material/material-color-utilities"; import { AuthProvider } from "./auth/auth-provider" import ping from "./auth/ping"; import Login from "./pages/login/login" import Register from "./pages/register/register" import Home from "./pages/home/home" import Dashboard from "./pages/dashboard/dashboard" import Settings from "./pages/settings/settings" import useAuth from './auth/auth'; const PrivateRoute = () => { const { token, loading } = useAuth(); const navigate = useNavigate(); const location = useLocation(); const [checked, setChecked] = useState(false); const [isValid, setIsValid] = useState(false); useEffect(() => { const checkAuth = async () => { if (!token) { setIsValid(false); setChecked(true); return; } const result = await ping(token); setIsValid(result); setChecked(true); }; if (!loading) { checkAuth(); } }, [token, loading]); if (loading || !checked) { return