diff --git a/src/Carousel.tsx b/src/Carousel.tsx index 980baac7..827f3749 100644 --- a/src/Carousel.tsx +++ b/src/Carousel.tsx @@ -153,6 +153,11 @@ const Carousel = React.forwardRef>( [getCurrentIndex, next, prev, scrollTo], ); + React.useEffect(() => { + // add onSnapToItem call when component is first mounted + onSnapToItem?.(defaultIndex || 0); + }, []); + const visibleRanges = useVisibleRanges({ total: dataLength, viewSize: size, diff --git a/src/hooks/useOnProgressChange.ts b/src/hooks/useOnProgressChange.ts index bbb4e378..9b3213a1 100644 --- a/src/hooks/useOnProgressChange.ts +++ b/src/hooks/useOnProgressChange.ts @@ -42,6 +42,9 @@ export function useOnProgressChange( if (value > 0) absoluteProgress = rawDataLength - absoluteProgress; + if (absoluteProgress > (rawDataLength - 0.5)) // threshold set as half of the size + absoluteProgress = 0; + if (onProgressChange) runOnJS(onProgressChange)(value, absoluteProgress); },