'use client' import { signOut, useSession } from 'next-auth/react' import { Shield, Search, Settings, LogOut, User, StickyNote, MessageSquare, FlaskConical, Bot } from 'lucide-react' import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, } from '@/components/ui/dropdown-menu' import { NotificationPanel } from './notification-panel' import { useLanguage } from '@/lib/i18n' /** * Admin header — visuellement identique au Header principal. * Utilise exclusivement des (rechargement complet) au lieu de * pour éviter React Error #310 (bug React #33580 / Next.js #63388). */ export function AdminHeader() { const { data: session } = useSession() const { t } = useLanguage() const user = session?.user const initial = user?.name ? user.name.charAt(0).toUpperCase() : user?.email?.[0]?.toUpperCase() ?? '?' return (
{/* ── Logo + Search ── */}

MEMENTO

{/* Badge Admin */} Admin {/* Search (décoratif en mode admin) — même taille que l'entête principale */}
{/* ── Droite : nav + notifs + settings + avatar ── */}
{/* Nav pills — toutes en pour éviter la RSC race condition */}
{t('nav.chat') || 'AI Chat'} {t('nav.agents') || 'Agents'} {t('nav.lab') || 'The Lab'}
{/* Notifications */} {/* Settings */} {/* Avatar + menu */}
{!user?.image && ( {initial} )}
{user?.name &&

{user.name}

} {user?.email &&

{user.email}

}
{t('settings.profile') || 'Profile'} signOut({ callbackUrl: '/' })} className="cursor-pointer text-red-600 focus:text-red-600" > {t('auth.signOut') || 'Se déconnecter'}
) }