diff options
Diffstat (limited to 'src/view/com')
-rw-r--r-- | src/view/com/notifications/Feed.tsx | 4 | ||||
-rw-r--r-- | src/view/com/posts/Feed.tsx | 4 | ||||
-rw-r--r-- | src/view/com/util/ViewSelector.tsx | 11 |
3 files changed, 18 insertions, 1 deletions
diff --git a/src/view/com/notifications/Feed.tsx b/src/view/com/notifications/Feed.tsx index a6af0f88a..c986bca57 100644 --- a/src/view/com/notifications/Feed.tsx +++ b/src/view/com/notifications/Feed.tsx @@ -6,15 +6,18 @@ import {FeedItem} from './FeedItem' import {NotificationFeedLoadingPlaceholder} from '../util/LoadingPlaceholder' import {ErrorMessage} from '../util/ErrorMessage' import {EmptyState} from '../util/EmptyState' +import {OnScrollCb} from '../../lib/useOnMainScroll' const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} export const Feed = observer(function Feed({ view, onPressTryAgain, + onScroll, }: { view: NotificationsViewModel onPressTryAgain?: () => void + onScroll?: OnScrollCb }) { // TODO optimize renderItem or FeedItem, we're getting this notice from RN: -prf // VirtualizedList: You have a large list that is slow to update - make sure your @@ -65,6 +68,7 @@ export const Feed = observer(function Feed({ refreshing={view.isRefreshing} onRefresh={onRefresh} onEndReached={onEndReached} + onScroll={onScroll} /> )} </View> diff --git a/src/view/com/posts/Feed.tsx b/src/view/com/posts/Feed.tsx index 59b529dc4..e34513794 100644 --- a/src/view/com/posts/Feed.tsx +++ b/src/view/com/posts/Feed.tsx @@ -13,6 +13,7 @@ import {ErrorMessage} from '../util/ErrorMessage' import {FeedModel} from '../../../state/models/feed-view' import {FeedItem} from './FeedItem' import {ComposePrompt} from '../composer/Prompt' +import {OnScrollCb} from '../../lib/useOnMainScroll' const COMPOSE_PROMPT_ITEM = {_reactKey: '__prompt__'} const EMPTY_FEED_ITEM = {_reactKey: '__empty__'} @@ -23,12 +24,14 @@ export const Feed = observer(function Feed({ scrollElRef, onPressCompose, onPressTryAgain, + onScroll, }: { feed: FeedModel style?: StyleProp<ViewStyle> scrollElRef?: MutableRefObject<FlatList<any> | null> onPressCompose: () => void onPressTryAgain?: () => void + onScroll?: OnScrollCb }) { // TODO optimize renderItem or FeedItem, we're getting this notice from RN: -prf // VirtualizedList: You have a large list that is slow to update - make sure your @@ -92,6 +95,7 @@ export const Feed = observer(function Feed({ ListFooterComponent={FeedFooter} refreshing={feed.isRefreshing} contentContainerStyle={{paddingBottom: 100}} + onScroll={onScroll} onRefresh={onRefresh} onEndReached={onEndReached} /> diff --git a/src/view/com/util/ViewSelector.tsx b/src/view/com/util/ViewSelector.tsx index 264a9086d..e436e41b2 100644 --- a/src/view/com/util/ViewSelector.tsx +++ b/src/view/com/util/ViewSelector.tsx @@ -1,8 +1,14 @@ import React, {useEffect, useState} from 'react' -import {FlatList, View} from 'react-native' +import { + FlatList, + NativeSyntheticEvent, + NativeScrollEvent, + View, +} from 'react-native' import {Selector} from './Selector' import {HorzSwipe} from './gestures/HorzSwipe' import {useAnimatedValue} from '../../lib/useAnimatedValue' +import {OnScrollCb} from '../../lib/useOnMainScroll' const HEADER_ITEM = {_reactKey: '__header__'} const SELECTOR_ITEM = {_reactKey: '__selector__'} @@ -17,6 +23,7 @@ export function ViewSelector({ renderItem, ListFooterComponent, onSelectView, + onScroll, onRefresh, onEndReached, }: { @@ -32,6 +39,7 @@ export function ViewSelector({ | null | undefined onSelectView?: (viewIndex: number) => void + onScroll?: OnScrollCb onRefresh?: () => void onEndReached?: (info: {distanceFromEnd: number}) => void }) { @@ -90,6 +98,7 @@ export function ViewSelector({ ListFooterComponent={ListFooterComponent} stickyHeaderIndices={STICKY_HEADER_INDICES} refreshing={refreshing} + onScroll={onScroll} onRefresh={onRefresh} onEndReached={onEndReached} /> |