Fix on mobile

This commit is contained in:
Dan Abramov
2023-12-13 04:21:33 +00:00
parent b93ab428c3
commit b1cb4ef4de
+7 -2
View File
@@ -1,6 +1,7 @@
import React, {useState} from 'react'
import {FlatListProps} from 'react-native'
import {FlatList_INTERNAL} from './Views'
import {runOnJS} from 'react-native-reanimated'
import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED'
export type ListMethods = FlatList_INTERNAL
@@ -17,13 +18,17 @@ function ListImpl<ItemT>(
) {
const [isScrolledDown, setIsScrolledDown] = useState(false)
function handleScrolledDownChange(didScrollDown: boolean) {
setIsScrolledDown(didScrollDown)
onScrolledDownChange?.(didScrollDown)
}
// TODO: This ignores the passed-in onScroll completely.
const scrollHandler = useAnimatedScrollHandler({
onScroll(e) {
const didScrollDown = e.contentOffset.y > SCROLLED_DOWN_LIMIT
if (isScrolledDown !== didScrollDown) {
setIsScrolledDown(didScrollDown)
onScrolledDownChange?.(didScrollDown)
runOnJS(handleScrolledDownChange)(didScrollDown)
}
},
})