import { Routes, Route, Navigate } from 'react-router-dom'; import { useEffect, useState } from 'react'; import { useApp } from './context/AppContext'; import { ModalProvider } from './context/modals/useModal'; import { ModalRoot } from './context/modals/ModalRoot'; import { ToastProvider } from './context/toasts/useToast'; import { ToastRoot } from './context/toasts/ToastRoot'; import { LoaderProvider } from './context/loaders/useLoader'; import { LoaderRoot } from './context/loaders/LoaderRoot'; import { Navbar } from './components/Navbar'; import { Home } from './pages/Home'; import Login from './pages/Login'; import { Register } from './pages/Register'; import { ProtectedRoute } from './components/ProtectedRoute'; import { Boards } from './pages/Boards'; import { BoardCreate } from './pages/BoardCreate'; import { BoardEdit } from './pages/BoardEdit'; import { BoardDetail } from './pages/BoardDetail'; import { BoardEpics } from './pages/BoardEpics'; import CreateEpic from './pages/CreateEpic'; import { EpicDetail } from './pages/EpicDetail'; import { EditEpic } from './pages/EditEpic'; import { BoardWikis } from './pages/BoardWikis'; import CreateWiki from './pages/CreateWiki'; import { WikiDetail } from './pages/WikiDetail'; import { EditWiki } from './pages/EditWiki'; import { CardDetail } from './pages/CardDetail'; import { BoardDetailLayout } from './components/BoardDetailLayout'; const App = () => { const { token } = useApp(); const [isAuthenticated, setIsAuthenticated] = useState(null); useEffect(() => { setIsAuthenticated(!!token); }, [token]); if (isAuthenticated === null) { return null; } return (
) : ( ) } /> } /> } /> } /> {/* Protected Routes */} } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } /> } />
{/* Order matters for Z-Index: Loader (70) > Toast (60) > Modal (50) */}
); }; export default App;