diff options
Diffstat (limited to 'src/view/com/pager')
-rw-r--r-- | src/view/com/pager/Pager.tsx | 13 | ||||
-rw-r--r-- | src/view/com/pager/Pager.web.tsx | 9 | ||||
-rw-r--r-- | src/view/com/pager/PagerWithHeader.tsx | 12 |
3 files changed, 15 insertions, 19 deletions
diff --git a/src/view/com/pager/Pager.tsx b/src/view/com/pager/Pager.tsx index 4d5da960c..de0409991 100644 --- a/src/view/com/pager/Pager.tsx +++ b/src/view/com/pager/Pager.tsx @@ -1,5 +1,5 @@ import React, {forwardRef} from 'react' -import {Animated, View} from 'react-native' +import {View} from 'react-native' import PagerView, { PagerViewOnPageScrollEvent, PagerViewOnPageSelectedEvent, @@ -10,12 +10,11 @@ import {LogEvents} from '#/lib/statsig/events' import {atoms as a, native} from '#/alf' export type PageSelectedEvent = PagerViewOnPageSelectedEvent -const AnimatedPagerView = Animated.createAnimatedComponent(PagerView) export interface PagerRef { setPage: ( index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], + reason: LogEvents['home:feedDisplayed']['reason'], ) => void } @@ -32,7 +31,7 @@ interface Props { onPageSelected?: (index: number) => void onPageSelecting?: ( index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], + reason: LogEvents['home:feedDisplayed']['reason'], ) => void onPageScrollStateChanged?: ( scrollState: 'idle' | 'dragging' | 'settling', @@ -61,7 +60,7 @@ export const Pager = forwardRef<PagerRef, React.PropsWithChildren<Props>>( React.useImperativeHandle(ref, () => ({ setPage: ( index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], + reason: LogEvents['home:feedDisplayed']['reason'], ) => { pagerView.current?.setPage(index) onPageSelecting?.(index, reason) @@ -138,7 +137,7 @@ export const Pager = forwardRef<PagerRef, React.PropsWithChildren<Props>>( selectedPage, onSelect: onTabBarSelect, })} - <AnimatedPagerView + <PagerView ref={pagerView} style={[a.flex_1]} initialPage={initialPage} @@ -146,7 +145,7 @@ export const Pager = forwardRef<PagerRef, React.PropsWithChildren<Props>>( onPageSelected={onPageSelectedInner} onPageScroll={onPageScroll}> {children} - </AnimatedPagerView> + </PagerView> </View> ) }, diff --git a/src/view/com/pager/Pager.web.tsx b/src/view/com/pager/Pager.web.tsx index 2cce727c0..e6909fe10 100644 --- a/src/view/com/pager/Pager.web.tsx +++ b/src/view/com/pager/Pager.web.tsx @@ -18,7 +18,7 @@ interface Props { onPageSelected?: (index: number) => void onPageSelecting?: ( index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], + reason: LogEvents['home:feedDisplayed']['reason'], ) => void } export const Pager = React.forwardRef(function PagerImpl( @@ -38,17 +38,14 @@ export const Pager = React.forwardRef(function PagerImpl( React.useImperativeHandle(ref, () => ({ setPage: ( index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], + reason: LogEvents['home:feedDisplayed']['reason'], ) => { onTabBarSelect(index, reason) }, })) const onTabBarSelect = React.useCallback( - ( - index: number, - reason: LogEvents['home:feedDisplayed:sampled']['reason'], - ) => { + (index: number, reason: LogEvents['home:feedDisplayed']['reason']) => { const scrollY = window.scrollY // We want to determine if the tabbar is already "sticking" at the top (in which // case we should preserve and restore scroll), or if it is somewhere below in the diff --git a/src/view/com/pager/PagerWithHeader.tsx b/src/view/com/pager/PagerWithHeader.tsx index 6d601c289..92b98dc2e 100644 --- a/src/view/com/pager/PagerWithHeader.tsx +++ b/src/view/com/pager/PagerWithHeader.tsx @@ -131,11 +131,11 @@ export const PagerWithHeader = React.forwardRef<PagerRef, PagerWithHeaderProps>( const lastForcedScrollY = useSharedValue(0) const adjustScrollForOtherPages = () => { 'worklet' - const currentScrollY = scrollY.value + const currentScrollY = scrollY.get() const forcedScrollY = Math.min(currentScrollY, headerOnlyHeight) - if (lastForcedScrollY.value !== forcedScrollY) { - lastForcedScrollY.value = forcedScrollY - const refs = scrollRefs.value + if (lastForcedScrollY.get() !== forcedScrollY) { + lastForcedScrollY.set(forcedScrollY) + const refs = scrollRefs.get() for (let i = 0; i < refs.length; i++) { const scollRef = refs[i] if (i !== currentPage && scollRef != null) { @@ -167,7 +167,7 @@ export const PagerWithHeader = React.forwardRef<PagerRef, PagerWithHeaderProps>( const isPossiblyInvalid = headerHeight > 0 && Math.round(nextScrollY * 2) / 2 === -headerHeight if (!isPossiblyInvalid) { - scrollY.value = nextScrollY + scrollY.set(nextScrollY) runOnJS(queueThrottledOnScroll)() } }, @@ -246,7 +246,7 @@ let PagerTabBar = ({ allowHeaderOverScroll?: boolean }): React.ReactNode => { const headerTransform = useAnimatedStyle(() => { - const translateY = Math.min(scrollY.value, headerOnlyHeight) * -1 + const translateY = Math.min(scrollY.get(), headerOnlyHeight) * -1 return { transform: [ { |