From b38ea9d6cc0b460181ea4cc7d225f87c55e49d4e Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Sat, 30 Nov 2024 18:59:57 +0000 Subject: [PATCH] Fix profile and types --- src/view/com/home/HomeHeader.tsx | 3 ++- src/view/com/pager/Pager.tsx | 9 +++++---- src/view/com/pager/PagerWithHeader.tsx | 8 ++++++++ src/view/com/pager/PagerWithHeader.web.tsx | 2 ++ src/view/com/pager/TabBar.tsx | 8 +++++--- 5 files changed, 22 insertions(+), 8 deletions(-) diff --git a/src/view/com/home/HomeHeader.tsx b/src/view/com/home/HomeHeader.tsx index e40cd232c2..0ec9ac753e 100644 --- a/src/view/com/home/HomeHeader.tsx +++ b/src/view/com/home/HomeHeader.tsx @@ -59,7 +59,8 @@ export function HomeHeader( onSelect={onSelect} testID={props.testID} items={items} - dragGesture={props.dragGesture} + dragProgress={props.dragProgress} + dragState={props.dragState} /> ) diff --git a/src/view/com/pager/Pager.tsx b/src/view/com/pager/Pager.tsx index 4dd2e4abe6..23a0cd05f4 100644 --- a/src/view/com/pager/Pager.tsx +++ b/src/view/com/pager/Pager.tsx @@ -8,6 +8,7 @@ import PagerView, { } from 'react-native-pager-view' import Animated, { runOnJS, + SharedValue, useEvent, useHandler, useSharedValue, @@ -25,6 +26,8 @@ export interface RenderTabBarFnProps { selectedPage: number onSelect?: (index: number) => void tabBarAnchor?: JSX.Element | null | undefined // Ignored on native. + dragProgress: SharedValue // Ignored on web. + dragState: SharedValue<'idle' | 'dragging' | 'settling'> // Ignored on web. } export type RenderTabBarFn = (props: RenderTabBarFnProps) => JSX.Element @@ -107,10 +110,8 @@ export const Pager = forwardRef>( {renderTabBar({ selectedPage, onSelect: onTabBarSelect, - dragGesture: { - dragProgress, - dragState, - }, + dragProgress, + dragState, })} ( scrollY={scrollY} testID={testID} allowHeaderOverScroll={allowHeaderOverScroll} + dragProgress={props.dragProgress} + dragState={props.dragState} /> ) @@ -226,6 +228,8 @@ let PagerTabBar = ({ onCurrentPageSelected, onSelect, allowHeaderOverScroll, + dragProgress, + dragState, }: { currentPage: number headerOnlyHeight: number @@ -239,6 +243,8 @@ let PagerTabBar = ({ onCurrentPageSelected?: (index: number) => void onSelect?: (index: number) => void allowHeaderOverScroll?: boolean + dragProgress: SharedValue + dragState: SharedValue<'idle' | 'dragging' | 'settling'> }): React.ReactNode => { const headerTransform = useAnimatedStyle(() => { const translateY = Math.min(scrollY.get(), headerOnlyHeight) * -1 @@ -297,6 +303,8 @@ let PagerTabBar = ({ selectedPage={currentPage} onSelect={onSelect} onPressSelected={onCurrentPageSelected} + dragProgress={dragProgress} + dragState={dragState} /> diff --git a/src/view/com/pager/PagerWithHeader.web.tsx b/src/view/com/pager/PagerWithHeader.web.tsx index dd00264050..13c723f471 100644 --- a/src/view/com/pager/PagerWithHeader.web.tsx +++ b/src/view/com/pager/PagerWithHeader.web.tsx @@ -151,6 +151,8 @@ let PagerTabBar = ({ selectedPage={currentPage} onSelect={onSelect} onPressSelected={onCurrentPageSelected} + dragProgress={undefined as any /* native-only */} + dragState={undefined as any /* native-only */} /> diff --git a/src/view/com/pager/TabBar.tsx b/src/view/com/pager/TabBar.tsx index 80798539f9..b2264767f4 100644 --- a/src/view/com/pager/TabBar.tsx +++ b/src/view/com/pager/TabBar.tsx @@ -21,6 +21,8 @@ export interface TabBarProps { items: string[] onSelect?: (index: number) => void onPressSelected?: (index: number) => void + dragProgress: SharedValue + dragState: SharedValue<'idle' | 'dragging' | 'settling'> } export function TabBar({ @@ -29,17 +31,17 @@ export function TabBar({ items, onSelect, onPressSelected, - dragGesture, + dragProgress, + dragState, }: TabBarProps) { const pal = usePalette('default') - const scrollElRef = useAnimatedRef() + const scrollElRef = useAnimatedRef() const isSyncingScroll = useSharedValue(true) const contentSize = useSharedValue(0) const containerSize = useSharedValue(0) const scrollX = useSharedValue(0) const layouts = useSharedValue<{x: number; width: number}[]>([]) const itemsLength = items.length - const {dragProgress, dragState} = dragGesture // When you swipe the pager, the tabbar should scroll automatically // as you're dragging the page and then even during deceleration.