Swap in new list for feeds

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