fix: keep main feed scroll position on primary page navigation (#299)

This commit is contained in:
TheMonkeyCoder
2025-04-24 17:30:24 +03:30
committed by GitHub
parent b0b07365be
commit d3d5842804

View File

@@ -39,10 +39,21 @@ const PrimaryPageLayout = forwardRef(
[]
)
const lastScrollTopRef = useRef(0)
useEffect(() => {
if (isSmallScreen) {
window.scrollTo({ top: 0 })
return
if (scrollAreaRef.current?.checkVisibility()) {
window.scrollTo({ top: lastScrollTopRef.current })
}
const handleScroll = () => {
if (scrollAreaRef.current?.checkVisibility()) {
lastScrollTopRef.current = window.scrollY
}
}
window.addEventListener('scroll', handleScroll)
return () => {
window.removeEventListener('scroll', handleScroll)
}
}
}, [current])
@@ -50,6 +61,7 @@ const PrimaryPageLayout = forwardRef(
return (
<DeepBrowsingProvider active={current === pageName}>
<div
ref={scrollAreaRef}
style={{
paddingBottom: 'calc(env(safe-area-inset-bottom) + 3rem)'
}}