import { useEffect, useRef, useState } from "react"; import { useI18n, type Locale } from "../i18n"; export function HeaderMenu() { const { t, locale, setLocale } = useI18n(); const [open, setOpen] = useState(false); const rootRef = useRef(null); useEffect(() => { if (!open) return; const onDocClick = (ev: MouseEvent) => { if (!rootRef.current?.contains(ev.target as Node)) setOpen(false); }; const onKey = (ev: KeyboardEvent) => { if (ev.key === "Escape") setOpen(false); }; document.addEventListener("mousedown", onDocClick); document.addEventListener("keydown", onKey); return () => { document.removeEventListener("mousedown", onDocClick); document.removeEventListener("keydown", onKey); }; }, [open]); const pick = (next: Locale) => { setLocale(next); setOpen(false); }; return (
{open ? (
{t("layout.language")}
) : null}
); }