Hook ScrollProvider to pager

This commit is contained in:
Dan Abramov
2023-12-13 05:09:13 +00:00
parent 2970b1e515
commit 0c0ea088fc
+7 -8
View File
@@ -21,6 +21,7 @@ import {TabBar} from './TabBar'
import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries' import {useWebMediaQueries} from 'lib/hooks/useWebMediaQueries'
import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback' import {useNonReactiveCallback} from '#/lib/hooks/useNonReactiveCallback'
import {ListMethods} from '../util/List' import {ListMethods} from '../util/List'
import {ScrollProvider} from '#/lib/ScrollContext'
export interface PagerWithHeaderChildParams { export interface PagerWithHeaderChildParams {
headerHeight: number headerHeight: number
@@ -299,23 +300,21 @@ function PagerItem({
} }
}, [scrollElRef, registerRef, index]) }, [scrollElRef, registerRef, index])
const scrollHandler = React.useMemo(
() => ({onScroll: onScrollWorklet}),
[onScrollWorklet],
)
if (!isReady || renderTab == null) { if (!isReady || renderTab == null) {
return null return null
} }
return renderTab({ return (
<ScrollProvider onScroll={onScrollWorklet}>
{renderTab({
headerHeight, headerHeight,
isFocused, isFocused,
onScroll: scrollHandler,
scrollElRef: scrollElRef as React.MutableRefObject< scrollElRef: scrollElRef as React.MutableRefObject<
ListMethods | ScrollView | null ListMethods | ScrollView | null
>, >,
}) })}
</ScrollProvider>
)
} }
const styles = StyleSheet.create({ const styles = StyleSheet.create({