"use client"; import { useState, useEffect, useRef } from "react"; import PropTypes from "prop-types"; import ThemeToggle from "./ThemeToggle"; import LanguageSwitcher from "./LanguageSwitcher"; import NineRemoteButton from "./NineRemoteButton"; import ChangelogModal from "./ChangelogModal"; export default function HeaderMenu({ onLogout }) { const [isOpen, setIsOpen] = useState(false); const [changelogOpen, setChangelogOpen] = useState(false); const menuRef = useRef(null); useEffect(() => { const handleClickOutside = (e) => { if (menuRef.current && !menuRef.current.contains(e.target)) { setIsOpen(false); } }; if (isOpen) { document.addEventListener("mousedown", handleClickOutside); return () => document.removeEventListener("mousedown", handleClickOutside); } }, [isOpen]); const openChangelog = () => { setIsOpen(false); setChangelogOpen(true); }; return ( <>
{isOpen && (
Theme
)}
setChangelogOpen(false)} /> ); } HeaderMenu.propTypes = { onLogout: PropTypes.func.isRequired, };