// noinspection HtmlUnknownTarget
interface HamburgerMenuState {
menuVisible: boolean;
setMenuVisible: Dispatch>;
hamburgerButtonRef: RefObject;
}
import Link from "next/link";
import ThemeSwitcher from "@/components/ThemeSwitcher";
import { Dispatch, RefObject, SetStateAction, useRef, useState } from "react";
import useHamburgerClose from "@/hooks/useHamburgerClose";
const HamburgerMenu = ({
menuVisible,
setMenuVisible,
hamburgerButtonRef,
}: HamburgerMenuState) => {
const [mouseOverMenu, setMouseOverMenu] = useState(false);
const timeoutRef = useRef();
const menuRef = useRef(null);
const menuTimeout = () => {
timeoutRef.current = setTimeout(() => {
setMenuVisible(false);
setMouseOverMenu(false);
}, 2000);
};
const handleMouseEnterMenu = () => {
setMouseOverMenu(true);
clearTimeout(timeoutRef.current);
};
const handleMouseLeaveMenu = () => {
setMouseOverMenu(false);
clearTimeout(timeoutRef.current);
};
useHamburgerClose({
menuVisible,
setMenuVisible,
menuRef,
hamburgerButtonRef,
mouseOverMenu,
setMouseOverMenu,
timeoutRef,
menuTimeout,
});
// noinspection HtmlUnknownTarget
return (
-
Tournois
-
Qui Sommes-Nous
-
Contactez-Nous
-
);
};
export default HamburgerMenu;