mirror of
https://github.com/TheRealOwenRees/echecsfrance.git
synced 2026-07-23 12:36:57 +00:00
Hotfix/hamburger close (#47)
* hamburger link click closes menu * remove event listeners on unmount
This commit is contained in:
@@ -49,7 +49,6 @@ const HamburgerMenu = ({
|
|||||||
menuTimeout,
|
menuTimeout,
|
||||||
});
|
});
|
||||||
|
|
||||||
// noinspection HtmlUnknownTarget
|
|
||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
ref={menuRef}
|
ref={menuRef}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
// noinspection HttpUrlsUsage
|
|
||||||
|
|
||||||
describe("Test links", () => {
|
describe("Test links", () => {
|
||||||
const pages = ["tournois", "qui sommes-nous", "contactez-nous"];
|
const pages = ["tournois", "qui sommes-nous", "contactez-nous"];
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
// TODO is this really a hook? I think it is more of a util function
|
|
||||||
|
|
||||||
interface HamburgerClose {
|
interface HamburgerClose {
|
||||||
menuVisible: boolean;
|
menuVisible: boolean;
|
||||||
setMenuVisible: Dispatch<SetStateAction<boolean>>;
|
setMenuVisible: Dispatch<SetStateAction<boolean>>;
|
||||||
@@ -36,10 +34,22 @@ const useHamburgerClose = ({
|
|||||||
setMouseOverMenu(false);
|
setMouseOverMenu(false);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleLinkClick = () => {
|
||||||
|
setMenuVisible(false);
|
||||||
|
};
|
||||||
|
|
||||||
document.addEventListener("mousedown", handleMouseDownOutsideMenu);
|
document.addEventListener("mousedown", handleMouseDownOutsideMenu);
|
||||||
|
const links = document.querySelectorAll("a");
|
||||||
|
links.forEach((link) => {
|
||||||
|
link.addEventListener("click", handleLinkClick);
|
||||||
|
});
|
||||||
|
|
||||||
return () => {
|
return () => {
|
||||||
document.removeEventListener("mousedown", handleMouseDownOutsideMenu);
|
document.removeEventListener("mousedown", handleMouseDownOutsideMenu);
|
||||||
|
links.forEach((link) => {
|
||||||
|
link.removeEventListener("click", handleLinkClick);
|
||||||
|
});
|
||||||
};
|
};
|
||||||
}, [menuVisible]);
|
}, [menuVisible]);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user