fix: prevent flicker of top tabs on back navigation
This commit is contained in:
parent
2f4f4fffcf
commit
3b3a3f41c3
2 changed files with 5 additions and 11 deletions
|
|
@ -60,7 +60,7 @@ const PrimaryPageLayout = forwardRef(
|
||||||
|
|
||||||
if (isSmallScreen) {
|
if (isSmallScreen) {
|
||||||
return (
|
return (
|
||||||
<DeepBrowsingProvider active={current === pageName}>
|
<DeepBrowsingProvider active={current === pageName && display}>
|
||||||
<div
|
<div
|
||||||
ref={smallScreenScrollAreaRef}
|
ref={smallScreenScrollAreaRef}
|
||||||
style={{
|
style={{
|
||||||
|
|
@ -77,7 +77,7 @@ const PrimaryPageLayout = forwardRef(
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<DeepBrowsingProvider active={current === pageName} scrollAreaRef={scrollAreaRef}>
|
<DeepBrowsingProvider active={current === pageName && display} scrollAreaRef={scrollAreaRef}>
|
||||||
<ScrollArea
|
<ScrollArea
|
||||||
className="h-screen overflow-auto"
|
className="h-screen overflow-auto"
|
||||||
scrollBarClassName="z-50 pt-12"
|
scrollBarClassName="z-50 pt-12"
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,6 @@ export function DeepBrowsingProvider({
|
||||||
const [lastScrollTop, setLastScrollTop] = useState(lastScrollTopRef.current)
|
const [lastScrollTop, setLastScrollTop] = useState(lastScrollTopRef.current)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setDeepBrowsing(false)
|
|
||||||
if (!active) return
|
if (!active) return
|
||||||
|
|
||||||
const handleScroll = () => {
|
const handleScroll = () => {
|
||||||
|
|
@ -51,16 +50,11 @@ export function DeepBrowsingProvider({
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!scrollAreaRef) {
|
const target = scrollAreaRef ? scrollAreaRef.current : window
|
||||||
window.addEventListener('scroll', handleScroll)
|
|
||||||
return () => {
|
|
||||||
window.removeEventListener('scroll', handleScroll)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
scrollAreaRef.current?.addEventListener('scroll', handleScroll)
|
target?.addEventListener('scroll', handleScroll)
|
||||||
return () => {
|
return () => {
|
||||||
scrollAreaRef.current?.removeEventListener('scroll', handleScroll)
|
target?.removeEventListener('scroll', handleScroll)
|
||||||
}
|
}
|
||||||
}, [active])
|
}, [active])
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue