From b71575a3f08f5e7f8a3759edd9fc41839d814f8c Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Wed, 27 Aug 2025 21:27:15 -0500 Subject: [PATCH] Swap in new list for feeds --- src/components/List/index.tsx | 3 +++ src/view/com/pager/PagerWithHeader.tsx | 6 +++--- src/view/com/posts/PostFeed.tsx | 8 ++------ src/view/com/util/MainScrollProvider.tsx | 12 ++++++------ 4 files changed, 14 insertions(+), 15 deletions(-) diff --git a/src/components/List/index.tsx b/src/components/List/index.tsx index 773c3838b5..c46d8e5cb6 100644 --- a/src/components/List/index.tsx +++ b/src/components/List/index.tsx @@ -24,6 +24,9 @@ export { useListScrollHandler, } from '#/components/List/ListScrollProvider' +export type ListRef = + React.MutableRefObject | null> + type ListProps = Omit< FlatListProps, | 'onScroll' diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx index c0c52779ed..bd52ed4042 100644 --- a/src/view/com/pager/PagerWithHeader.tsx +++ b/src/view/com/pager/PagerWithHeader.tsx @@ -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 ( - + {renderTab({ headerHeight, isFocused, @@ -363,7 +363,7 @@ function PagerItem({ ListMethods | ScrollView | null >, })} - + ) } diff --git a/src/view/com/posts/PostFeed.tsx b/src/view/com/posts/PostFeed.tsx index fe6351cd44..e0d0c48eff 100644 --- a/src/view/com/posts/PostFeed.tsx +++ b/src/view/com/posts/PostFeed.tsx @@ -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 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} diff --git a/src/view/com/util/MainScrollProvider.tsx b/src/view/com/util/MainScrollProvider.tsx index d8596b6f3f..eda14df740 100644 --- a/src/view/com/util/MainScrollProvider.tsx +++ b/src/view/com/util/MainScrollProvider.tsx @@ -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 ( - + onMomentumScrollEnd={onMomentumEnd}> {children} - + ) }