diff --git a/apps/native-component-list/src/screens/UI/ScrollViewSharedPositionScreen.ios.tsx b/apps/native-component-list/src/screens/UI/ScrollViewSharedPositionScreen.ios.tsx new file mode 100644 index 00000000000000..af0294398e8a29 --- /dev/null +++ b/apps/native-component-list/src/screens/UI/ScrollViewSharedPositionScreen.ios.tsx @@ -0,0 +1,46 @@ +import { Button, Host, ScrollView, Text, VStack, useNativeState } from '@expo/ui/swift-ui'; +import { id, padding, scrollPosition, scrollTargetLayout } from '@expo/ui/swift-ui/modifiers'; +import { scheduleOnUI } from 'react-native-worklets'; + +export default function ScrollViewSharedPositionScreen() { + const activeID = useNativeState(null); + + const scrollToID = (target: string) => { + scheduleOnUI(() => { + 'worklet'; + activeID.value = target; + }); + }; + + return ( + + + { + console.log('[JS thread] leading target:', newID); + }, + }), + ]}> + + {Array.from({ length: 40 }, (_, i) => ( + + {`Item ${i}`} + + ))} + + +