import "./Header.css"; import React, { useState, useRef, useEffect } from "react"; // TODO: Dinge so umstrukturieren, dass der State für das offene menü in Header ist und das Menü auch in Header, sodass es mit width 100% die volle breite einnehmen kann function Header() { const [isOpen, setIsOpen] = useState(false); const iconRef = useRef(null); const toggleMenu = () => { setIsOpen(!isOpen); }; return (
featherIcon

Feather Feed

{isOpen? x : x}
); } function Menu({isOpen, toggleMenu, setIsOpen, iconRef}: any) { const menuRef = useRef(null); useEffect(() => { function handleClickOutside(event: MouseEvent) { if (menuRef.current && !menuRef.current.contains(event.target as Node) && !iconRef.current.contains(event.target as Node)) { setIsOpen(false); } } document.addEventListener("mousedown", handleClickOutside); return () => { document.removeEventListener("mousedown", handleClickOutside); }; }, []); return (
{isOpen && (
Home
Login
Sign up
Feed
Create Post
About
)}
); }; // EXPORT VARIABLES export default Header;