Swap in new list for feeds
This commit is contained in:
@@ -24,6 +24,9 @@ export {
|
||||
useListScrollHandler,
|
||||
} from '#/components/List/ListScrollProvider'
|
||||
|
||||
export type ListRef<Item extends {key: string}> =
|
||||
React.MutableRefObject<FlatList<Item> | null>
|
||||
|
||||
type ListProps<Item extends {key: string}> = Omit<
|
||||
FlatListProps<Item>,
|
||||
| 'onScroll'
|
||||
|
||||
@@ -17,7 +17,6 @@ import Animated, {
|
||||
} from 'react-native-reanimated'
|
||||
|
||||
import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
|
||||
import {ScrollProvider} from '#/lib/ScrollContext'
|
||||
import {isIOS} from '#/platform/detection'
|
||||
import {
|
||||
Pager,
|
||||
@@ -25,6 +24,7 @@ import {
|
||||
type RenderTabBarFnProps,
|
||||
} from '#/view/com/pager/Pager'
|
||||
import {useTheme} from '#/alf'
|
||||
import {ListScrollProvider} from '#/components/List'
|
||||
import {type ListMethods} from '../util/List'
|
||||
import {PagerHeaderProvider} from './PagerHeaderContext'
|
||||
import {TabBar} from './TabBar'
|
||||
@@ -355,7 +355,7 @@ function PagerItem({
|
||||
}
|
||||
|
||||
return (
|
||||
<ScrollProvider onScroll={onScrollWorklet}>
|
||||
<ListScrollProvider onScroll={onScrollWorklet}>
|
||||
{renderTab({
|
||||
headerHeight,
|
||||
isFocused,
|
||||
@@ -363,7 +363,7 @@ function PagerItem({
|
||||
ListMethods | ScrollView | null
|
||||
>,
|
||||
})}
|
||||
</ScrollProvider>
|
||||
</ListScrollProvider>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -52,7 +52,6 @@ import {useLiveNowConfig} from '#/state/service-config'
|
||||
import {useSession} from '#/state/session'
|
||||
import {useProgressGuide} from '#/state/shell/progress-guide'
|
||||
import {useSelectedFeed} from '#/state/shell/selected-feed'
|
||||
import {List, type ListRef} from '#/view/com/util/List'
|
||||
import {PostFeedLoadingPlaceholder} from '#/view/com/util/LoadingPlaceholder'
|
||||
import {LoadMoreRetryBtn} from '#/view/com/util/LoadMoreRetryBtn'
|
||||
import {type VideoFeedSourceContext} from '#/screens/VideoFeed/types'
|
||||
@@ -68,6 +67,7 @@ import {
|
||||
} from '#/components/feeds/PostFeedVideoGridRow'
|
||||
import {TrendingInterstitial} from '#/components/interstitials/Trending'
|
||||
import {TrendingVideos as TrendingVideosInterstitial} from '#/components/interstitials/TrendingVideos'
|
||||
import {List, type ListRef} from '#/components/List'
|
||||
import {DiscoverFallbackHeader} from './DiscoverFallbackHeader'
|
||||
import {FeedShutdownMsg} from './FeedShutdownMsg'
|
||||
import {PostFeedErrorMessage} from './PostFeedErrorMessage'
|
||||
@@ -191,7 +191,6 @@ let PostFeed = ({
|
||||
testID,
|
||||
headerOffset = 0,
|
||||
progressViewOffset,
|
||||
desktopFixedHeightOffset,
|
||||
ListHeaderComponent,
|
||||
extraData,
|
||||
savedFeedConfig,
|
||||
@@ -205,7 +204,7 @@ let PostFeed = ({
|
||||
enabled?: boolean
|
||||
pollInterval?: number
|
||||
disablePoll?: boolean
|
||||
scrollElRef?: ListRef
|
||||
scrollElRef?: ListRef<any>
|
||||
onHasNew?: (v: boolean) => void
|
||||
onScrolledDownChange?: (isScrolledDown: boolean) => void
|
||||
renderEmptyState: () => JSX.Element
|
||||
@@ -887,9 +886,6 @@ let PostFeed = ({
|
||||
onEndReachedThreshold={2} // number of posts left to trigger load more
|
||||
removeClippedSubviews={true}
|
||||
extraData={extraData}
|
||||
desktopFixedHeight={
|
||||
desktopFixedHeightOffset ? desktopFixedHeightOffset : true
|
||||
}
|
||||
initialNumToRender={initialNumToRenderOverride ?? initialNumToRender}
|
||||
windowSize={9}
|
||||
maxToRenderPerBatch={isIOS ? 5 : 1}
|
||||
|
||||
@@ -3,10 +3,10 @@ import {type NativeScrollEvent} from 'react-native'
|
||||
import {interpolate, useSharedValue, withSpring} from 'react-native-reanimated'
|
||||
import EventEmitter from 'eventemitter3'
|
||||
|
||||
import {ScrollProvider} from '#/lib/ScrollContext'
|
||||
import {isNative, isWeb} from '#/platform/detection'
|
||||
import {useMinimalShellMode} from '#/state/shell'
|
||||
import {useShellLayout} from '#/state/shell/shell-layout'
|
||||
import {ListScrollProvider} from '#/components/List'
|
||||
|
||||
const WEB_HIDE_SHELL_THRESHOLD = 200
|
||||
|
||||
@@ -165,13 +165,13 @@ export function MainScrollProvider({children}: {children: React.ReactNode}) {
|
||||
)
|
||||
|
||||
return (
|
||||
<ScrollProvider
|
||||
onBeginDrag={onBeginDrag}
|
||||
onEndDrag={onEndDrag}
|
||||
<ListScrollProvider
|
||||
onScrollBeginDrag={onBeginDrag}
|
||||
onScrollEndDrag={onEndDrag}
|
||||
onScroll={onScroll}
|
||||
onMomentumEnd={onMomentumEnd}>
|
||||
onMomentumScrollEnd={onMomentumEnd}>
|
||||
{children}
|
||||
</ScrollProvider>
|
||||
</ListScrollProvider>
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user