From 8512a27d1443f6064ee080a547c294354cb028f3 Mon Sep 17 00:00:00 2001 From: Jackson Harper Date: Tue, 25 Jun 2024 16:13:11 +0800 Subject: [PATCH] Implement dismiss on click for the new navigation menu --- .../components/templates/NavigationLayout.tsx | 1 + .../templates/navMenu/NavigationMenu.tsx | 27 ++++++++++++++++--- packages/web/pages/l/[section].tsx | 1 - 3 files changed, 24 insertions(+), 5 deletions(-) diff --git a/packages/web/components/templates/NavigationLayout.tsx b/packages/web/components/templates/NavigationLayout.tsx index eea0c7857..bc15324d1 100644 --- a/packages/web/components/templates/NavigationLayout.tsx +++ b/packages/web/components/templates/NavigationLayout.tsx @@ -164,6 +164,7 @@ export function NavigationLayout(props: NavigationLayoutProps): JSX.Element { section={props.section} setShowAddLinkModal={setShowAddLinkModal} showMenu={props.showNavigationMenu} + setShowMenu={props.setShowNavigationMenu} /> void showMenu: boolean + setShowMenu: (show: boolean) => void } export function NavigationMenu(props: NavigationMenuProps): JSX.Element { + const [dismissed, setDismissed] = useState(false) return ( <> { + // on small screens we want to dismiss the menu after click + if (window.innerWidth < 400) { + setDismissed(true) + setTimeout(() => { + props.setShowMenu(false) + }, 100) + } + event.stopPropagation() + }} > {/* This gives a header when scrolling so the menu button is visible still */} @@ -861,6 +877,8 @@ type NavButtonProps = { isSelected: boolean section: NavigationSection + + setShowMenu: (show: boolean) => void } function NavButton(props: NavButtonProps): JSX.Element { @@ -907,6 +925,7 @@ function NavButton(props: NavButtonProps): JSX.Element { }} title={props.text} onClick={(e) => { + // console.log('clicked navigation menu') router.push(`/l/` + props.section) }} > diff --git a/packages/web/pages/l/[section].tsx b/packages/web/pages/l/[section].tsx index e6736f2dc..1def74370 100644 --- a/packages/web/pages/l/[section].tsx +++ b/packages/web/pages/l/[section].tsx @@ -46,7 +46,6 @@ export default function Home(): JSX.Element { { - console.log('filtering: ', item) return ( item.state != 'DELETED' && !item.isArchived &&