import { useState, useEffect, useRef, useCallback } from 'react'; import { createPortal } from 'react-dom'; import { useNavigate } from 'react-router-dom'; import { useAuth } from '../context/AuthContext.jsx'; import { useUi } from '../context/UiContext.jsx'; import { useInvestisseur } from '../context/InvestisseurContext.jsx'; import { memberInitials, memberLabel } from '../utils/format.js'; /* ── Icons ───────────────────────────────────────────────────── */ function IconUser() { return ; } function IconLogout() { return ; } function IconAdmin() { return ; } function IconSettings() { return ; } function IconAide() { return ; } function IconComm() { return ; } function IconRefresh() { return ; } function IconChevronRight() { return ; } function IconChevronUp({ open }) { return ( ); } function IconCheck() { return ; } function IconTeam() { return ; } /* ── Avatars ─────────────────────────────────────────────────── */ function UserAvatar({ user, size = 36 }) { const initials = user?.display_name ? user.display_name.split(' ').map(w => w[0]).join('').slice(0, 2).toUpperCase() : (user?.email || '?')[0].toUpperCase(); return (