diff options
author | dan <dan.abramov@gmail.com> | 2023-11-10 19:00:46 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-10 19:00:46 +0000 |
commit | 65def371659c3b64481199b2585a40a1affd9ec2 (patch) | |
tree | 1fb92b4717fcfc82bdd476fdbcaa4ea80cb673bb /src/view/com/posts/Feed.tsx | |
parent | e0e5bc8fd850942b6749ad48d9ae087d99026996 (diff) | |
download | voidsky-65def371659c3b64481199b2585a40a1affd9ec2.tar.zst |
Push useAnimatedScrollHandler down everywhere to work around bugs (#1866)
* Move useOnMainScroll handlers to leaves * Force Feed to always take handlers * Pass handlers from the pager
Diffstat (limited to 'src/view/com/posts/Feed.tsx')
-rw-r--r-- | src/view/com/posts/Feed.tsx | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 1ecb14912..5b517f4c7 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -14,10 +14,11 @@ import {FeedErrorMessage} from './FeedErrorMessage' import {PostsFeedModel} from 'state/models/feeds/posts' import {FeedSlice} from './FeedSlice' import {LoadMoreRetryBtn} from '../util/LoadMoreRetryBtn' -import {OnScrollCb} from 'lib/hooks/useOnMainScroll' +import {OnScrollHandler} from 'lib/hooks/useOnMainScroll' import {s} from 'lib/styles' import {useAnalytics} from 'lib/analytics/analytics' import {usePalette} from 'lib/hooks/usePalette' +import {useAnimatedScrollHandler} from '#/lib/hooks/useAnimatedScrollHandler_FIXED' import {useTheme} from 'lib/ThemeContext' import {logger} from '#/logger' @@ -43,7 +44,7 @@ export const Feed = observer(function Feed({ feed: PostsFeedModel style?: StyleProp<ViewStyle> scrollElRef?: MutableRefObject<FlatList<any> | null> - onScroll?: OnScrollCb + onScroll?: OnScrollHandler scrollEventThrottle?: number renderEmptyState: () => JSX.Element renderEndOfFeed?: () => JSX.Element @@ -157,6 +158,7 @@ export const Feed = observer(function Feed({ [feed.isLoadingMore, feed.hasMore, feed.isEmpty, renderEndOfFeed], ) + const scrollHandler = useAnimatedScrollHandler(onScroll || {}) return ( <View testID={testID} style={style}> <FlatList @@ -178,7 +180,7 @@ export const Feed = observer(function Feed({ } contentContainerStyle={s.contentContainer} style={{paddingTop: headerOffset}} - onScroll={onScroll} + onScroll={onScroll != null ? scrollHandler : undefined} scrollEventThrottle={scrollEventThrottle} indicatorStyle={theme.colorScheme === 'dark' ? 'white' : 'black'} onEndReached={onEndReached} |