@@ -17,6 +17,7 @@ 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,
|
||||||
@@ -24,7 +25,6 @@ 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 (
|
||||||
<ListScrollProvider onScroll={onScrollWorklet}>
|
<ScrollProvider onScroll={onScrollWorklet}>
|
||||||
{renderTab({
|
{renderTab({
|
||||||
headerHeight,
|
headerHeight,
|
||||||
isFocused,
|
isFocused,
|
||||||
@@ -363,7 +363,7 @@ function PagerItem({
|
|||||||
ListMethods | ScrollView | null
|
ListMethods | ScrollView | null
|
||||||
>,
|
>,
|
||||||
})}
|
})}
|
||||||
</ListScrollProvider>
|
</ScrollProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -52,6 +52,7 @@ 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'
|
||||||
@@ -67,7 +68,6 @@ 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,6 +191,7 @@ let PostFeed = ({
|
|||||||
testID,
|
testID,
|
||||||
headerOffset = 0,
|
headerOffset = 0,
|
||||||
progressViewOffset,
|
progressViewOffset,
|
||||||
|
desktopFixedHeightOffset,
|
||||||
ListHeaderComponent,
|
ListHeaderComponent,
|
||||||
extraData,
|
extraData,
|
||||||
savedFeedConfig,
|
savedFeedConfig,
|
||||||
@@ -204,7 +205,7 @@ let PostFeed = ({
|
|||||||
enabled?: boolean
|
enabled?: boolean
|
||||||
pollInterval?: number
|
pollInterval?: number
|
||||||
disablePoll?: boolean
|
disablePoll?: boolean
|
||||||
scrollElRef?: ListRef<any>
|
scrollElRef?: ListRef
|
||||||
onHasNew?: (v: boolean) => void
|
onHasNew?: (v: boolean) => void
|
||||||
onScrolledDownChange?: (isScrolledDown: boolean) => void
|
onScrolledDownChange?: (isScrolledDown: boolean) => void
|
||||||
renderEmptyState: () => JSX.Element
|
renderEmptyState: () => JSX.Element
|
||||||
@@ -886,6 +887,9 @@ 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}
|
||||||
|
|||||||
@@ -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 (
|
||||||
<ListScrollProvider
|
<ScrollProvider
|
||||||
onScrollBeginDrag={onBeginDrag}
|
onBeginDrag={onBeginDrag}
|
||||||
onScrollEndDrag={onEndDrag}
|
onEndDrag={onEndDrag}
|
||||||
onScroll={onScroll}
|
onScroll={onScroll}
|
||||||
onMomentumScrollEnd={onMomentumEnd}>
|
onMomentumEnd={onMomentumEnd}>
|
||||||
{children}
|
{children}
|
||||||
</ListScrollProvider>
|
</ScrollProvider>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user