// MEMORI — Navigation // Detect base path: '' from root, '../' from articles/ subfolder const _NAV_BASE = window.location.pathname.includes('/articles/') ? '../' : ''; function Nav() { const [scrolled, setScrolled] = React.useState(false); const [mobileOpen, setMobileOpen] = React.useState(false); const [outilsOpen, setOutilsOpen] = React.useState(false); const outilsRef = React.useRef(null); React.useEffect(() => { const handler = (e) => { if (outilsRef.current && !outilsRef.current.contains(e.target)) { setOutilsOpen(false); } }; document.addEventListener('mousedown', handler); return () => document.removeEventListener('mousedown', handler); }, []); React.useEffect(() => { const onScroll = () => setScrolled(window.scrollY > 24); onScroll(); window.addEventListener('scroll', onScroll, { passive: true }); return () => window.removeEventListener('scroll', onScroll); }, []); React.useEffect(() => { document.body.style.overflow = mobileOpen ? 'hidden' : ''; }, [mobileOpen]); const close = () => setMobileOpen(false); return ( <>
Service Cas clients FAQ Blog
Outils Scan LinkedIn ↗
); } Object.assign(window, { Nav });