import { type ReactNode, useEffect, useRef, useState } from "react"; import { Link, useNavigate } from "react-router"; import { useAuth } from "../hooks/useAuth.ts"; import { DumpCreateModal } from "./DumpCreateModal.tsx"; import { NotificationBell } from "./NotificationBell.tsx"; export function AppHeader( { centerSlot, disableNew }: { centerSlot?: ReactNode; disableNew?: boolean }, ) { const { user } = useAuth(); const navigate = useNavigate(); const headerRef = useRef(null); const [_showFab, setShowFab] = useState(false); const [createModalOpen, setCreateModalOpen] = useState(false); useEffect(() => { const el = headerRef.current; if (!el) return; const obs = new IntersectionObserver( ([entry]) => setShowFab(!entry.isIntersecting), { threshold: 0 }, ); obs.observe(el); return () => obs.disconnect(); }, []); return ( <>
🚚 gerbeur {centerSlot &&
{centerSlot}
}
{ /* {user && createPortal( , document.body, )} */ } {createModalOpen && ( setCreateModalOpen(false)} /> )} ); }