diff --git a/src/view/com/post-thread/PostThread.tsx b/src/view/com/post-thread/PostThread.tsx
index f4bf3b1ac8..6e356f994e 100644
--- a/src/view/com/post-thread/PostThread.tsx
+++ b/src/view/com/post-thread/PostThread.tsx
@@ -1,10 +1,12 @@
import React, {useEffect, useRef} from 'react'
import {StyleSheet, useWindowDimensions, View} from 'react-native'
+import {runOnJS} from 'react-native-reanimated'
import {AppBskyFeedDefs} from '@atproto/api'
import {msg, Trans} from '@lingui/macro'
import {useLingui} from '@lingui/react'
import {moderatePost_wrapped as moderatePost} from '#/lib/moderatePost_wrapped'
+import {ScrollProvider} from '#/lib/ScrollContext'
import {isAndroid, isNative, isWeb} from '#/platform/detection'
import {
sortThread,
@@ -276,8 +278,11 @@ export function PostThread({
setMaxParents(n => n + PARENTS_CHUNK_SIZE)
}
}, [])
- const onMomentumScrollEnd = bumpMaxParentsIfNeeded
const onScrollToTop = bumpMaxParentsIfNeeded
+ const onMomentumEnd = React.useCallback(() => {
+ 'worklet'
+ runOnJS(bumpMaxParentsIfNeeded)()
+ }, [bumpMaxParentsIfNeeded])
const onEndReached = React.useCallback(() => {
if (isFetching || posts.length < maxReplies) return
@@ -382,38 +387,39 @@ export function PostThread({
}
return (
-
- }
- initialNumToRender={initialNumToRender}
- windowSize={11}
- />
+
+
+ }
+ initialNumToRender={initialNumToRender}
+ windowSize={11}
+ />
+
)
}
diff --git a/src/view/com/util/List.tsx b/src/view/com/util/List.tsx
index d96a634ef2..ff60e94cd8 100644
--- a/src/view/com/util/List.tsx
+++ b/src/view/com/util/List.tsx
@@ -13,7 +13,11 @@ import {FlatList_INTERNAL} from './Views'
export type ListMethods = FlatList_INTERNAL
export type ListProps = Omit<
FlatListProps,
+ | 'onMomentumScrollBegin' // Use ScrollContext instead.
+ | 'onMomentumScrollEnd' // Use ScrollContext instead.
| 'onScroll' // Use ScrollContext instead.
+ | 'onScrollBeginDrag' // Use ScrollContext instead.
+ | 'onScrollEndDrag' // Use ScrollContext instead.
| 'refreshControl' // Pass refreshing and/or onRefresh instead.
| 'contentOffset' // Pass headerOffset instead.
> & {