import { Outlet } from 'react-router-dom' import { useState, useEffect } from 'react' import Sidebar from '../components/Sidebar' import useAuthStore from '../store/authStore' import client from '../api/client' export default function AppLayout() { const { user, token, login, logout } = useAuthStore() const [clock, setClock] = useState(new Date()) // Fetch user profile once on mount if token exists but user isn't loaded useEffect(() => { if (token && !user) { client.get('/auth/me').then(r => login(r.data, token)).catch(() => logout()) } }, [token]) useEffect(() => { const id = setInterval(() => setClock(new Date()), 1000) return () => clearInterval(id) }, []) const timeStr = clock.toLocaleTimeString('el-GR', { hour: '2-digit', minute: '2-digit' }) return (
{/* Top bar */}
{timeStr}
{user?.username}
{/* Page content */}
) }