import { Outlet } from 'react-router-dom'; import { useState, useEffect } from 'react'; import Navbar from './Navbar'; import Sidebar from './Sidebar'; import { useAuth } from '../contexts/AuthContext'; import { useLanguage } from '../contexts/LanguageContext'; import { AlertTriangle, RefreshCw } from 'lucide-react'; import api from '../services/api'; import toast from 'react-hot-toast'; export default function Layout() { const [sidebarOpen, setSidebarOpen] = useState(false); const { user } = useAuth(); const { t } = useLanguage(); const [resendCooldown, setResendCooldown] = useState(0); const [resending, setResending] = useState(false); // Countdown timer for resend cooldown useEffect(() => { if (resendCooldown <= 0) return; const timer = setTimeout(() => setResendCooldown(c => c - 1), 1000); return () => clearTimeout(timer); }, [resendCooldown]); const handleResendVerification = async () => { if (resendCooldown > 0 || resending) return; setResending(true); try { await api.post('/auth/resend-verification', { email: user.email }); toast.success(t('auth.emailVerificationResendSuccess')); setResendCooldown(60); } catch (err) { const wait = err.response?.data?.waitSeconds; if (wait) { setResendCooldown(wait); } toast.error(err.response?.data?.error || t('auth.emailVerificationResendFailed')); } finally { setResending(false); } }; return (