react-native-reanimated-carousel 5.0.0-beta.5 → 5.0.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +28 -6
- package/lib/commonjs/components/CarouselLayout.js +1 -1
- package/lib/commonjs/components/CarouselLayout.js.map +1 -1
- package/lib/commonjs/components/ItemLayout.js +1 -1
- package/lib/commonjs/components/ItemLayout.js.map +1 -1
- package/lib/commonjs/components/ItemRenderer.js +1 -1
- package/lib/commonjs/components/ItemRenderer.js.map +1 -1
- package/lib/commonjs/components/ScrollViewGesture.js +1 -1
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/module/components/CarouselLayout.js +1 -1
- package/lib/module/components/CarouselLayout.js.map +1 -1
- package/lib/module/components/ItemLayout.js +1 -1
- package/lib/module/components/ItemLayout.js.map +1 -1
- package/lib/module/components/ItemRenderer.js +1 -1
- package/lib/module/components/ItemRenderer.js.map +1 -1
- package/lib/module/components/ScrollViewGesture.js +1 -1
- package/lib/module/components/ScrollViewGesture.js.map +1 -1
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/lib/module/hooks/usePropsErrorBoundary.js +1 -1
- package/lib/module/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/module/hooks/useVisibleRanges.js +1 -1
- package/lib/module/hooks/useVisibleRanges.js.map +1 -1
- package/lib/typescript/components/CarouselLayout.d.ts +11 -0
- package/lib/typescript/components/CarouselLayout.d.ts.map +1 -1
- package/lib/typescript/components/ItemLayout.d.ts +5 -0
- package/lib/typescript/components/ItemLayout.d.ts.map +1 -1
- package/lib/typescript/components/ItemRenderer.d.ts +1 -0
- package/lib/typescript/components/ItemRenderer.d.ts.map +1 -1
- package/lib/typescript/components/ScrollViewGesture.d.ts.map +1 -1
- package/lib/typescript/hooks/usePropsErrorBoundary.d.ts.map +1 -1
- package/lib/typescript/hooks/useVisibleRanges.d.ts +6 -0
- package/lib/typescript/hooks/useVisibleRanges.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +1 -1
- package/package.json +13 -4
- package/src/components/Carousel.test.tsx +152 -0
- package/src/components/CarouselLayout.tsx +52 -8
- package/src/components/ItemLayout.tsx +31 -7
- package/src/components/ItemRenderer.tsx +11 -6
- package/src/components/ScrollViewGesture.test.tsx +155 -0
- package/src/components/ScrollViewGesture.tsx +8 -11
- package/src/components/issue-899-parallax-reverse-loop.test.tsx +131 -0
- package/src/hooks/useOnProgressChange.test.tsx +71 -8
- package/src/hooks/useOnProgressChange.ts +1 -1
- package/src/hooks/usePropsErrorBoundary.test.tsx +57 -0
- package/src/hooks/usePropsErrorBoundary.ts +4 -3
- package/src/hooks/useVisibleRanges.test.tsx +29 -0
- package/src/hooks/useVisibleRanges.tsx +80 -49
- package/src/types.ts +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
Object.defineProperty(exports,"__esModule",{value:true});exports.useVisibleRanges=useVisibleRanges;var _react=require("react");var _reactNativeReanimated=require("react-native-reanimated");var _worklet_5756233766785_init_data={code:"function useVisibleRangesTsx1(){const{total,viewSize,windowSize,translation,loop,cachedRanges,isArraysEqual}=this.__closure;if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;let newRanges;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));newRanges={negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}else{currentIndex=currentIndex<0?currentIndex%total+total:currentIndex;const negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];const positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}newRanges={negativeRange:negativeRange,positiveRange:positiveRange};}if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"useVisibleRangesTsx1\",\"total\",\"viewSize\",\"windowSize\",\"translation\",\"loop\",\"cachedRanges\",\"isArraysEqual\",\"__closure\",\"negativeRange\",\"positiveRange\",\"Number\",\"isFinite\",\"Math\",\"min\",\"positiveCount\",\"round\",\"negativeCount\",\"currentIndex\",\"value\",\"newRanges\",\"max\",\"current\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"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\",\"ignoreList\":[]}"};function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_windowSize=options.windowSize,loop=options.loop;var windowSize=typeof _windowSize==="number"&&Number.isFinite(_windowSize)&&_windowSize>0?_windowSize:total;var cachedRanges=(0,_react.useRef)(null);var ranges=(0,_reactNativeReanimated.useDerivedValue)(function useVisibleRangesTsx1Factory(_ref){var _worklet_5756233766785_init_data=_ref._worklet_5756233766785_init_data,total=_ref.total,viewSize=_ref.viewSize,windowSize=_ref.windowSize,translation=_ref.translation,loop=_ref.loop,cachedRanges=_ref.cachedRanges,isArraysEqual=_ref.isArraysEqual;var _e=[new global.Error(),-8,-27];var useVisibleRangesTsx1=function useVisibleRangesTsx1(){if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;var newRanges;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));newRanges={negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}else{currentIndex=currentIndex<0?currentIndex%total+total:currentIndex;var negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];var positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}newRanges={negativeRange:negativeRange,positiveRange:positiveRange};}if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;};useVisibleRangesTsx1.__closure={total:total,viewSize:viewSize,windowSize:windowSize,translation:translation,loop:loop,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual};useVisibleRangesTsx1.__workletHash=5756233766785;useVisibleRangesTsx1.__pluginVersion="0.5.2";useVisibleRangesTsx1.__initData=_worklet_5756233766785_init_data;useVisibleRangesTsx1.__stackDetails=_e;return useVisibleRangesTsx1;}({_worklet_5756233766785_init_data:_worklet_5756233766785_init_data,total:total,viewSize:viewSize,windowSize:windowSize,translation:translation,loop:loop,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual}),[loop,total,windowSize,translation,viewSize]);return ranges;}var _worklet_14683962274529_init_data={code:"function isArraysEqual_useVisibleRangesTsx2(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"isArraysEqual_useVisibleRangesTsx2\",\"a\",\"b\",\"length\",\"every\",\"value\",\"index\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAwGA,SAAAA,kCAA0DA,CAAAC,CAAA,CAAAC,CAAA,EAExD,GAAID,CAAC,CAACE,MAAM,GAAKD,CAAC,CAACC,MAAM,CAAE,MAAO,MAAK,CAEvC,MAAO,CAAAF,CAAC,CAACG,KAAK,CAAC,SAACC,KAAK,CAAEC,KAAK,QAAK,CAAAD,KAAK,GAAKH,CAAC,CAACI,KAAK,CAAC,GAAC,CACtD\",\"ignoreList\":[]}"};var isArraysEqual=function isArraysEqual_useVisibleRangesTsx2Factory(_ref2){var _worklet_14683962274529_init_data=_ref2._worklet_14683962274529_init_data;var _e=[new global.Error(),1,-27];var isArraysEqual=function isArraysEqual(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});};isArraysEqual.__closure={};isArraysEqual.__workletHash=14683962274529;isArraysEqual.__pluginVersion="0.5.2";isArraysEqual.__initData=_worklet_14683962274529_init_data;isArraysEqual.__stackDetails=_e;return isArraysEqual;}({_worklet_14683962274529_init_data:_worklet_14683962274529_init_data});
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.computeVisibleRanges=void 0;exports.useVisibleRanges=useVisibleRanges;var _react=require("react");var _reactNativeReanimated=require("react-native-reanimated");var _worklet_857738204961_init_data={code:"function normalizeWindowSize_useVisibleRangesTsx1(total,windowSize){return typeof windowSize===\"number\"&&Number.isFinite(windowSize)&&windowSize>0?windowSize:total;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"normalizeWindowSize_useVisibleRangesTsx1\",\"total\",\"windowSize\",\"Number\",\"isFinite\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAaA,SAAAA,wCAAiEA,CAAAC,KAAA,CAAAC,UAAA,EAG/D,MAAO,OAAO,CAAAA,UAAU,GAAK,QAAQ,EAAIC,MAAM,CAACC,QAAQ,CAACF,UAAU,CAAC,EAAIA,UAAU,CAAG,CAAC,CAClFA,UAAU,CACVD,KAAK,CACX\",\"ignoreList\":[]}"};var normalizeWindowSize=function normalizeWindowSize_useVisibleRangesTsx1Factory(_ref){var _worklet_857738204961_init_data=_ref._worklet_857738204961_init_data;var _e=[new global.Error(),1,-27];var normalizeWindowSize=function normalizeWindowSize(total,windowSize){return typeof windowSize==="number"&&Number.isFinite(windowSize)&&windowSize>0?windowSize:total;};normalizeWindowSize.__closure={};normalizeWindowSize.__workletHash=857738204961;normalizeWindowSize.__pluginVersion="0.5.2";normalizeWindowSize.__initData=_worklet_857738204961_init_data;normalizeWindowSize.__stackDetails=_e;return normalizeWindowSize;}({_worklet_857738204961_init_data:_worklet_857738204961_init_data});var _worklet_10467342159726_init_data={code:"function normalizeLoopIndex_useVisibleRangesTsx2(currentIndex,total){return currentIndex<0?currentIndex%total+total:currentIndex;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"normalizeLoopIndex_useVisibleRangesTsx2\",\"currentIndex\",\"total\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAqBA,SAAAA,uCAA+DA,CAAAC,YAAE,CAAAC,KAAA,EAG/D,MAAO,CAAAD,YAAY,CAAG,CAAC,CAAIA,YAAY,CAAGC,KAAK,CAAIA,KAAK,CAAGD,YAAY,CACzE\",\"ignoreList\":[]}"};var normalizeLoopIndex=function normalizeLoopIndex_useVisibleRangesTsx2Factory(_ref2){var _worklet_10467342159726_init_data=_ref2._worklet_10467342159726_init_data;var _e=[new global.Error(),1,-27];var normalizeLoopIndex=function normalizeLoopIndex(currentIndex,total){return currentIndex<0?currentIndex%total+total:currentIndex;};normalizeLoopIndex.__closure={};normalizeLoopIndex.__workletHash=10467342159726;normalizeLoopIndex.__pluginVersion="0.5.2";normalizeLoopIndex.__initData=_worklet_10467342159726_init_data;normalizeLoopIndex.__stackDetails=_e;return normalizeLoopIndex;}({_worklet_10467342159726_init_data:_worklet_10467342159726_init_data});var _worklet_12590357434072_init_data={code:"function computeVisibleRanges_useVisibleRangesTsx3(params){const{normalizeWindowSize,normalizeLoopIndex}=this.__closure;const{total=0,loop:loop}=params;const windowSize=normalizeWindowSize(total,params.windowSize);if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(loop&&windowSize>=total){return{negativeRange:[0,0],positiveRange:[0,total-1]};}const positiveCount=Math.round(windowSize/2);const negativeCount=windowSize-positiveCount;let currentIndex=params.currentIndex;if(!Number.isFinite(currentIndex))currentIndex=0;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));return{negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}currentIndex=normalizeLoopIndex(currentIndex,total);const negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];const positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"computeVisibleRanges_useVisibleRangesTsx3\",\"params\",\"normalizeWindowSize\",\"normalizeLoopIndex\",\"__closure\",\"total\",\"loop\",\"windowSize\",\"negativeRange\",\"positiveRange\",\"positiveCount\",\"Math\",\"round\",\"negativeCount\",\"currentIndex\",\"Number\",\"isFinite\",\"max\",\"min\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AA2BO,SAAAA,yCAKWA,CAAAC,MAAA,QAAAC,mBAAA,CAAAC,kBAAA,OAAAC,SAAA,CAGhB,KAAM,CAAEC,KAAK,CAAG,CAAC,CAAEC,IAAA,CAAAA,IAAK,CAAC,CAAGL,MAAM,CAClC,KAAM,CAAAM,UAAU,CAAGL,mBAAmB,CAACG,KAAK,CAAEJ,MAAM,CAACM,UAAU,CAAC,CAEhE,GAAIF,KAAK,EAAI,CAAC,CAAE,CACd,MAAO,CACLG,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACrBC,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACvB,CAAC,CACH,CAEA,GAAIH,IAAI,EAAIC,UAAU,EAAIF,KAAK,CAAE,CAC/B,MAAO,CACLG,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAC,CACrBC,aAAa,CAAE,CAAC,CAAC,CAAEJ,KAAK,CAAG,CAAC,CAC9B,CAAC,CACH,CAEA,KAAM,CAAAK,aAAa,CAAGC,IAAI,CAACC,KAAK,CAACL,UAAU,CAAG,CAAC,CAAC,CAChD,KAAM,CAAAM,aAAa,CAAGN,UAAU,CAAGG,aAAa,CAEhD,GAAI,CAAAI,YAAY,CAAGb,MAAM,CAACa,YAAY,CACtC,GAAI,CAACC,MAAM,CAACC,QAAQ,CAACF,YAAY,CAAC,CAAEA,YAAY,CAAG,CAAC,CAEpD,GAAI,CAACR,IAAI,CAAE,CACTQ,YAAY,CAAGH,IAAI,CAACM,GAAG,CAAC,CAAC,CAAEN,IAAI,CAACO,GAAG,CAACb,KAAK,CAAG,CAAC,CAAES,YAAY,CAAC,CAAC,CAC7D,MAAO,CACLN,aAAa,CAAE,CAACG,IAAI,CAACM,GAAG,CAAC,CAAC,CAAEH,YAAY,EAAIP,UAAU,CAAG,CAAC,CAAC,CAAC,CAAEO,YAAY,CAAC,CAC3EL,aAAa,CAAE,CAACK,YAAY,CAAEH,IAAI,CAACO,GAAG,CAACb,KAAK,CAAG,CAAC,CAAES,YAAY,EAAIP,UAAU,CAAG,CAAC,CAAC,CAAC,CACpF,CAAC,CACH,CAEAO,YAAY,CAAGX,kBAAkB,CAACW,YAAY,CAAET,KAAK,CAAC,CAEtD,KAAM,CAAAG,aAAoB,CAAG,CAC3B,CAACM,YAAY,CAAGD,aAAa,CAAGR,KAAK,EAAIA,KAAK,CAC9C,CAACS,YAAY,CAAG,CAAC,CAAGT,KAAK,EAAIA,KAAK,CACnC,CAED,KAAM,CAAAI,aAAoB,CAAG,CAC3B,CAACK,YAAY,CAAGT,KAAK,EAAIA,KAAK,CAC9B,CAACS,YAAY,CAAGJ,aAAa,CAAGL,KAAK,EAAIA,KAAK,CAC/C,CAED,GAAIG,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,EAAIG,aAAa,CAAC,CAAC,CAAC,CAAGA,aAAa,CAAC,CAAC,CAAC,CAAE,CACnEA,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,CAAG,CAAC,CAC5BI,aAAa,CAAC,CAAC,CAAC,CAAG,CAAC,CACtB,CACA,GAAIA,aAAa,CAAC,CAAC,CAAC,CAAGA,aAAa,CAAC,CAAC,CAAC,CAAE,CACvCD,aAAa,CAAC,CAAC,CAAC,CAAGH,KAAK,CAAG,CAAC,CAC5BI,aAAa,CAAC,CAAC,CAAC,CAAG,CAAC,CACtB,CAEA,MAAO,CAAED,aAAa,CAAbA,aAAa,CAAEC,aAAA,CAAAA,aAAc,CAAC,CACzC\",\"ignoreList\":[]}"};var computeVisibleRanges=exports.computeVisibleRanges=function computeVisibleRanges_useVisibleRangesTsx3Factory(_ref3){var _worklet_12590357434072_init_data=_ref3._worklet_12590357434072_init_data,normalizeWindowSize=_ref3.normalizeWindowSize,normalizeLoopIndex=_ref3.normalizeLoopIndex;var _e=[new global.Error(),-3,-27];var computeVisibleRanges=function computeVisibleRanges(params){var _params$total=params.total,total=_params$total===void 0?0:_params$total,loop=params.loop;var windowSize=normalizeWindowSize(total,params.windowSize);if(total<=0){return{negativeRange:[0,0],positiveRange:[0,-1]};}if(loop&&windowSize>=total){return{negativeRange:[0,0],positiveRange:[0,total-1]};}var positiveCount=Math.round(windowSize/2);var negativeCount=windowSize-positiveCount;var currentIndex=params.currentIndex;if(!Number.isFinite(currentIndex))currentIndex=0;if(!loop){currentIndex=Math.max(0,Math.min(total-1,currentIndex));return{negativeRange:[Math.max(0,currentIndex-(windowSize-1)),currentIndex],positiveRange:[currentIndex,Math.min(total-1,currentIndex+(windowSize-1))]};}currentIndex=normalizeLoopIndex(currentIndex,total);var negativeRange=[(currentIndex-negativeCount+total)%total,(currentIndex-1+total)%total];var positiveRange=[(currentIndex+total)%total,(currentIndex+positiveCount+total)%total];if(negativeRange[0]<total&&negativeRange[0]>negativeRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}if(positiveRange[0]>positiveRange[1]){negativeRange[1]=total-1;positiveRange[0]=0;}return{negativeRange:negativeRange,positiveRange:positiveRange};};computeVisibleRanges.__closure={normalizeWindowSize:normalizeWindowSize,normalizeLoopIndex:normalizeLoopIndex};computeVisibleRanges.__workletHash=12590357434072;computeVisibleRanges.__pluginVersion="0.5.2";computeVisibleRanges.__initData=_worklet_12590357434072_init_data;computeVisibleRanges.__stackDetails=_e;return computeVisibleRanges;}({_worklet_12590357434072_init_data:_worklet_12590357434072_init_data,normalizeWindowSize:normalizeWindowSize,normalizeLoopIndex:normalizeLoopIndex});var _worklet_6485309998197_init_data={code:"function useVisibleRangesTsx4(){const{total,computeVisibleRanges,windowSize,loop,viewSize,translation,cachedRanges,isArraysEqual}=this.__closure;if(total<=0){return computeVisibleRanges({total:total,currentIndex:0,windowSize:windowSize,loop:loop});}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}let currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;const newRanges=computeVisibleRanges({total:total,windowSize:windowSize,currentIndex:currentIndex,loop:loop});if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"useVisibleRangesTsx4\",\"total\",\"computeVisibleRanges\",\"windowSize\",\"loop\",\"viewSize\",\"translation\",\"cachedRanges\",\"isArraysEqual\",\"__closure\",\"currentIndex\",\"Number\",\"isFinite\",\"negativeRange\",\"positiveRange\",\"Math\",\"min\",\"round\",\"value\",\"newRanges\",\"current\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAsGiC,SAAAA,oBAAMA,CAAA,QAAAC,KAAA,CAAAC,oBAAA,CAAAC,UAAA,CAAAC,IAAA,CAAAC,QAAA,CAAAC,WAAA,CAAAC,YAAA,CAAAC,aAAA,OAAAC,SAAA,CACnC,GAAIR,KAAK,EAAI,CAAC,CAAE,CACd,MAAO,CAAAC,oBAAoB,CAAC,CAAED,KAAK,CAALA,KAAK,CAAES,YAAY,CAAE,CAAC,CAAEP,UAAU,CAAVA,UAAU,CAAEC,IAAA,CAAAA,IAAK,CAAC,CAAC,CAC3E,CAGA,GAAI,CAACO,MAAM,CAACC,QAAQ,CAACP,QAAQ,CAAC,EAAIA,QAAQ,EAAI,CAAC,CAAE,CAC/C,MAAO,CACLQ,aAAa,CAAE,CAAC,CAAC,CAAE,CAAC,CAAU,CAC9BC,aAAa,CAAE,CAAC,CAAC,CAAEC,IAAI,CAACC,GAAG,CAACf,KAAK,CAAG,CAAC,CAAEE,UAAU,CAAG,CAAC,CAAC,CACxD,CAAC,CACH,CAEA,GAAI,CAAAO,YAAY,CAAGK,IAAI,CAACE,KAAK,CAAC,CAACX,WAAW,CAACY,KAAK,CAAGb,QAAQ,CAAC,CAC5D,GAAI,CAACM,MAAM,CAACC,QAAQ,CAACF,YAAY,CAAC,CAAEA,YAAY,CAAG,CAAC,CAEpD,KAAM,CAAAS,SAAS,CAAGjB,oBAAoB,CAAC,CAAED,KAAK,CAALA,KAAK,CAAEE,UAAU,CAAVA,UAAU,CAAEO,YAAY,CAAZA,YAAY,CAAEN,IAAA,CAAAA,IAAK,CAAC,CAAC,CAEjF,GACEG,YAAY,CAACa,OAAO,EACpBZ,aAAa,CAACD,YAAY,CAACa,OAAO,CAACP,aAAa,CAAEM,SAAS,CAACN,aAAa,CAAC,EAC1EL,aAAa,CAACD,YAAY,CAACa,OAAO,CAACN,aAAa,CAAEK,SAAS,CAACL,aAAa,CAAC,CAC1E,CACA,MAAO,CAAAP,YAAY,CAACa,OAAO,CAC7B,CAEAb,YAAY,CAACa,OAAO,CAAGD,SAAS,CAChC,MAAO,CAAAA,SAAS,CAClB\",\"ignoreList\":[]}"};function useVisibleRanges(options){var _options$total=options.total,total=_options$total===void 0?0:_options$total,viewSize=options.viewSize,translation=options.translation,_windowSize=options.windowSize,loop=options.loop;var windowSize=normalizeWindowSize(total,_windowSize);var cachedRanges=(0,_react.useRef)(null);var ranges=(0,_reactNativeReanimated.useDerivedValue)(function useVisibleRangesTsx4Factory(_ref4){var _worklet_6485309998197_init_data=_ref4._worklet_6485309998197_init_data,total=_ref4.total,computeVisibleRanges=_ref4.computeVisibleRanges,windowSize=_ref4.windowSize,loop=_ref4.loop,viewSize=_ref4.viewSize,translation=_ref4.translation,cachedRanges=_ref4.cachedRanges,isArraysEqual=_ref4.isArraysEqual;var _e=[new global.Error(),-9,-27];var useVisibleRangesTsx4=function useVisibleRangesTsx4(){if(total<=0){return computeVisibleRanges({total:total,currentIndex:0,windowSize:windowSize,loop:loop});}if(!Number.isFinite(viewSize)||viewSize<=0){return{negativeRange:[0,0],positiveRange:[0,Math.min(total-1,windowSize-1)]};}var currentIndex=Math.round(-translation.value/viewSize);if(!Number.isFinite(currentIndex))currentIndex=0;var newRanges=computeVisibleRanges({total:total,windowSize:windowSize,currentIndex:currentIndex,loop:loop});if(cachedRanges.current&&isArraysEqual(cachedRanges.current.negativeRange,newRanges.negativeRange)&&isArraysEqual(cachedRanges.current.positiveRange,newRanges.positiveRange)){return cachedRanges.current;}cachedRanges.current=newRanges;return newRanges;};useVisibleRangesTsx4.__closure={total:total,computeVisibleRanges:computeVisibleRanges,windowSize:windowSize,loop:loop,viewSize:viewSize,translation:translation,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual};useVisibleRangesTsx4.__workletHash=6485309998197;useVisibleRangesTsx4.__pluginVersion="0.5.2";useVisibleRangesTsx4.__initData=_worklet_6485309998197_init_data;useVisibleRangesTsx4.__stackDetails=_e;return useVisibleRangesTsx4;}({_worklet_6485309998197_init_data:_worklet_6485309998197_init_data,total:total,computeVisibleRanges:computeVisibleRanges,windowSize:windowSize,loop:loop,viewSize:viewSize,translation:translation,cachedRanges:cachedRanges,isArraysEqual:isArraysEqual}),[loop,total,windowSize,translation,viewSize]);return ranges;}var _worklet_1694653230246_init_data={code:"function isArraysEqual_useVisibleRangesTsx5(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx",sourceMap:"{\"version\":3,\"names\":[\"isArraysEqual_useVisibleRangesTsx5\",\"a\",\"b\",\"length\",\"every\",\"value\",\"index\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useVisibleRanges.tsx\"],\"mappings\":\"AAuIA,SAAAA,kCAA0DA,CAAAC,CAAA,CAAAC,CAAA,EAExD,GAAID,CAAC,CAACE,MAAM,GAAKD,CAAC,CAACC,MAAM,CAAE,MAAO,MAAK,CAEvC,MAAO,CAAAF,CAAC,CAACG,KAAK,CAAC,SAACC,KAAK,CAAEC,KAAK,QAAK,CAAAD,KAAK,GAAKH,CAAC,CAACI,KAAK,CAAC,GAAC,CACtD\",\"ignoreList\":[]}"};var isArraysEqual=function isArraysEqual_useVisibleRangesTsx5Factory(_ref5){var _worklet_1694653230246_init_data=_ref5._worklet_1694653230246_init_data;var _e=[new global.Error(),1,-27];var isArraysEqual=function isArraysEqual(a,b){if(a.length!==b.length)return false;return a.every(function(value,index){return value===b[index];});};isArraysEqual.__closure={};isArraysEqual.__workletHash=1694653230246;isArraysEqual.__pluginVersion="0.5.2";isArraysEqual.__initData=_worklet_1694653230246_init_data;isArraysEqual.__stackDetails=_e;return isArraysEqual;}({_worklet_1694653230246_init_data:_worklet_1694653230246_init_data});
|
|
2
2
|
//# sourceMappingURL=useVisibleRanges.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_reactNativeReanimated","
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNativeReanimated","_worklet_857738204961_init_data","code","location","sourceMap","normalizeWindowSize","normalizeWindowSize_useVisibleRangesTsx1Factory","_ref","_e","global","Error","total","windowSize","Number","isFinite","__closure","__workletHash","__pluginVersion","__initData","__stackDetails","_worklet_10467342159726_init_data","normalizeLoopIndex","normalizeLoopIndex_useVisibleRangesTsx2Factory","_ref2","currentIndex","_worklet_12590357434072_init_data","computeVisibleRanges","exports","computeVisibleRanges_useVisibleRangesTsx3Factory","_ref3","params","_params$total","loop","negativeRange","positiveRange","positiveCount","Math","round","negativeCount","max","min","_worklet_6485309998197_init_data","useVisibleRanges","options","_options$total","viewSize","translation","_windowSize","cachedRanges","useRef","ranges","useDerivedValue","useVisibleRangesTsx4Factory","_ref4","isArraysEqual","useVisibleRangesTsx4","value","newRanges","current","_worklet_1694653230246_init_data","isArraysEqual_useVisibleRangesTsx5Factory","_ref5","a","b","length","every","index"],"sourceRoot":"../../../src","sources":["hooks/useVisibleRanges.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,5 +2,16 @@ import React from "react";
|
|
|
2
2
|
import { type ViewStyle } from "react-native";
|
|
3
3
|
import { ICarouselInstance } from "../types";
|
|
4
4
|
export type TAnimationStyle = (value: number) => ViewStyle;
|
|
5
|
+
export declare function resolveCarouselLayoutStyle(params: {
|
|
6
|
+
flattenedStyle: Partial<ViewStyle>;
|
|
7
|
+
vertical: boolean;
|
|
8
|
+
measuredSize: number;
|
|
9
|
+
sizeExplicit: boolean;
|
|
10
|
+
legacyWidth?: number;
|
|
11
|
+
legacyHeight?: number;
|
|
12
|
+
}): {
|
|
13
|
+
width: number | import("react-native").Animated.AnimatedNode | `${number}%` | "auto";
|
|
14
|
+
height: number | import("react-native").Animated.AnimatedNode | `${number}%` | "auto";
|
|
15
|
+
};
|
|
5
16
|
export declare const CarouselLayout: React.ForwardRefExoticComponent<React.RefAttributes<ICarouselInstance>>;
|
|
6
17
|
//# sourceMappingURL=CarouselLayout.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CarouselLayout.d.ts","sourceRoot":"","sources":["../../../src/components/CarouselLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAE3D,eAAO,MAAM,cAAc,yEA+
|
|
1
|
+
{"version":3,"file":"CarouselLayout.d.ts","sourceRoot":"","sources":["../../../src/components/CarouselLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAc,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAS1D,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAK7C,MAAM,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;AAE3D,wBAAgB,0BAA0B,CAAC,MAAM,EAAE;IACjD,cAAc,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IACnC,QAAQ,EAAE,OAAO,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;;;EAmBA;AAED,eAAO,MAAM,cAAc,yEA+MzB,CAAC"}
|
|
@@ -3,6 +3,11 @@ import type { SharedValue } from "react-native-reanimated";
|
|
|
3
3
|
import type { IVisibleRanges } from "../hooks/useVisibleRanges";
|
|
4
4
|
import type { TCarouselProps } from "../types";
|
|
5
5
|
export type TAnimationStyle = NonNullable<TCarouselProps["customAnimation"]>;
|
|
6
|
+
export declare function resolveItemMainAxisSize(params: {
|
|
7
|
+
explicitSize?: number;
|
|
8
|
+
effectivePageSize?: number;
|
|
9
|
+
measuredSize: number | null;
|
|
10
|
+
}): number | "100%";
|
|
6
11
|
export declare const ItemLayout: React.FC<{
|
|
7
12
|
index: number;
|
|
8
13
|
handlerOffset: SharedValue<number>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemLayout.d.ts","sourceRoot":"","sources":["../../../src/components/ItemLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE7E,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE;QACd,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACrC,KAAK,KAAK,CAAC,YAAY,CAAC;CAC1B,
|
|
1
|
+
{"version":3,"file":"ItemLayout.d.ts","sourceRoot":"","sources":["../../../src/components/ItemLayout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAGhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG/C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC,cAAc,CAAC,iBAAiB,CAAC,CAAC,CAAC;AAE7E,wBAAgB,uBAAuB,CAAC,MAAM,EAAE;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,mBAQA;AAED,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,EAAE,CAAC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,aAAa,EAAE,cAAc,CAAC;IAC9B,cAAc,EAAE,eAAe,CAAC;IAChC,QAAQ,EAAE,CAAC,GAAG,EAAE;QACd,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;KACrC,KAAK,KAAK,CAAC,YAAY,CAAC;CAC1B,CAkKA,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/ItemRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAC/D;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"ItemRenderer.d.ts","sourceRoot":"","sources":["../../../src/components/ItemRenderer.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC;AAChC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAI3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAKpD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnD,UAAU,KAAK;IACb,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC7B,aAAa,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACpC,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,SAAS,CAAC;CAC/D;AAED,eAAO,MAAM,YAAY,EAAE,EAAE,CAAC,KAAK,CAmFlC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ScrollViewGesture.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollViewGesture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"ScrollViewGesture.d.ts","sourceRoot":"","sources":["../../../src/components/ScrollViewGesture.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,KAAsB,MAAM,OAAO,CAAC;AAC3C,OAAO,KAAK,EAAE,iBAAiB,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAa5E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAU3D,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,CAAC;IAC1C,aAAa,CAAC,EAAE,MAAM,IAAI,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AA2eD,eAAO,MAAM,iBAAiB,oCAAqB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePropsErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePropsErrorBoundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"usePropsErrorBoundary.d.ts","sourceRoot":"","sources":["../../../src/hooks/usePropsErrorBoundary.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE/C,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,cAAc,GAAG;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,QAmFnF"}
|
|
@@ -5,6 +5,12 @@ export interface VisibleRanges {
|
|
|
5
5
|
positiveRange: Range;
|
|
6
6
|
}
|
|
7
7
|
export type IVisibleRanges = SharedValue<VisibleRanges>;
|
|
8
|
+
export declare function computeVisibleRanges(params: {
|
|
9
|
+
total: number;
|
|
10
|
+
windowSize?: number;
|
|
11
|
+
currentIndex: number;
|
|
12
|
+
loop?: boolean;
|
|
13
|
+
}): VisibleRanges;
|
|
8
14
|
export declare function useVisibleRanges(options: {
|
|
9
15
|
total: number;
|
|
10
16
|
viewSize: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useVisibleRanges.d.ts","sourceRoot":"","sources":["../../../src/hooks/useVisibleRanges.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAG3D,KAAK,KAAK,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAE9B,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,KAAK,CAAC;IACrB,aAAa,EAAE,KAAK,CAAC;CACtB;AAED,MAAM,MAAM,cAAc,GAAG,WAAW,CAAC,aAAa,CAAC,CAAC;AAgBxD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,aAAa,CAwDhB;AAED,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,cAAc,CAqCjB"}
|
|
@@ -225,7 +225,7 @@ export type TCarouselProps<T = any> = {
|
|
|
225
225
|
customConfig?: CustomConfig | (() => CustomConfig);
|
|
226
226
|
/**
|
|
227
227
|
* Custom animations.
|
|
228
|
-
* Must
|
|
228
|
+
* Must be worklet-compatible. See https://docs.swmansion.com/react-native-reanimated/docs/guides/worklets/
|
|
229
229
|
* @test_coverage ✅ tested in Carousel.test.tsx > should apply the custom animation
|
|
230
230
|
*/
|
|
231
231
|
customAnimation?: (value: number, index: number) => ViewStyle;
|
package/package.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-reanimated-carousel",
|
|
3
|
-
"version": "5.0.0-beta.
|
|
3
|
+
"version": "5.0.0-beta.7",
|
|
4
4
|
"packageManager": "yarn@4.0.2",
|
|
5
|
-
"description": "
|
|
5
|
+
"description": "A performant, customizable carousel for React Native powered by Reanimated.",
|
|
6
6
|
"author": "Doho <zhaodonghao586@outlook.com> (https://github.com/dohooo)",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"homepage": "https://rn-carousel.dev/",
|
|
@@ -45,6 +45,8 @@
|
|
|
45
45
|
"precommit": "yarn lint:fix && yarn format:fix",
|
|
46
46
|
"e2e": "APP_ID=${APP_ID:-com.react-native-reanimated-carousel.example} maestro test example/app/app/demos/",
|
|
47
47
|
"e2e:comprehensive": "APP_ID=${APP_ID:-com.react-native-reanimated-carousel.example} maestro test e2e/",
|
|
48
|
+
"compat:expo": "bash scripts/test-packed-expo-consumer.sh",
|
|
49
|
+
"web:smoke": "playwright test --config=playwright.config.ts",
|
|
48
50
|
"changeset:check": "node scripts/check-changeset-style.mjs"
|
|
49
51
|
},
|
|
50
52
|
"resolutions": {
|
|
@@ -57,7 +59,7 @@
|
|
|
57
59
|
"react": ">=18.0.0",
|
|
58
60
|
"react-native": ">=0.80.0",
|
|
59
61
|
"react-native-gesture-handler": ">=2.9.0",
|
|
60
|
-
"react-native-reanimated": ">=4.
|
|
62
|
+
"react-native-reanimated": ">=4.1.0",
|
|
61
63
|
"react-native-worklets": ">=0.5.0"
|
|
62
64
|
},
|
|
63
65
|
"devDependencies": {
|
|
@@ -72,11 +74,13 @@
|
|
|
72
74
|
"@changesets/changelog-github": "^0.5.0",
|
|
73
75
|
"@changesets/cli": "latest",
|
|
74
76
|
"@commitlint/config-conventional": "^11.0.0",
|
|
77
|
+
"@playwright/test": "1.61.1",
|
|
75
78
|
"@react-native/babel-preset": "0.81.1",
|
|
76
79
|
"@testing-library/jest-native": "^4.0.4",
|
|
77
80
|
"@testing-library/react-hooks": "^8.0.0",
|
|
78
81
|
"@testing-library/react-native": "^13.3.3",
|
|
79
82
|
"@types/jest": "^29.2.5",
|
|
83
|
+
"@types/node": "22.20.1",
|
|
80
84
|
"@types/react": "^19.1.10",
|
|
81
85
|
"@types/react-native": "^0.66.16",
|
|
82
86
|
"@types/react-test-renderer": "^19.1.0",
|
|
@@ -139,7 +143,12 @@
|
|
|
139
143
|
"configFile": "./babel.config.js"
|
|
140
144
|
}
|
|
141
145
|
],
|
|
142
|
-
|
|
146
|
+
[
|
|
147
|
+
"typescript",
|
|
148
|
+
{
|
|
149
|
+
"project": "tsconfig.build.json"
|
|
150
|
+
}
|
|
151
|
+
]
|
|
143
152
|
],
|
|
144
153
|
"exclude": "**/*.test.{ts,tsx}"
|
|
145
154
|
},
|
|
@@ -10,6 +10,8 @@ import { act, render, waitFor } from "@testing-library/react-native";
|
|
|
10
10
|
import { fireGestureHandler, getByGestureTestId } from "react-native-gesture-handler/jest-utils";
|
|
11
11
|
|
|
12
12
|
import Carousel from "./Carousel";
|
|
13
|
+
import { resolveCarouselLayoutStyle } from "./CarouselLayout";
|
|
14
|
+
import { resolveItemMainAxisSize } from "./ItemLayout";
|
|
13
15
|
|
|
14
16
|
import type { TCarouselProps } from "../types";
|
|
15
17
|
|
|
@@ -1002,6 +1004,156 @@ describe("Test the real swipe behavior of Carousel to ensure it's working as exp
|
|
|
1002
1004
|
});
|
|
1003
1005
|
|
|
1004
1006
|
describe("Carousel sizing and measurement", () => {
|
|
1007
|
+
it.each([
|
|
1008
|
+
{
|
|
1009
|
+
name: "horizontal",
|
|
1010
|
+
vertical: false,
|
|
1011
|
+
flattenedStyle: { height: slideHeight },
|
|
1012
|
+
expected: { width: "100%", height: slideHeight },
|
|
1013
|
+
},
|
|
1014
|
+
{
|
|
1015
|
+
name: "vertical",
|
|
1016
|
+
vertical: true,
|
|
1017
|
+
flattenedStyle: { width: slideWidth },
|
|
1018
|
+
expected: { width: slideWidth, height: "100%" },
|
|
1019
|
+
},
|
|
1020
|
+
])("issue #890: keeps an auto-sized $name main axis responsive", (scenario) => {
|
|
1021
|
+
expect(
|
|
1022
|
+
resolveCarouselLayoutStyle({
|
|
1023
|
+
flattenedStyle: scenario.flattenedStyle,
|
|
1024
|
+
vertical: scenario.vertical,
|
|
1025
|
+
measuredSize: 350,
|
|
1026
|
+
sizeExplicit: false,
|
|
1027
|
+
})
|
|
1028
|
+
).toEqual(scenario.expected);
|
|
1029
|
+
});
|
|
1030
|
+
|
|
1031
|
+
it.each([
|
|
1032
|
+
{
|
|
1033
|
+
name: "legacy width",
|
|
1034
|
+
vertical: false,
|
|
1035
|
+
legacyWidth: 350,
|
|
1036
|
+
legacyHeight: undefined,
|
|
1037
|
+
expected: { width: 350, height: "100%" },
|
|
1038
|
+
},
|
|
1039
|
+
{
|
|
1040
|
+
name: "legacy height",
|
|
1041
|
+
vertical: true,
|
|
1042
|
+
legacyWidth: undefined,
|
|
1043
|
+
legacyHeight: 350,
|
|
1044
|
+
expected: { width: "100%", height: 350 },
|
|
1045
|
+
},
|
|
1046
|
+
])("issue #890: preserves $name behavior", (scenario) => {
|
|
1047
|
+
expect(
|
|
1048
|
+
resolveCarouselLayoutStyle({
|
|
1049
|
+
flattenedStyle: {},
|
|
1050
|
+
vertical: scenario.vertical,
|
|
1051
|
+
measuredSize: 350,
|
|
1052
|
+
sizeExplicit: false,
|
|
1053
|
+
legacyWidth: scenario.legacyWidth,
|
|
1054
|
+
legacyHeight: scenario.legacyHeight,
|
|
1055
|
+
})
|
|
1056
|
+
).toEqual(scenario.expected);
|
|
1057
|
+
});
|
|
1058
|
+
|
|
1059
|
+
it("issue #890: preserves explicit item size behavior", () => {
|
|
1060
|
+
expect(
|
|
1061
|
+
resolveCarouselLayoutStyle({
|
|
1062
|
+
flattenedStyle: { height: slideHeight },
|
|
1063
|
+
vertical: false,
|
|
1064
|
+
measuredSize: 350,
|
|
1065
|
+
sizeExplicit: true,
|
|
1066
|
+
})
|
|
1067
|
+
).toEqual({ width: 350, height: slideHeight });
|
|
1068
|
+
});
|
|
1069
|
+
|
|
1070
|
+
it("issue #890: prefers the latest page size over a stale item measurement", () => {
|
|
1071
|
+
expect(
|
|
1072
|
+
resolveItemMainAxisSize({
|
|
1073
|
+
effectivePageSize: 516,
|
|
1074
|
+
measuredSize: 316,
|
|
1075
|
+
})
|
|
1076
|
+
).toBe(516);
|
|
1077
|
+
});
|
|
1078
|
+
|
|
1079
|
+
it("issue #890: preserves explicit and measured item-size fallbacks", () => {
|
|
1080
|
+
expect(
|
|
1081
|
+
resolveItemMainAxisSize({
|
|
1082
|
+
explicitSize: 280,
|
|
1083
|
+
effectivePageSize: 516,
|
|
1084
|
+
measuredSize: 316,
|
|
1085
|
+
})
|
|
1086
|
+
).toBe(280);
|
|
1087
|
+
expect(resolveItemMainAxisSize({ measuredSize: 316 })).toBe(316);
|
|
1088
|
+
});
|
|
1089
|
+
|
|
1090
|
+
it("issue #890: keeps the active page aligned when an auto-sized layout changes", async () => {
|
|
1091
|
+
const observedOffset = { current: 0 };
|
|
1092
|
+
let nextSlide: ((opts?: { animated?: boolean }) => void) | undefined;
|
|
1093
|
+
|
|
1094
|
+
const Wrapper: FC<Partial<TCarouselProps<string>>> = React.forwardRef((customProps, ref) => {
|
|
1095
|
+
const progressAnimVal = useSharedValue(0);
|
|
1096
|
+
const scrollOffsetValue = useSharedValue(0);
|
|
1097
|
+
const defaultRenderItem = ({
|
|
1098
|
+
item,
|
|
1099
|
+
index,
|
|
1100
|
+
}: {
|
|
1101
|
+
item: string;
|
|
1102
|
+
index: number;
|
|
1103
|
+
}) => (
|
|
1104
|
+
<Animated.View testID={`carousel-item-${index}`} style={{ flex: 1 }}>
|
|
1105
|
+
{item}
|
|
1106
|
+
</Animated.View>
|
|
1107
|
+
);
|
|
1108
|
+
const { renderItem = defaultRenderItem, ...defaultProps } = createDefaultProps(
|
|
1109
|
+
progressAnimVal,
|
|
1110
|
+
customProps
|
|
1111
|
+
);
|
|
1112
|
+
|
|
1113
|
+
useDerivedValue(() => {
|
|
1114
|
+
observedOffset.current = scrollOffsetValue.value;
|
|
1115
|
+
}, [scrollOffsetValue]);
|
|
1116
|
+
|
|
1117
|
+
return (
|
|
1118
|
+
<Carousel
|
|
1119
|
+
{...defaultProps}
|
|
1120
|
+
ref={ref}
|
|
1121
|
+
renderItem={renderItem}
|
|
1122
|
+
scrollOffsetValue={scrollOffsetValue}
|
|
1123
|
+
/>
|
|
1124
|
+
);
|
|
1125
|
+
});
|
|
1126
|
+
|
|
1127
|
+
const { getByTestId } = render(
|
|
1128
|
+
<Wrapper
|
|
1129
|
+
ref={(instance) => {
|
|
1130
|
+
if (instance) nextSlide = instance.next;
|
|
1131
|
+
}}
|
|
1132
|
+
style={{ height: slideHeight }}
|
|
1133
|
+
/>
|
|
1134
|
+
);
|
|
1135
|
+
const contentContainer = getByTestId("carousel-content-container");
|
|
1136
|
+
|
|
1137
|
+
act(() => {
|
|
1138
|
+
contentContainer.props.onLayout({
|
|
1139
|
+
nativeEvent: { layout: { width: 320, height: slideHeight } },
|
|
1140
|
+
});
|
|
1141
|
+
jest.runOnlyPendingTimers();
|
|
1142
|
+
});
|
|
1143
|
+
|
|
1144
|
+
nextSlide?.({ animated: false });
|
|
1145
|
+
await waitFor(() => expect(observedOffset.current).toBe(-320));
|
|
1146
|
+
|
|
1147
|
+
act(() => {
|
|
1148
|
+
contentContainer.props.onLayout({
|
|
1149
|
+
nativeEvent: { layout: { width: 520, height: slideHeight } },
|
|
1150
|
+
});
|
|
1151
|
+
jest.runOnlyPendingTimers();
|
|
1152
|
+
});
|
|
1153
|
+
|
|
1154
|
+
await waitFor(() => expect(observedOffset.current).toBe(-520));
|
|
1155
|
+
});
|
|
1156
|
+
|
|
1005
1157
|
it("should render items even before onLayout provides size (flex-based sizing)", async () => {
|
|
1006
1158
|
const progress = { current: 0 };
|
|
1007
1159
|
const Wrapper = createCarousel(progress);
|
|
@@ -15,6 +15,34 @@ import { ScrollViewGesture } from "./ScrollViewGesture";
|
|
|
15
15
|
|
|
16
16
|
export type TAnimationStyle = (value: number) => ViewStyle;
|
|
17
17
|
|
|
18
|
+
export function resolveCarouselLayoutStyle(params: {
|
|
19
|
+
flattenedStyle: Partial<ViewStyle>;
|
|
20
|
+
vertical: boolean;
|
|
21
|
+
measuredSize: number;
|
|
22
|
+
sizeExplicit: boolean;
|
|
23
|
+
legacyWidth?: number;
|
|
24
|
+
legacyHeight?: number;
|
|
25
|
+
}) {
|
|
26
|
+
"worklet";
|
|
27
|
+
|
|
28
|
+
const { flattenedStyle, vertical, measuredSize, sizeExplicit, legacyWidth, legacyHeight } =
|
|
29
|
+
params;
|
|
30
|
+
const { width, height } = flattenedStyle;
|
|
31
|
+
const hasLegacyMainAxisSize = vertical
|
|
32
|
+
? typeof legacyHeight === "number" && legacyHeight > 0
|
|
33
|
+
: typeof legacyWidth === "number" && legacyWidth > 0;
|
|
34
|
+
const shouldUseMeasuredMainAxisSize = sizeExplicit || hasLegacyMainAxisSize;
|
|
35
|
+
const resolvedMainAxisSize = measuredSize || "100%";
|
|
36
|
+
|
|
37
|
+
return {
|
|
38
|
+
width:
|
|
39
|
+
width ?? (vertical ? "100%" : shouldUseMeasuredMainAxisSize ? resolvedMainAxisSize : "100%"),
|
|
40
|
+
height:
|
|
41
|
+
height ??
|
|
42
|
+
(vertical ? (shouldUseMeasuredMainAxisSize ? resolvedMainAxisSize : "100%") : "100%"),
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
|
|
18
46
|
export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref) => {
|
|
19
47
|
const { props, common } = useGlobalState();
|
|
20
48
|
|
|
@@ -46,9 +74,11 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
|
|
|
46
74
|
onProgressChange,
|
|
47
75
|
customAnimation,
|
|
48
76
|
defaultIndex,
|
|
77
|
+
width: legacyWidth,
|
|
78
|
+
height: legacyHeight,
|
|
49
79
|
} = props;
|
|
50
80
|
|
|
51
|
-
const { size, handlerOffset, resolvedSize, sizePhase } = common;
|
|
81
|
+
const { size, handlerOffset, resolvedSize, sizePhase, sizeExplicit } = common;
|
|
52
82
|
const layoutConfig = useLayoutConfig({ ...props, size });
|
|
53
83
|
|
|
54
84
|
const isSizeReady = useDerivedValue(() => {
|
|
@@ -157,18 +187,31 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
|
|
|
157
187
|
const flattenedStyle = StyleSheet.flatten(style) || {};
|
|
158
188
|
|
|
159
189
|
const layoutStyle = useAnimatedStyle(() => {
|
|
160
|
-
const { width, height } = flattenedStyle;
|
|
161
190
|
const measuredSize = resolvedSize.value ?? 0;
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
191
|
+
const { width, height } = resolveCarouselLayoutStyle({
|
|
192
|
+
flattenedStyle,
|
|
193
|
+
vertical: !!vertical,
|
|
194
|
+
measuredSize,
|
|
195
|
+
sizeExplicit,
|
|
196
|
+
legacyWidth,
|
|
197
|
+
legacyHeight,
|
|
198
|
+
});
|
|
165
199
|
|
|
166
200
|
return {
|
|
167
|
-
width
|
|
168
|
-
height
|
|
201
|
+
width,
|
|
202
|
+
height,
|
|
169
203
|
opacity: isSizeReady.value ? 1 : 0,
|
|
170
204
|
};
|
|
171
|
-
}, [
|
|
205
|
+
}, [
|
|
206
|
+
flattenedStyle,
|
|
207
|
+
isSizeReady,
|
|
208
|
+
vertical,
|
|
209
|
+
resolvedSize,
|
|
210
|
+
sizePhase,
|
|
211
|
+
sizeExplicit,
|
|
212
|
+
legacyWidth,
|
|
213
|
+
legacyHeight,
|
|
214
|
+
]);
|
|
172
215
|
|
|
173
216
|
return (
|
|
174
217
|
<GestureHandlerRootView testID={testID} style={[styles.layoutContainer, style]}>
|
|
@@ -196,6 +239,7 @@ export const CarouselLayout = React.forwardRef<ICarouselInstance>((_props, ref)
|
|
|
196
239
|
loop={loop}
|
|
197
240
|
size={size}
|
|
198
241
|
windowSize={windowSize}
|
|
242
|
+
defaultIndex={defaultIndex}
|
|
199
243
|
autoFillData={autoFillData}
|
|
200
244
|
offsetX={offsetX}
|
|
201
245
|
handlerOffset={handlerOffset}
|
|
@@ -19,6 +19,20 @@ import { sanitizeAnimationStyle } from "../utils/sanitize-animation-style";
|
|
|
19
19
|
|
|
20
20
|
export type TAnimationStyle = NonNullable<TCarouselProps["customAnimation"]>;
|
|
21
21
|
|
|
22
|
+
export function resolveItemMainAxisSize(params: {
|
|
23
|
+
explicitSize?: number;
|
|
24
|
+
effectivePageSize?: number;
|
|
25
|
+
measuredSize: number | null;
|
|
26
|
+
}) {
|
|
27
|
+
"worklet";
|
|
28
|
+
|
|
29
|
+
const { explicitSize, effectivePageSize, measuredSize } = params;
|
|
30
|
+
|
|
31
|
+
return typeof explicitSize === "number"
|
|
32
|
+
? explicitSize
|
|
33
|
+
: (effectivePageSize ?? measuredSize ?? "100%");
|
|
34
|
+
}
|
|
35
|
+
|
|
22
36
|
export const ItemLayout: React.FC<{
|
|
23
37
|
index: number;
|
|
24
38
|
handlerOffset: SharedValue<number>;
|
|
@@ -71,15 +85,25 @@ export const ItemLayout: React.FC<{
|
|
|
71
85
|
const widthCandidate = vertical ? width : (explicitItemSize ?? explicitAxisSize);
|
|
72
86
|
const heightCandidate = vertical ? (explicitItemSize ?? explicitAxisSize) : height;
|
|
73
87
|
|
|
74
|
-
const computedWidth =
|
|
75
|
-
typeof widthCandidate === "number"
|
|
88
|
+
const computedWidth = vertical
|
|
89
|
+
? typeof widthCandidate === "number"
|
|
76
90
|
? widthCandidate
|
|
77
|
-
: (measuredSize.value.width ??
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
91
|
+
: (measuredSize.value.width ?? "100%")
|
|
92
|
+
: resolveItemMainAxisSize({
|
|
93
|
+
explicitSize: widthCandidate,
|
|
94
|
+
effectivePageSize,
|
|
95
|
+
measuredSize: measuredSize.value.width,
|
|
96
|
+
});
|
|
97
|
+
|
|
98
|
+
const computedHeight = vertical
|
|
99
|
+
? resolveItemMainAxisSize({
|
|
100
|
+
explicitSize: heightCandidate,
|
|
101
|
+
effectivePageSize,
|
|
102
|
+
measuredSize: measuredSize.value.height,
|
|
103
|
+
})
|
|
104
|
+
: typeof heightCandidate === "number"
|
|
81
105
|
? heightCandidate
|
|
82
|
-
: (measuredSize.value.height ??
|
|
106
|
+
: (measuredSize.value.height ?? "100%");
|
|
83
107
|
|
|
84
108
|
return {
|
|
85
109
|
width: computedWidth,
|
|
@@ -9,7 +9,7 @@ import type { TAnimationStyle } from "./ItemLayout";
|
|
|
9
9
|
import { ItemLayout } from "./ItemLayout";
|
|
10
10
|
|
|
11
11
|
import type { VisibleRanges } from "../hooks/useVisibleRanges";
|
|
12
|
-
import { useVisibleRanges } from "../hooks/useVisibleRanges";
|
|
12
|
+
import { computeVisibleRanges, useVisibleRanges } from "../hooks/useVisibleRanges";
|
|
13
13
|
import type { CarouselRenderItem } from "../types";
|
|
14
14
|
import { computedRealIndexWithAutoFillData } from "../utils/computed-with-auto-fill-data";
|
|
15
15
|
|
|
@@ -20,6 +20,7 @@ interface Props {
|
|
|
20
20
|
loop: boolean;
|
|
21
21
|
size: number;
|
|
22
22
|
windowSize?: number;
|
|
23
|
+
defaultIndex: number;
|
|
23
24
|
autoFillData: boolean;
|
|
24
25
|
offsetX: SharedValue<number>;
|
|
25
26
|
handlerOffset: SharedValue<number>;
|
|
@@ -33,6 +34,7 @@ export const ItemRenderer: FC<Props> = (props) => {
|
|
|
33
34
|
data,
|
|
34
35
|
size,
|
|
35
36
|
windowSize,
|
|
37
|
+
defaultIndex,
|
|
36
38
|
handlerOffset,
|
|
37
39
|
offsetX,
|
|
38
40
|
dataLength,
|
|
@@ -54,11 +56,14 @@ export const ItemRenderer: FC<Props> = (props) => {
|
|
|
54
56
|
|
|
55
57
|
// Initialize with a sensible default to avoid blank render on first frame
|
|
56
58
|
const initialRanges: VisibleRanges = React.useMemo(
|
|
57
|
-
() =>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
59
|
+
() =>
|
|
60
|
+
computeVisibleRanges({
|
|
61
|
+
total: dataLength,
|
|
62
|
+
windowSize,
|
|
63
|
+
currentIndex: defaultIndex,
|
|
64
|
+
loop,
|
|
65
|
+
}),
|
|
66
|
+
[dataLength, defaultIndex, loop, windowSize]
|
|
62
67
|
);
|
|
63
68
|
|
|
64
69
|
const [displayedItems, setDisplayedItems] = React.useState<VisibleRanges>(initialRanges);
|