Only intercept scroll handler on iOS
The ScrollProvider wrapping and animatedProps for scroll indicator insets are iOS-only. On other platforms, let the List use the scroll handler from context directly. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -201,14 +201,7 @@ export function ProfileStarterPacks({
|
|||||||
[isTabletOrDesktop, t.atoms.border_contrast_low],
|
[isTabletOrDesktop, t.atoms.border_contrast_low],
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
const list = (
|
||||||
<View testID={testID} style={style}>
|
|
||||||
<ScrollProvider
|
|
||||||
onScroll={onScrollWorklet}
|
|
||||||
onBeginDrag={onBeginDragFromContext}
|
|
||||||
onEndDrag={onEndDragFromContext}
|
|
||||||
onMomentumBegin={onMomentumEndFromContext}
|
|
||||||
onMomentumEnd={onMomentumEndFromContext}>
|
|
||||||
<List
|
<List
|
||||||
testID={testID ? `${testID}-flatlist` : undefined}
|
testID={testID ? `${testID}-flatlist` : undefined}
|
||||||
ref={scrollElRef}
|
ref={scrollElRef}
|
||||||
@@ -232,9 +225,24 @@ export function ProfileStarterPacks({
|
|||||||
ListFooterComponent={
|
ListFooterComponent={
|
||||||
!!data && items?.length !== 0 && isMe ? CreateAnother : undefined
|
!!data && items?.length !== 0 && isMe ? CreateAnother : undefined
|
||||||
}
|
}
|
||||||
animatedProps={animatedProps}
|
animatedProps={IS_IOS ? animatedProps : undefined}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View testID={testID} style={style}>
|
||||||
|
{IS_IOS ? (
|
||||||
|
<ScrollProvider
|
||||||
|
onScroll={onScrollWorklet}
|
||||||
|
onBeginDrag={onBeginDragFromContext}
|
||||||
|
onEndDrag={onEndDragFromContext}
|
||||||
|
onMomentumBegin={onMomentumEndFromContext}
|
||||||
|
onMomentumEnd={onMomentumEndFromContext}>
|
||||||
|
{list}
|
||||||
</ScrollProvider>
|
</ScrollProvider>
|
||||||
|
) : (
|
||||||
|
list
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -159,14 +159,7 @@ export function ProfileLabelsSection({
|
|||||||
[labelerInfo, isSubscribed, numItems, t],
|
[labelerInfo, isSubscribed, numItems, t],
|
||||||
)
|
)
|
||||||
|
|
||||||
return (
|
const list = (
|
||||||
<View>
|
|
||||||
<ScrollProvider
|
|
||||||
onScroll={onScrollWorklet}
|
|
||||||
onBeginDrag={onBeginDragFromContext}
|
|
||||||
onEndDrag={onEndDragFromContext}
|
|
||||||
onMomentumBegin={onMomentumEndFromContext}
|
|
||||||
onMomentumEnd={onMomentumEndFromContext}>
|
|
||||||
<List
|
<List
|
||||||
ref={scrollElRef}
|
ref={scrollElRef}
|
||||||
data={labelValues}
|
data={labelValues}
|
||||||
@@ -185,14 +178,26 @@ export function ProfileLabelsSection({
|
|||||||
/>
|
/>
|
||||||
}
|
}
|
||||||
ListFooterComponent={
|
ListFooterComponent={
|
||||||
<ListFooter
|
<ListFooter height={headerHeight + 180} style={a.border_transparent} />
|
||||||
height={headerHeight + 180}
|
|
||||||
style={a.border_transparent}
|
|
||||||
/>
|
|
||||||
}
|
}
|
||||||
animatedProps={animatedProps}
|
animatedProps={IS_IOS ? animatedProps : undefined}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View>
|
||||||
|
{IS_IOS ? (
|
||||||
|
<ScrollProvider
|
||||||
|
onScroll={onScrollWorklet}
|
||||||
|
onBeginDrag={onBeginDragFromContext}
|
||||||
|
onEndDrag={onEndDragFromContext}
|
||||||
|
onMomentumBegin={onMomentumEndFromContext}
|
||||||
|
onMomentumEnd={onMomentumEndFromContext}>
|
||||||
|
{list}
|
||||||
</ScrollProvider>
|
</ScrollProvider>
|
||||||
|
) : (
|
||||||
|
list
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -286,14 +286,7 @@ export function ProfileFeedgens({
|
|||||||
isEmpty,
|
isEmpty,
|
||||||
])
|
])
|
||||||
|
|
||||||
return (
|
const list = (
|
||||||
<View testID={testID} style={style}>
|
|
||||||
<ScrollProvider
|
|
||||||
onScroll={onScrollWorklet}
|
|
||||||
onBeginDrag={onBeginDragFromContext}
|
|
||||||
onEndDrag={onEndDragFromContext}
|
|
||||||
onMomentumBegin={onMomentumEndFromContext}
|
|
||||||
onMomentumEnd={onMomentumEndFromContext}>
|
|
||||||
<List
|
<List
|
||||||
testID={testID ? `${testID}-flatlist` : undefined}
|
testID={testID ? `${testID}-flatlist` : undefined}
|
||||||
ref={scrollElRef}
|
ref={scrollElRef}
|
||||||
@@ -309,9 +302,24 @@ export function ProfileFeedgens({
|
|||||||
desktopFixedHeight
|
desktopFixedHeight
|
||||||
onEndReached={onEndReached}
|
onEndReached={onEndReached}
|
||||||
contentContainerStyle={{minHeight: height + headerOffset}}
|
contentContainerStyle={{minHeight: height + headerOffset}}
|
||||||
animatedProps={animatedProps}
|
animatedProps={IS_IOS ? animatedProps : undefined}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View testID={testID} style={style}>
|
||||||
|
{IS_IOS ? (
|
||||||
|
<ScrollProvider
|
||||||
|
onScroll={onScrollWorklet}
|
||||||
|
onBeginDrag={onBeginDragFromContext}
|
||||||
|
onEndDrag={onEndDragFromContext}
|
||||||
|
onMomentumBegin={onMomentumEndFromContext}
|
||||||
|
onMomentumEnd={onMomentumEndFromContext}>
|
||||||
|
{list}
|
||||||
</ScrollProvider>
|
</ScrollProvider>
|
||||||
|
) : (
|
||||||
|
list
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -285,14 +285,7 @@ export function ProfileLists({
|
|||||||
isEmpty,
|
isEmpty,
|
||||||
])
|
])
|
||||||
|
|
||||||
return (
|
const list = (
|
||||||
<View testID={testID} style={style}>
|
|
||||||
<ScrollProvider
|
|
||||||
onScroll={onScrollWorklet}
|
|
||||||
onBeginDrag={onBeginDragFromContext}
|
|
||||||
onEndDrag={onEndDragFromContext}
|
|
||||||
onMomentumBegin={onMomentumEndFromContext}
|
|
||||||
onMomentumEnd={onMomentumEndFromContext}>
|
|
||||||
<List
|
<List
|
||||||
testID={testID ? `${testID}-flatlist` : undefined}
|
testID={testID ? `${testID}-flatlist` : undefined}
|
||||||
ref={scrollElRef}
|
ref={scrollElRef}
|
||||||
@@ -308,9 +301,24 @@ export function ProfileLists({
|
|||||||
desktopFixedHeight
|
desktopFixedHeight
|
||||||
onEndReached={onEndReached}
|
onEndReached={onEndReached}
|
||||||
contentContainerStyle={{minHeight: height + headerOffset}}
|
contentContainerStyle={{minHeight: height + headerOffset}}
|
||||||
animatedProps={animatedProps}
|
animatedProps={IS_IOS ? animatedProps : undefined}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View testID={testID} style={style}>
|
||||||
|
{IS_IOS ? (
|
||||||
|
<ScrollProvider
|
||||||
|
onScroll={onScrollWorklet}
|
||||||
|
onBeginDrag={onBeginDragFromContext}
|
||||||
|
onEndDrag={onEndDragFromContext}
|
||||||
|
onMomentumBegin={onMomentumEndFromContext}
|
||||||
|
onMomentumEnd={onMomentumEndFromContext}>
|
||||||
|
{list}
|
||||||
</ScrollProvider>
|
</ScrollProvider>
|
||||||
|
) : (
|
||||||
|
list
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1045,14 +1045,7 @@ let PostFeed = ({
|
|||||||
return {}
|
return {}
|
||||||
})
|
})
|
||||||
|
|
||||||
return (
|
const list = (
|
||||||
<View testID={testID} style={style}>
|
|
||||||
<ScrollProvider
|
|
||||||
onScroll={onScrollWorklet}
|
|
||||||
onBeginDrag={onBeginDragFromContext}
|
|
||||||
onEndDrag={onEndDragFromContext}
|
|
||||||
onMomentumBegin={onMomentumEndFromContext}
|
|
||||||
onMomentumEnd={onMomentumEndFromContext}>
|
|
||||||
<List
|
<List
|
||||||
testID={testID ? `${testID}-flatlist` : undefined}
|
testID={testID ? `${testID}-flatlist` : undefined}
|
||||||
ref={scrollElRef}
|
ref={scrollElRef}
|
||||||
@@ -1081,9 +1074,24 @@ let PostFeed = ({
|
|||||||
maxToRenderPerBatch={IS_IOS ? 5 : 1}
|
maxToRenderPerBatch={IS_IOS ? 5 : 1}
|
||||||
updateCellsBatchingPeriod={40}
|
updateCellsBatchingPeriod={40}
|
||||||
onItemSeen={onItemSeen}
|
onItemSeen={onItemSeen}
|
||||||
animatedProps={animatedProps}
|
animatedProps={IS_IOS ? animatedProps : undefined}
|
||||||
/>
|
/>
|
||||||
|
)
|
||||||
|
|
||||||
|
return (
|
||||||
|
<View testID={testID} style={style}>
|
||||||
|
{IS_IOS ? (
|
||||||
|
<ScrollProvider
|
||||||
|
onScroll={onScrollWorklet}
|
||||||
|
onBeginDrag={onBeginDragFromContext}
|
||||||
|
onEndDrag={onEndDragFromContext}
|
||||||
|
onMomentumBegin={onMomentumEndFromContext}
|
||||||
|
onMomentumEnd={onMomentumEndFromContext}>
|
||||||
|
{list}
|
||||||
</ScrollProvider>
|
</ScrollProvider>
|
||||||
|
) : (
|
||||||
|
list
|
||||||
|
)}
|
||||||
</View>
|
</View>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user