Migrating from 2.x to 3.x
Version 3 removes the consumer-supplied list paging layer. GestureViewer now owns its paging with an internal gesture-driven render window, so apps no longer need to pass ScrollView, FlatList, or FlashList into the viewer.
Migration Steps
Remove list component props
Delete ListComponent and listProps from GestureViewer.
Replace snap spacing with page spacing
enableSnapMode and itemSpacing have been removed. Use pageSpacing when you need visible space between pages.
Tune the render window only when needed
By default, v3 mounts three pages: previous, current, and next. Increase windowSize only when you need more adjacent content mounted.
Keep programmatic navigation
goToIndex, goToPrevious, and goToNext still work. horizontalSwipe={{ enabled: false }} disables only user/mouse horizontal swipe gestures; controller navigation and autoplay remain available.
Removed Props
Common listProps Migrations
v3 no longer forwards props to ScrollView, FlatList, or FlashList. Move common listProps usage to the v3 viewer APIs instead:
Notes
renderItemremains the customization point for images, videos, and custom content.useGestureViewerStatecontinues to exposecurrentIndexandtotalCount.useGestureViewerControllerremains the programmatic control surface.
