ensure no feed glitch on fly-away
This commit is contained in:
@@ -2,7 +2,7 @@ import {
|
|||||||
forwardRef,
|
forwardRef,
|
||||||
memo,
|
memo,
|
||||||
useDeferredValue,
|
useDeferredValue,
|
||||||
useEffect,
|
useLayoutEffect,
|
||||||
useMemo,
|
useMemo,
|
||||||
useRef,
|
useRef,
|
||||||
} from 'react'
|
} from 'react'
|
||||||
@@ -216,16 +216,13 @@ function useSaveScrollOnLightbox(
|
|||||||
const {activeLightbox} = useLightbox()
|
const {activeLightbox} = useLightbox()
|
||||||
const savedOffset = useRef<number | null>(null)
|
const savedOffset = useRef<number | null>(null)
|
||||||
|
|
||||||
useEffect(() => {
|
useLayoutEffect(() => {
|
||||||
if (activeLightbox) {
|
if (activeLightbox) {
|
||||||
savedOffset.current = scrollOffsetY.get()
|
savedOffset.current = scrollOffsetY.get()
|
||||||
} else if (savedOffset.current !== null) {
|
} else if (savedOffset.current !== null) {
|
||||||
const offset = savedOffset.current
|
const offset = savedOffset.current
|
||||||
savedOffset.current = null
|
savedOffset.current = null
|
||||||
// Restore after layout settles from any orientation change.
|
|
||||||
requestAnimationFrame(() => {
|
|
||||||
listRef.current?.scrollToOffset({offset, animated: false})
|
listRef.current?.scrollToOffset({offset, animated: false})
|
||||||
})
|
|
||||||
}
|
}
|
||||||
}, [activeLightbox, listRef, scrollOffsetY])
|
}, [activeLightbox, listRef, scrollOffsetY])
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user