diff --git a/src/common/EnableCollapsibleNavbar.res b/src/common/EnableCollapsibleNavbar.res new file mode 100644 index 000000000..ff3c506cf --- /dev/null +++ b/src/common/EnableCollapsibleNavbar.res @@ -0,0 +1,19 @@ +/** + * Hides the navbar when scrolling down on mobile, and causes it to reappear when scrolling back up. + */ +@jsx.component +let make = (~children, ~isEnabled) => { + let scrollDir = Hooks.useScrollDirection() + if isEnabled { +
"group nav-appear" + + | Down(_) => "group nav-disappear" + }}> + children +
+ } else { + children + } +} diff --git a/src/components/Navigation.res b/src/components/Navigation.res index 48bfb3863..8e3753bc0 100644 --- a/src/components/Navigation.res +++ b/src/components/Navigation.res @@ -71,7 +71,7 @@ module MobileNav = { } } -/* isOverlayOpen: if the mobile overlay is toggled open */ +/* isOverlayOpen: if the mobile sidebar is toggled open */ @react.component let make = (~fixed=true, ~isOverlayOpen: bool, ~setOverlayOpen: (bool => bool) => unit) => { let minWidth = "20rem" @@ -80,7 +80,9 @@ let make = (~fixed=true, ~isOverlayOpen: bool, ~setOverlayOpen: (bool => bool) = let url = router.route->Url.parse let version = url->Url.getVersionString - let toggleOverlay = () => setOverlayOpen(prev => !prev) + let toggleOverlay = () => { + setOverlayOpen(prev => !prev) + } let fixedNav = fixed ? "fixed top-0" : "relative" @@ -169,7 +171,7 @@ let make = (~fixed=true, ~isOverlayOpen: bool, ~setOverlayOpen: (bool => bool) = {isDocRoute(~route) ?