@@ -206,10 +206,6 @@ module MobileDrawerButton = {
206206 </button >
207207}
208208
209- type scrollDir =
210- | Up ({scrollY : int })
211- | Down ({scrollY : int })
212-
213209@react.component
214210let make = (
215211 ~metaTitle : string ,
@@ -222,11 +218,11 @@ let make = (
222218 ~rightSidebar : option <React .element >= ?,
223219 ~categories : option <array <Sidebar .Category .t >>= ?,
224220 ~breadcrumbs : option <list <Url .breadcrumb >>= ?,
221+ ~navbarCollapsible = false ,
225222 ~children ,
226223) => {
227224 let (isNavOpen , setNavOpen ) = React .useState (() => false )
228- let (_ , startScrollEventTransition ) = React .useTransition ()
229- let (scrollDir , setScrollDir ) = React .useState (() => Up ({scrollY : %raw (` Infinity ` ) }))
225+ let scrollDir = ScrollDirectionHook .useScrollDirection ()
230226 let router = Next .Router .useRouter ()
231227 let version = Url .parse (router .route ).version
232228
@@ -260,25 +256,6 @@ let make = (
260256 )
261257 }, [])
262258
263- React .useEffect (() => {
264- let onScroll = _e => {
265- startScrollEventTransition (() => {
266- setScrollDir (
267- prev => {
268- let Up ({scrollY }) | Down ({scrollY }) = prev
269- if scrollY === 0 || scrollY > Webapi .Window .scrollY {
270- Up ({scrollY : Webapi .Window .scrollY })
271- } else {
272- Down ({scrollY : Webapi .Window .scrollY })
273- }
274- },
275- )
276- })
277- }
278- Webapi .Window .addEventListener ("scroll" , onScroll )
279- Some (() => Webapi .Window .removeEventListener ("scroll" , onScroll ))
280- }, [])
281-
282259 let handleDrawerButtonClick = React .useCallback (evt => {
283260 ReactEvent .Mouse .preventDefault (evt )
284261 toggleSidebar ()
@@ -327,14 +304,15 @@ let make = (
327304 | None => React .null
328305 }
329306
330- let navAppearanceCascading = switch scrollDir {
331- | Up (_ ) => "nav-appear"
332- | Down (_ ) => "nav-disappear"
307+ let navAppearanceCascading = switch (navbarCollapsible , scrollDir ) {
308+ | (true , Up (_ )) => " group nav-appear"
309+ | (true , Down (_ )) => " group nav-disappear"
310+ | _ => ""
333311 }
334312
335313 <>
336314 <Meta title = metaTitle version />
337- <div className = {"mt-16 min-w-320 " ++ theme ++ " group " ++ navAppearanceCascading }>
315+ <div className = {"mt-16 min-w-320 " ++ theme ++ navAppearanceCascading }>
338316 <div className = "w-full" >
339317 <Navigation isOverlayOpen = isNavOpen setOverlayOpen = setNavOpen />
340318 <div className = "flex lg:justify-center" >
0 commit comments