diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 4bfe05f..7cdda9c 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -1,4 +1,6 @@ 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'; @@ -17,15 +19,34 @@ import { BoardDetail } from './pages/BoardDetail'; import { CardDetail } from './pages/CardDetail'; const App = () => { + const { token } = useApp(); + const [isAuthenticated, setIsAuthenticated] = useState(null); + + useEffect(() => { + setIsAuthenticated(!!token); + }, [token]); + + if (isAuthenticated === null) { + return null; + } return (
-
+
- } /> + + ) : ( + + ) + } + /> } /> } /> } /> diff --git a/frontend/src/components/Navbar.tsx b/frontend/src/components/Navbar.tsx index ca3cab1..4dbecac 100644 --- a/frontend/src/components/Navbar.tsx +++ b/frontend/src/components/Navbar.tsx @@ -1,27 +1,64 @@ import { Link } from 'react-router-dom'; +import { useState } from 'react'; import { useApp } from '../context/AppContext'; import { useAuth } from '../hooks/useAuth'; import { TaskboardLogo } from './TaskboardLogo'; +const MenuIcon = () => ( + + + + + +); + +const CloseIcon = () => ( + + + + +); + export function Navbar() { const { user } = useApp(); const { logout } = useAuth(); + const [mobileMenuOpen, setMobileMenuOpen] = useState(false); return ( ); } diff --git a/frontend/src/pages/Home.tsx b/frontend/src/pages/Home.tsx index 506502f..f769012 100644 --- a/frontend/src/pages/Home.tsx +++ b/frontend/src/pages/Home.tsx @@ -6,7 +6,7 @@ import { TaskboardLogo } from '../components/TaskboardLogo'; export function Home() { return ( -
+