import { useState, useEffect } from 'react'; import { Outlet, NavLink, useNavigate } from 'react-router-dom'; import { getClientTickets } from '../services/api'; import { LayoutDashboard, Globe, Settings, FileText } from 'lucide-react'; import ConfirmLogoutModal from '../components/ui/ConfirmLogoutModal'; // Le modal extrait ! export default function AppLayout() { const navigate = useNavigate(); const [showLogoutModal, setShowLogoutModal] = useState(false); const [unreadCount, setUnreadCount] = useState(0); const checkUnreadTickets = async () => { try { const data = await getClientTickets(); if (data && data.list) { const unread = data.list.filter(t => t.status === 'on_hold' || t.unread).length; setUnreadCount(unread); } } catch (err) { } }; useEffect(() => { checkUnreadTickets(); const intervalId = setInterval(checkUnreadTickets, 120000); return () => clearInterval(intervalId); }, []); const confirmLogout = () => { setShowLogoutModal(false); navigate('/login'); }; // 🌟 La fonction magique Tailwind pour les liens du menu const navLinkClass = ({ isActive }) => `block px-6 py-4 no-underline border-l-4 transition-all uppercase tracking-widest text-sm font-mono ${isActive ? 'text-cyan-400 bg-cyan-400/5 border-cyan-400' : 'text-[#888] border-transparent hover:text-gray-300 hover:bg-white/5' }`; return (