Skip to content

Commit 2c475fd

Browse files
committed
Close hamburger-menu on mobile when done navigating.
1 parent ae93d0c commit 2c475fd

File tree

1 file changed

+9
-2
lines changed

1 file changed

+9
-2
lines changed

frontend/app/routes/_index/components/page-layout/page-layout.tsx

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
import { useCallback, useState } from "react";
1+
import { useCallback, useEffect, useState } from "react";
22
import styles from "./page-layout.module.css";
3+
import { useNavigation } from "react-router";
34

45
export type PageLayoutProps = {
56
topNavComponent: (props: RequiredTopNavProps) => React.ReactNode,
@@ -15,13 +16,19 @@ export type RequiredTopNavProps = {
1516
export function PageLayout(props: PageLayoutProps) {
1617
// data
1718
const [isHamburgerMenuOpen, setIsHamburgerMenuOpen] = useState(false);
19+
const isNavigating = Boolean(useNavigation().location);
20+
21+
// close hamburger-menu when done navigating
22+
useEffect(() => {
23+
!isNavigating && setIsHamburgerMenuOpen(false);
24+
}, [isNavigating, setIsHamburgerMenuOpen]);
1825

1926
// events
2027
const onHamburgerMenuClick = useCallback(function () {
2128
setIsHamburgerMenuOpen(!isHamburgerMenuOpen)
2229
}, [setIsHamburgerMenuOpen, isHamburgerMenuOpen]);
2330

24-
const onBodyClick = useCallback(function() {
31+
const onBodyClick = useCallback(function () {
2532
setIsHamburgerMenuOpen(false);
2633
}, [setIsHamburgerMenuOpen]);
2734

0 commit comments

Comments
 (0)