react-native-reanimated-carousel 4.0.2 → 4.0.3
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/lib/commonjs/components/LazyView.test.js +2 -0
- package/lib/commonjs/components/LazyView.test.js.map +1 -0
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js +1 -1
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Basic/index.js +1 -1
- package/lib/commonjs/components/Pagination/Basic/index.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js +1 -1
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/index.js +1 -1
- package/lib/commonjs/components/Pagination/Custom/index.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.test.js +1 -1
- package/lib/commonjs/hooks/useCarouselController.test.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.test.js +1 -1
- package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -1
- package/lib/commonjs/layouts/parallax.test.js +2 -0
- package/lib/commonjs/layouts/parallax.test.js.map +1 -0
- package/lib/commonjs/layouts/stack.test.js +1 -33
- package/lib/commonjs/layouts/stack.test.js.map +1 -1
- package/lib/commonjs/store/index.test.js +2 -0
- package/lib/commonjs/store/index.test.js.map +1 -0
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +1 -1
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js.map +1 -1
- package/lib/commonjs/utils/deal-with-animation.test.js +1 -1
- package/lib/commonjs/utils/deal-with-animation.test.js.map +1 -1
- package/lib/commonjs/utils/handleroffset-direction.test.js +1 -1
- package/lib/commonjs/utils/handleroffset-direction.test.js.map +1 -1
- package/lib/commonjs/utils/log.test.js +1 -1
- package/lib/commonjs/utils/log.test.js.map +1 -1
- package/lib/module/components/LazyView.test.js +49 -0
- package/lib/module/components/LazyView.test.js.map +1 -0
- package/lib/module/components/Pagination/Basic/PaginationItem.js +11 -4
- package/lib/module/components/Pagination/Basic/PaginationItem.js.map +1 -1
- package/lib/module/components/Pagination/Basic/index.js +4 -2
- package/lib/module/components/Pagination/Basic/index.js.map +1 -1
- package/lib/module/components/Pagination/Custom/PaginationItem.js +11 -4
- package/lib/module/components/Pagination/Custom/PaginationItem.js.map +1 -1
- package/lib/module/components/Pagination/Custom/index.js +4 -2
- package/lib/module/components/Pagination/Custom/index.js.map +1 -1
- package/lib/module/hooks/useCarouselController.test.js +297 -0
- package/lib/module/hooks/useCarouselController.test.js.map +1 -1
- package/lib/module/hooks/useCommonVariables.test.js +161 -0
- package/lib/module/hooks/useCommonVariables.test.js.map +1 -1
- package/lib/module/layouts/parallax.test.js +210 -0
- package/lib/module/layouts/parallax.test.js.map +1 -0
- package/lib/module/layouts/stack.test.js +206 -35
- package/lib/module/layouts/stack.test.js.map +1 -1
- package/lib/module/store/index.test.js +293 -0
- package/lib/module/store/index.test.js.map +1 -0
- package/lib/module/utils/compute-offset-if-data-changed.test.js +94 -1
- package/lib/module/utils/compute-offset-if-data-changed.test.js.map +1 -1
- package/lib/module/utils/computed-with-auto-fill-data.test.js +72 -0
- package/lib/module/utils/computed-with-auto-fill-data.test.js.map +1 -1
- package/lib/module/utils/deal-with-animation.test.js +98 -0
- package/lib/module/utils/deal-with-animation.test.js.map +1 -1
- package/lib/module/utils/handleroffset-direction.test.js +56 -0
- package/lib/module/utils/handleroffset-direction.test.js.map +1 -1
- package/lib/module/utils/log.test.js +60 -0
- package/lib/module/utils/log.test.js.map +1 -1
- package/lib/typescript/components/Pagination/Basic/PaginationItem.d.ts +1 -0
- package/lib/typescript/components/Pagination/Basic/index.d.ts +1 -0
- package/lib/typescript/components/Pagination/Custom/PaginationItem.d.ts +1 -0
- package/lib/typescript/components/Pagination/Custom/index.d.ts +1 -0
- package/package.json +1 -1
- package/src/components/LazyView.test.tsx +61 -0
- package/src/components/Pagination/Basic/PaginationItem.tsx +22 -5
- package/src/components/Pagination/Basic/index.tsx +3 -0
- package/src/components/Pagination/Custom/PaginationItem.tsx +11 -3
- package/src/components/Pagination/Custom/index.tsx +3 -0
- package/src/hooks/useCarouselController.test.tsx +293 -0
- package/src/hooks/useCommonVariables.test.tsx +190 -0
- package/src/layouts/parallax.test.ts +239 -0
- package/src/layouts/stack.test.ts +235 -36
- package/src/store/index.test.tsx +306 -0
- package/src/utils/compute-offset-if-data-changed.test.ts +104 -1
- package/src/utils/computed-with-auto-fill-data.test.ts +86 -0
- package/src/utils/deal-with-animation.test.ts +90 -0
- package/src/utils/handleroffset-direction.test.ts +72 -0
- package/src/utils/log.test.ts +70 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _reactNative=require("@testing-library/react-native");var _react=_interopRequireDefault(require("react"));var _reactNative2=require("react-native");var _LazyView=require("./LazyView");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/LazyView.test.tsx";describe("LazyView",function(){it("should render children when shouldUpdate is true",function(){var _render=(0,_reactNative.render)((0,_jsxRuntime.jsx)(_LazyView.LazyView,{shouldUpdate:true,children:(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test Child"})})),getByText=_render.getByText;expect(getByText("Test Child")).toBeTruthy();});it("should not render children when shouldUpdate is false",function(){var _render2=(0,_reactNative.render)((0,_jsxRuntime.jsx)(_LazyView.LazyView,{shouldUpdate:false,children:(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test Child"})})),queryByText=_render2.queryByText;expect(queryByText("Test Child")).toBeNull();});it("should render empty fragment when shouldUpdate is false",function(){var _render3=(0,_reactNative.render)((0,_jsxRuntime.jsx)(_LazyView.LazyView,{shouldUpdate:false,children:(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Test Child"})})),container=_render3.container;expect(container.children.length).toBe(0);});it("should handle multiple children when shouldUpdate is true",function(){var _render4=(0,_reactNative.render)((0,_jsxRuntime.jsxs)(_LazyView.LazyView,{shouldUpdate:true,children:[(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"First Child"}),(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Second Child"})]})),getByText=_render4.getByText;expect(getByText("First Child")).toBeTruthy();expect(getByText("Second Child")).toBeTruthy();});it("should not render multiple children when shouldUpdate is false",function(){var _render5=(0,_reactNative.render)((0,_jsxRuntime.jsxs)(_LazyView.LazyView,{shouldUpdate:false,children:[(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"First Child"}),(0,_jsxRuntime.jsx)(_reactNative2.Text,{children:"Second Child"})]})),queryByText=_render5.queryByText;expect(queryByText("First Child")).toBeNull();expect(queryByText("Second Child")).toBeNull();});});
|
|
2
|
+
//# sourceMappingURL=LazyView.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["LazyView.test.tsx"],"names":["describe","it","getByText","expect","toBeTruthy","queryByText","toBeNull","container","children","length","toBe"],"mappings":"mFAAA,0DACA,oDACA,0CAEA,oC,gMAEAA,QAAQ,CAAC,UAAD,CAAa,UAAM,CACzBC,EAAE,CAAC,kDAAD,CAAqD,UAAM,CAC3D,YAAsB,wBACpB,oBAAC,kBAAD,EAAU,YAAY,CAAE,IAAxB,UACE,oBAAC,kBAAD,WAAM,YAAN,EADF,EADoB,CAAtB,CAAQC,SAAR,SAAQA,SAAR,CAMAC,MAAM,CAACD,SAAS,CAAC,YAAD,CAAV,CAAN,CAAgCE,UAAhC,GACD,CARC,CAAF,CAUAH,EAAE,CAAC,uDAAD,CAA0D,UAAM,CAChE,aAAwB,wBACtB,oBAAC,kBAAD,EAAU,YAAY,CAAE,KAAxB,UACE,oBAAC,kBAAD,WAAM,YAAN,EADF,EADsB,CAAxB,CAAQI,WAAR,UAAQA,WAAR,CAMAF,MAAM,CAACE,WAAW,CAAC,YAAD,CAAZ,CAAN,CAAkCC,QAAlC,GACD,CARC,CAAF,CAUAL,EAAE,CAAC,yDAAD,CAA4D,UAAM,CAClE,aAAsB,wBACpB,oBAAC,kBAAD,EAAU,YAAY,CAAE,KAAxB,UACE,oBAAC,kBAAD,WAAM,YAAN,EADF,EADoB,CAAtB,CAAQM,SAAR,UAAQA,SAAR,CAMAJ,MAAM,CAACI,SAAS,CAACC,QAAV,CAAmBC,MAApB,CAAN,CAAkCC,IAAlC,CAAuC,CAAvC,EACD,CARC,CAAF,CAUAT,EAAE,CAAC,2DAAD,CAA8D,UAAM,CACpE,aAAsB,wBACpB,qBAAC,kBAAD,EAAU,YAAY,CAAE,IAAxB,WACE,oBAAC,kBAAD,WAAM,aAAN,EADF,CAEE,oBAAC,kBAAD,WAAM,cAAN,EAFF,GADoB,CAAtB,CAAQC,SAAR,UAAQA,SAAR,CAOAC,MAAM,CAACD,SAAS,CAAC,aAAD,CAAV,CAAN,CAAiCE,UAAjC,GACAD,MAAM,CAACD,SAAS,CAAC,cAAD,CAAV,CAAN,CAAkCE,UAAlC,GACD,CAVC,CAAF,CAYAH,EAAE,CAAC,gEAAD,CAAmE,UAAM,CACzE,aAAwB,wBACtB,qBAAC,kBAAD,EAAU,YAAY,CAAE,KAAxB,WACE,oBAAC,kBAAD,WAAM,aAAN,EADF,CAEE,oBAAC,kBAAD,WAAM,cAAN,EAFF,GADsB,CAAxB,CAAQI,WAAR,UAAQA,WAAR,CAOAF,MAAM,CAACE,WAAW,CAAC,aAAD,CAAZ,CAAN,CAAmCC,QAAnC,GACAH,MAAM,CAACE,WAAW,CAAC,cAAD,CAAZ,CAAN,CAAoCC,QAApC,GACD,CAVC,CAAF,CAWD,CAtDO,CAAR","sourcesContent":["import { render } from \"@testing-library/react-native\";\nimport React from \"react\";\nimport { Text } from \"react-native\";\n\nimport { LazyView } from \"./LazyView\";\n\ndescribe(\"LazyView\", () => {\n it(\"should render children when shouldUpdate is true\", () => {\n const { getByText } = render(\n <LazyView shouldUpdate={true}>\n <Text>Test Child</Text>\n </LazyView>\n );\n\n expect(getByText(\"Test Child\")).toBeTruthy();\n });\n\n it(\"should not render children when shouldUpdate is false\", () => {\n const { queryByText } = render(\n <LazyView shouldUpdate={false}>\n <Text>Test Child</Text>\n </LazyView>\n );\n\n expect(queryByText(\"Test Child\")).toBeNull();\n });\n\n it(\"should render empty fragment when shouldUpdate is false\", () => {\n const { container } = render(\n <LazyView shouldUpdate={false}>\n <Text>Test Child</Text>\n </LazyView>\n );\n\n expect(container.children.length).toBe(0);\n });\n\n it(\"should handle multiple children when shouldUpdate is true\", () => {\n const { getByText } = render(\n <LazyView shouldUpdate={true}>\n <Text>First Child</Text>\n <Text>Second Child</Text>\n </LazyView>\n );\n\n expect(getByText(\"First Child\")).toBeTruthy();\n expect(getByText(\"Second Child\")).toBeTruthy();\n });\n\n it(\"should not render multiple children when shouldUpdate is false\", () => {\n const { queryByText } = render(\n <LazyView shouldUpdate={false}>\n <Text>First Child</Text>\n <Text>Second Child</Text>\n </LazyView>\n );\n\n expect(queryByText(\"First Child\")).toBeNull();\n expect(queryByText(\"Second Child\")).toBeNull();\n });\n});\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PaginationItem=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/PaginationItem.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_14422051368407_init_data={code:"function anonymous(){const{horizontal,height,width,index,animValue,count,interpolate,Extrapolation}=this.__closure;var _animValue,_animValue2;const size=horizontal?height:width;let inputRange=[index-1,index,index+1];let outputRange=[-size,0,size];if(index===0&&((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value)>count-1){inputRange=[count-1,count,count+1];outputRange=[-size,0,size];}return{transform:[{translateX:interpolate((_animValue2=animValue)===null||_animValue2===void 0?void 0:_animValue2.value,inputRange,outputRange,Extrapolation.CLAMP)}]};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PaginationItem=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/PaginationItem.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_14422051368407_init_data={code:"function anonymous(){const{horizontal,height,width,index,animValue,count,interpolate,Extrapolation}=this.__closure;var _animValue,_animValue2;const size=horizontal?height:width;let inputRange=[index-1,index,index+1];let outputRange=[-size,0,size];if(index===0&&((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value)>count-1){inputRange=[count-1,count,count+1];outputRange=[-size,0,size];}return{transform:[{translateX:interpolate((_animValue2=animValue)===null||_animValue2===void 0?void 0:_animValue2.value,inputRange,outputRange,Extrapolation.CLAMP)}]};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AAwDqC,QAAAA,UAAA,EAAM,kGAAAC,WAAA,CAAAC,WAAA,oCACvC,GAAAC,WAAaC,OAAU,CAAGC,CAAbD,CAAaC,KAAbD,CAAsBE,KAAnC,EAAaF,CAAb,CACA,GAAID,YAAU,CAAII,OAAQ,CAARA,CAAWA,IAAXA,CAAlB,CACA,GAAIC,WAAe,CAACC,WAASA,CAA7BC,SAAoBD,IAApB,IAAoBA,EAApBR,UAAA,SAAoBQ,CAApB,MAAoBA,CAApBR,UAAA,CAAAU,KAAmB,EAAnBC,KAAA,uCAEAJ,WAAS,CAALD,OAAeG,CAAfH,CAAeG,IAAfH,CAAJ,CACEJ,CACAK,OACFK,SAAA,qJADEL,EAMIM\",\"names\":[\"anonymous\",\"_animValue\",\"_animValue2\",\"inputRange\",\"horizontal\",\"height\",\"width\",\"index\",\"outputRange\",\"size\",\"animValue\",\"value\",\"count\",\"transform\",\"translateX\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/PaginationItem.tsx\"]}",version:"3.10.1"};var PaginationItem=function PaginationItem(props){var animValue=props.animValue,dotStyle=props.dotStyle,activeDotStyle=props.activeDotStyle,index=props.index,count=props.count,size=props.size,horizontal=props.horizontal,children=props.children,onPress=props.onPress,accessibilityLabel=props.accessibilityLabel;var defaultDotSize=10;var sizes={width:size||(dotStyle==null?void 0:dotStyle.width)||defaultDotSize,height:size||(dotStyle==null?void 0:dotStyle.height)||defaultDotSize};var width=sizes.width;var height=sizes.height;var animStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _e=[new global.Error(),-9,-27];var anonymous=function anonymous(){var size=horizontal?height:width;var inputRange=[index-1,index,index+1];var outputRange=[-size,0,size];if(index===0&&(animValue==null?void 0:animValue.value)>count-1){inputRange=[count-1,count,count+1];outputRange=[-size,0,size];}return{transform:[{translateX:(0,_reactNativeReanimated.interpolate)(animValue==null?void 0:animValue.value,inputRange,outputRange,_reactNativeReanimated.Extrapolation.CLAMP)}]};};anonymous.__closure={horizontal:horizontal,height:height,width:width,index:index,animValue:animValue,count:count,interpolate:_reactNativeReanimated.interpolate,Extrapolation:_reactNativeReanimated.Extrapolation};anonymous.__workletHash=14422051368407;anonymous.__initData=_worklet_14422051368407_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[animValue,index,count,horizontal]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:onPress,accessibilityLabel:accessibilityLabel,accessibilityRole:"button",accessibilityHint:animValue.value===index?"":`Go to ${accessibilityLabel}`,accessibilityState:{selected:animValue.value===index},children:(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{width:width,height:height,overflow:"hidden",transform:[{rotateZ:horizontal?"90deg":"0deg"}]},dotStyle],children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{backgroundColor:"black",flex:1},animStyle,activeDotStyle],children:children})})});};exports.PaginationItem=PaginationItem;
|
|
2
2
|
//# sourceMappingURL=PaginationItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PaginationItem.tsx"],"names":["PaginationItem","props","animValue","dotStyle","activeDotStyle","index","count","size","horizontal","children","onPress","defaultDotSize","sizes","width","height","animStyle","inputRange","outputRange","value","transform","translateX","Extrapolation","CLAMP","interpolate","overflow","rotateZ","backgroundColor","flex"],"mappings":"0KACA,oDAEA,yCACA,uF,4uFAOO,GAAMA,CAAAA,
|
|
1
|
+
{"version":3,"sources":["PaginationItem.tsx"],"names":["PaginationItem","props","animValue","dotStyle","activeDotStyle","index","count","size","horizontal","children","onPress","accessibilityLabel","defaultDotSize","sizes","width","height","animStyle","inputRange","outputRange","value","transform","translateX","Extrapolation","CLAMP","interpolate","selected","overflow","rotateZ","backgroundColor","flex"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport type { ViewStyle } from \"react-native\";\nimport { Pressable, View } from \"react-native\";\nimport Animated, { Extrapolation, interpolate, useAnimatedStyle } from \"react-native-reanimated\";\n\nexport type DotStyle = Omit<ViewStyle, \"width\" | \"height\"> & {\n width?: number;\n height?: number;\n};\n\nexport const PaginationItem: React.FC<\n PropsWithChildren<{\n index: number;\n count: number;\n size?: number;\n animValue: Animated.SharedValue<number>;\n horizontal?: boolean;\n dotStyle?: DotStyle;\n activeDotStyle?: DotStyle;\n onPress: () => void;\n accessibilityLabel?: string;\n }>\n> = (props) => {\n const {\n animValue,\n dotStyle,\n activeDotStyle,\n index,\n count,\n size,\n horizontal,\n children,\n onPress,\n accessibilityLabel,\n } = props;\n\n const defaultDotSize = 10;\n\n const sizes = {\n width: size || dotStyle?.width || defaultDotSize,\n height: size || dotStyle?.height || defaultDotSize,\n };\n\n /**\n * TODO: Keep this for future implementation\n * Used to change the size of the active dot with animation\n */\n // const animatedSize = {\n // width: activeDotStyle?.width,\n // height: activeDotStyle?.height,\n // };\n\n const width = sizes.width;\n const height = sizes.height;\n\n const animStyle = useAnimatedStyle(() => {\n const size = horizontal ? height : width;\n let inputRange = [index - 1, index, index + 1];\n let outputRange = [-size, 0, size];\n\n if (index === 0 && animValue?.value > count - 1) {\n inputRange = [count - 1, count, count + 1];\n outputRange = [-size, 0, size];\n }\n\n return {\n transform: [\n {\n translateX: interpolate(animValue?.value, inputRange, outputRange, Extrapolation.CLAMP),\n },\n ],\n };\n }, [animValue, index, count, horizontal]);\n\n return (\n <Pressable\n onPress={onPress}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessibilityHint={animValue.value === index ? \"\" : `Go to ${accessibilityLabel}`}\n accessibilityState={{ selected: animValue.value === index }}\n >\n <View\n style={[\n {\n width,\n height,\n overflow: \"hidden\",\n transform: [\n {\n rotateZ: horizontal ? \"90deg\" : \"0deg\",\n },\n ],\n },\n dotStyle,\n ]}\n >\n <Animated.View\n style={[\n {\n backgroundColor: \"black\",\n flex: 1,\n },\n animStyle,\n activeDotStyle,\n ]}\n >\n {children}\n </Animated.View>\n </View>\n </Pressable>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Basic=void 0;var _reactNative=require("react-native");var _react=_interopRequireDefault(require("react"));var _PaginationItem=require("./PaginationItem");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/index.tsx";var Basic=function Basic(props){var activeDotStyle=props.activeDotStyle,dotStyle=props.dotStyle,progress=props.progress,_props$horizontal=props.horizontal,horizontal=_props$horizontal===void 0?true:_props$horizontal,data=props.data,size=props.size,containerStyle=props.containerStyle,renderItem=props.renderItem,_onPress=props.onPress;if(typeof size==="string"||typeof(dotStyle==null?void 0:dotStyle.width)==="string"||typeof(dotStyle==null?void 0:dotStyle.height)==="string")throw new Error("size/width/height must be a number");return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{justifyContent:"space-between",alignSelf:"center"},horizontal?{flexDirection:"row"}:{flexDirection:"column"},containerStyle],children:data.map(function(item,index){return(0,_jsxRuntime.jsx)(_PaginationItem.PaginationItem,{index:index,size:size,count:data.length,dotStyle:dotStyle,animValue:progress,horizontal:!horizontal,activeDotStyle:activeDotStyle,onPress:function onPress(){return _onPress==null?void 0:_onPress(index);},children:renderItem==null?void 0:renderItem(item,index)},index);})});};exports.Basic=Basic;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Basic=void 0;var _reactNative=require("react-native");var _react=_interopRequireDefault(require("react"));var _PaginationItem=require("./PaginationItem");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Basic/index.tsx";var Basic=function Basic(props){var activeDotStyle=props.activeDotStyle,dotStyle=props.dotStyle,progress=props.progress,_props$horizontal=props.horizontal,horizontal=_props$horizontal===void 0?true:_props$horizontal,data=props.data,size=props.size,containerStyle=props.containerStyle,renderItem=props.renderItem,_onPress=props.onPress,carouselName=props.carouselName;if(typeof size==="string"||typeof(dotStyle==null?void 0:dotStyle.width)==="string"||typeof(dotStyle==null?void 0:dotStyle.height)==="string")throw new Error("size/width/height must be a number");return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{justifyContent:"space-between",alignSelf:"center"},horizontal?{flexDirection:"row"}:{flexDirection:"column"},containerStyle],children:data.map(function(item,index){return(0,_jsxRuntime.jsx)(_PaginationItem.PaginationItem,{index:index,size:size,count:data.length,dotStyle:dotStyle,animValue:progress,horizontal:!horizontal,activeDotStyle:activeDotStyle,onPress:function onPress(){return _onPress==null?void 0:_onPress(index);},accessibilityLabel:`Slide ${index+1} of ${data.length} - ${carouselName}`,children:renderItem==null?void 0:renderItem(item,index)},index);})});};exports.Basic=Basic;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Basic","props","activeDotStyle","dotStyle","progress","horizontal","data","size","containerStyle","renderItem","onPress","width","height","Error","justifyContent","alignSelf","flexDirection","map","item","index","length"],"mappings":"iKAAA,yCAGA,oDAEA,gD,
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Basic","props","activeDotStyle","dotStyle","progress","horizontal","data","size","containerStyle","renderItem","onPress","carouselName","width","height","Error","justifyContent","alignSelf","flexDirection","map","item","index","length"],"mappings":"iKAAA,yCAGA,oDAEA,gD,yMAeO,GAAMA,CAAAA,KAAK,CAAG,QAARA,CAAAA,KAAQ,CAAeC,KAAf,CAAwC,CAC3D,GACEC,CAAAA,cADF,CAWID,KAXJ,CACEC,cADF,CAEEC,QAFF,CAWIF,KAXJ,CAEEE,QAFF,CAGEC,QAHF,CAWIH,KAXJ,CAGEG,QAHF,mBAWIH,KAXJ,CAIEI,UAJF,CAIEA,UAJF,4BAIe,IAJf,mBAKEC,IALF,CAWIL,KAXJ,CAKEK,IALF,CAMEC,IANF,CAWIN,KAXJ,CAMEM,IANF,CAOEC,cAPF,CAWIP,KAXJ,CAOEO,cAPF,CAQEC,UARF,CAWIR,KAXJ,CAQEQ,UARF,CASEC,QATF,CAWIT,KAXJ,CASES,OATF,CAUEC,YAVF,CAWIV,KAXJ,CAUEU,YAVF,CAaA,GACE,MAAOJ,CAAAA,IAAP,GAAgB,QAAhB,EACA,OAAOJ,QAAP,cAAOA,QAAQ,CAAES,KAAjB,IAA2B,QAD3B,EAEA,OAAOT,QAAP,cAAOA,QAAQ,CAAEU,MAAjB,IAA4B,QAH9B,CAKE,KAAM,IAAIC,CAAAA,KAAJ,CAAU,oCAAV,CAAN,CAEF,MACE,oBAAC,iBAAD,EACE,KAAK,CAAE,CACL,CACEC,cAAc,CAAE,eADlB,CAEEC,SAAS,CAAE,QAFb,CADK,CAKLX,UAAU,CACN,CACEY,aAAa,CAAE,KADjB,CADM,CAIN,CACEA,aAAa,CAAE,QADjB,CATC,CAYLT,cAZK,CADT,UAgBGF,IAAI,CAACY,GAAL,CAAS,SAACC,IAAD,CAAOC,KAAP,CAAiB,CACzB,MACE,oBAAC,8BAAD,EAEE,KAAK,CAAEA,KAFT,CAGE,IAAI,CAAEb,IAHR,CAIE,KAAK,CAAED,IAAI,CAACe,MAJd,CAKE,QAAQ,CAAElB,QALZ,CAME,SAAS,CAAEC,QANb,CAOE,UAAU,CAAE,CAACC,UAPf,CAQE,cAAc,CAAEH,cARlB,CASE,OAAO,CAAE,yBAAMQ,CAAAA,QAAN,cAAMA,QAAO,CAAGU,KAAH,CAAb,EATX,CAUE,kBAAkB,CAAG,SAAQA,KAAK,CAAG,CAAE,OAAMd,IAAI,CAACe,MAAO,MAAKV,YAAa,EAV7E,UAYGF,UAZH,cAYGA,UAAU,CAAGU,IAAH,CAASC,KAAT,CAZb,EACOA,KADP,CADF,CAgBD,CAjBA,CAhBH,EADF,CAqCD,CA1DM,C","sourcesContent":["import { type StyleProp, View, type ViewStyle } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport React from \"react\";\nimport type { DotStyle } from \"./PaginationItem\";\nimport { PaginationItem } from \"./PaginationItem\";\n\nexport interface BasicProps<T> {\n progress: SharedValue<number>;\n horizontal?: boolean;\n data: Array<T>;\n renderItem?: (item: T, index: number) => React.ReactNode;\n containerStyle?: StyleProp<ViewStyle>;\n dotStyle?: DotStyle;\n activeDotStyle?: DotStyle;\n size?: number;\n onPress?: (index: number) => void;\n carouselName?: string;\n}\n\nexport const Basic = <T extends {}>(props: BasicProps<T>) => {\n const {\n activeDotStyle,\n dotStyle,\n progress,\n horizontal = true,\n data,\n size,\n containerStyle,\n renderItem,\n onPress,\n carouselName,\n } = props;\n\n if (\n typeof size === \"string\" ||\n typeof dotStyle?.width === \"string\" ||\n typeof dotStyle?.height === \"string\"\n )\n throw new Error(\"size/width/height must be a number\");\n\n return (\n <View\n style={[\n {\n justifyContent: \"space-between\",\n alignSelf: \"center\",\n },\n horizontal\n ? {\n flexDirection: \"row\",\n }\n : {\n flexDirection: \"column\",\n },\n containerStyle,\n ]}\n >\n {data.map((item, index) => {\n return (\n <PaginationItem\n key={index}\n index={index}\n size={size}\n count={data.length}\n dotStyle={dotStyle}\n animValue={progress}\n horizontal={!horizontal}\n activeDotStyle={activeDotStyle}\n onPress={() => onPress?.(index)}\n accessibilityLabel={`Slide ${index + 1} of ${data.length} - ${carouselName}`}\n >\n {renderItem?.(item, index)}\n </PaginationItem>\n );\n })}\n </View>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PaginationItem=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _jsxRuntime=require("react/jsx-runtime");var _excluded=["width","height","borderRadius","backgroundColor"],_excluded2=["width","height","borderRadius","backgroundColor"];var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_10273207657391_init_data={code:"function anonymous(){const{runOnJS,handleCustomAnimation,animValue}=this.__closure;var _animValue;runOnJS(handleCustomAnimation)((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value);}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AAuDkB,QAAAA,UAAA,EAAM,kEAAAC,WAAA,4GACpBC\",\"names\":[\"anonymous\",\"_animValue\",\"runOnJS\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx\"]}",version:"3.10.1"};var _worklet_9217897742613_init_data={code:"function anonymous(){const{size,defaultDotSize,dotStyle,activeDotStyle,animValue,index,count,interpolate,Extrapolation,interpolateColor,customReanimatedStyleRef}=this.__closure;var _dotStyle,_activeDotStyle,_animValue,_animValue2,_animValue3,_ref,_ref2,_customReanimatedStyl,_restStyle$transform,_customReanimatedStyl2,_customReanimatedStyl3;const{width=size||defaultDotSize,height=size||defaultDotSize,borderRadius:borderRadius,backgroundColor=\"#FFF\",...restDotStyle}=(_dotStyle=dotStyle)!==null&&_dotStyle!==void 0?_dotStyle:{};const{width:activeWidth=width,height:activeHeight=height,borderRadius:activeBorderRadius,backgroundColor:activeBackgroundColor=\"#000\",...restActiveDotStyle}=(_activeDotStyle=activeDotStyle)!==null&&_activeDotStyle!==void 0?_activeDotStyle:{};let val=Math.abs(((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value)-index);if(index===0&&((_animValue2=animValue)===null||_animValue2===void 0?void 0:_animValue2.value)>count-1)val=Math.abs(((_animValue3=animValue)===null||_animValue3===void 0?void 0:_animValue3.value)-count);const inputRange=[0,1,2];const restStyle=(_ref=val===0?restActiveDotStyle:restDotStyle)!==null&&_ref!==void 0?_ref:{};return{width:interpolate(val,inputRange,[activeWidth,width,width],Extrapolation.CLAMP),height:interpolate(val,inputRange,[activeHeight,height,height],Extrapolation.CLAMP),borderRadius:interpolate(val,inputRange,[(_ref2=activeBorderRadius!==null&&activeBorderRadius!==void 0?activeBorderRadius:borderRadius)!==null&&_ref2!==void 0?_ref2:0,borderRadius!==null&&borderRadius!==void 0?borderRadius:0,borderRadius!==null&&borderRadius!==void 0?borderRadius:0],Extrapolation.CLAMP),backgroundColor:interpolateColor(val,inputRange,[activeBackgroundColor,backgroundColor,backgroundColor]),...restStyle,...((_customReanimatedStyl=customReanimatedStyleRef.value)!==null&&_customReanimatedStyl!==void 0?_customReanimatedStyl:{}),transform:[...((_restStyle$transform=restStyle===null||restStyle===void 0?void 0:restStyle.transform)!==null&&_restStyle$transform!==void 0?_restStyle$transform:[]),...((_customReanimatedStyl2=(_customReanimatedStyl3=customReanimatedStyleRef.value)===null||_customReanimatedStyl3===void 0?void 0:_customReanimatedStyl3.transform)!==null&&_customReanimatedStyl2!==void 0?_customReanimatedStyl2:[])]};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AA2DqC,QAAAA,UAAA,EAAoB,gKAAAC,UAAA,CAAAC,eAAA,CAAAC,UAAA,CAAAC,WAAA,CAAAC,WAAA,CAAAC,IAAA,CAAAC,KAAA,CAAAC,qBAAA,CAAAC,oBAAA,CAAAC,sBAAA,CAAAC,sBAAA,OACrDC,KAAM,CAAAC,IAAA,EAAAC,eACJF,MAAK,CAAGC,IAAI,EAAIC,eAChBC,YAASF,CAAIG,aACbA,uBACAC,iBACA,CAAGC,kBAAH,IAAGA,IAAH,EAAGA,kBAAH,CAAGA,SAAH,CAAGA,GALC,MAONN,KAAM,CAAAO,WAAA,CAAAP,KAPA,CAQJA,MAAK,CAAEO,YAAW,CAAGP,MARjB,CASJG,YAAQK,mBATJ,CAUJJ,eAAcK,sBAHV,OAPA,CAWJJ,qBAXI,EAYJ,CAAGK,8BAAH,IAAGA,IAAH,EAAGA,wBAAH,CAAGA,eAAH,CAAGA,EAZC,CAOA,GAAAC,IAAA,CAAAC,IAAA,CAAAC,GAAA,GAAAtB,UAMFuB,UANE,UAAAvB,UAAA,iBAAAA,UAAN,CAAAwB,KAAM,EAANC,KAAM,EAON,GAAIL,KAAG,GAAO,CAAVA,EAAeM,2BAAS,IAATA,yCAAWF,MAAXE,EAAmBD,KAAtC,GAAAL,GAAA,CAAAC,IAAA,CAAAC,GAAA,GAAApB,WAAA,CAAAwB,SAAA,UAAAxB,WAAA,iBAAAA,WAAA,CAAAsB,KAAA,EAAAG,KAAA,EACA,KAAIF,YAAeC,OAAnB,CAEA,KAAME,WAAU,CAAGzB,IAAI,CAAGiB,GAA1B,IAA0B,CAA1BD,kBAA0B,CAA1BJ,YAAgB,IAAhB,IAAgB,EAAhBZ,IAAA,SAAgB,CAAhBA,IAAgB,CAAhB,GACA,MAAM0B,CAENpB,KAAO,CAAAqB,WAAA,CAAAV,GAAA,CAAAQ,UAAA,EAAAZ,WAAA,CAAAP,KAAA,CAAAA,KAAA,EAAAsB,aAAA,CAAAC,KAAA,CAFDH,CAGJpB,MAAK,CAAEqB,WAAYV,KAAKQ,UAALR,CAAkBJ,cAAaP,MAAbO,CAAoBP,MAApBO,CAAlBI,CAA8CW,aAAcC,MAA5DZ,CAHfS,CAIJjB,YAAQkB,YAAiBF,gBAAaX,OAAD,CAAeL,kBAAiBmB,OAAjBnB,EAA+BoB,kBAF9E,SAE+CpB,CAF/CM,kBAE+CN,CAF/CC,YAEiCI,IAFjC,IAEiCA,EAFjCb,KAAA,SAEiCa,CAFjCb,KAEiCa,CAFjC,CAEiCA,CAFjCJ,YAAA,SAAAA,YAAA,UAAAA,YAAA,EAEiCI,CAFjCJ,YAAA,SAAAA,YAAA,UAAAA,YAAA,EAEiCI,CAAbW,CAFpBG,aAAA,CAAAC,KAEoBJ,CAJrBC,CAKJhB,eAAciB,iBAEZF,gBACA,CAAAK,qBAAA,CAAAnB,eAAA,CAACI,eAAD,CADAU,CAPEC,CAWJf,YAXIe,CAgBJ,IAAGA,sBAdE,CAAAK,wBAAA,CAAAV,KAcFK,IAdE,IAcFA,EAdExB,qBAAA,SAcFwB,CAdExB,qBAcFwB,CAdE,EAcL,CAhBIA,CAiBJM,SAAA,OAAA7B,oBAAI4B,aAAyBV,IAAzBU,EAAJL,SAAA,SAAIK,CAAJ,MAAIA,CAAJL,SAAA,CAAAM,SAAA,UAAA7B,oBAfK,SAeL,CAfKA,oBAeL,CAfK,EAeL,EAfK,KAAAC,sBAAA,EAAAC,sBAAA,CAAA0B,wBAAA,CAAAV,KAAA,UAAAhB,sBAAA,iBAAAA,sBAAA,CAAA2B,SAAA,UAAA5B,sBAAA,UAAAA,sBAAA,IAeL,CAjBIsB,CAAN,CAEO\",\"names\":[\"anonymous\",\"_dotStyle\",\"_activeDotStyle\",\"_animValue\",\"_animValue2\",\"_animValue3\",\"_ref\",\"_ref2\",\"_customReanimatedStyl\",\"_restStyle$transform\",\"_customReanimatedStyl2\",\"_customReanimatedStyl3\",\"width\",\"size\",\"defaultDotSize\",\"height\",\"borderRadius\",\"backgroundColor\",\"restDotStyle\",\"activeWidth\",\"activeHeight\",\"activeBorderRadius\",\"restActiveDotStyle\",\"val\",\"Math\",\"abs\",\"activeDotStyle\",\"value\",\"index\",\"animValue\",\"count\",\"inputRange\",\"restStyle\",\"interpolate\",\"Extrapolation\",\"CLAMP\",\"activeBackgroundColor\",\"customReanimatedStyleRef\",\"transform\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx\"]}",version:"3.10.1"};var PaginationItem=function PaginationItem(props){var defaultDotSize=10;var animValue=props.animValue,dotStyle=props.dotStyle,activeDotStyle=props.activeDotStyle,index=props.index,count=props.count,size=props.size,horizontal=props.horizontal,children=props.children,customReanimatedStyle=props.customReanimatedStyle,onPress=props.onPress;var customReanimatedStyleRef=(0,_reactNativeReanimated.useSharedValue)({});var handleCustomAnimation=function handleCustomAnimation(progress){var _customReanimatedStyl;customReanimatedStyleRef.value=(_customReanimatedStyl=customReanimatedStyle==null?void 0:customReanimatedStyle(progress,index,count))!=null?_customReanimatedStyl:{};};(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-4,-27];var anonymous=function anonymous(){(0,_reactNativeReanimated.runOnJS)(handleCustomAnimation)(animValue==null?void 0:animValue.value);};anonymous.__closure={runOnJS:_reactNativeReanimated.runOnJS,handleCustomAnimation:handleCustomAnimation,animValue:animValue};anonymous.__workletHash=10273207657391;anonymous.__initData=_worklet_10273207657391_init_data;anonymous.__stackDetails=_e;return anonymous;}());var animStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _e=[new global.Error(),-12,-27];var anonymous=function anonymous(){var _ref3,_ref4,_customReanimatedStyl2,_restStyle$transform,_customReanimatedStyl3,_customReanimatedStyl4;var _ref=dotStyle!=null?dotStyle:{},_ref$width=_ref.width,width=_ref$width===void 0?size||defaultDotSize:_ref$width,_ref$height=_ref.height,height=_ref$height===void 0?size||defaultDotSize:_ref$height,borderRadius=_ref.borderRadius,_ref$backgroundColor=_ref.backgroundColor,backgroundColor=_ref$backgroundColor===void 0?"#FFF":_ref$backgroundColor,restDotStyle=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _ref2=activeDotStyle!=null?activeDotStyle:{},_ref2$width=_ref2.width,activeWidth=_ref2$width===void 0?width:_ref2$width,_ref2$height=_ref2.height,activeHeight=_ref2$height===void 0?height:_ref2$height,activeBorderRadius=_ref2.borderRadius,_ref2$backgroundColor=_ref2.backgroundColor,activeBackgroundColor=_ref2$backgroundColor===void 0?"#000":_ref2$backgroundColor,restActiveDotStyle=(0,_objectWithoutProperties2.default)(_ref2,_excluded2);var val=Math.abs((animValue==null?void 0:animValue.value)-index);if(index===0&&(animValue==null?void 0:animValue.value)>count-1)val=Math.abs((animValue==null?void 0:animValue.value)-count);var inputRange=[0,1,2];var restStyle=(_ref3=val===0?restActiveDotStyle:restDotStyle)!=null?_ref3:{};return Object.assign({width:(0,_reactNativeReanimated.interpolate)(val,inputRange,[activeWidth,width,width],_reactNativeReanimated.Extrapolation.CLAMP),height:(0,_reactNativeReanimated.interpolate)(val,inputRange,[activeHeight,height,height],_reactNativeReanimated.Extrapolation.CLAMP),borderRadius:(0,_reactNativeReanimated.interpolate)(val,inputRange,[(_ref4=activeBorderRadius!=null?activeBorderRadius:borderRadius)!=null?_ref4:0,borderRadius!=null?borderRadius:0,borderRadius!=null?borderRadius:0],_reactNativeReanimated.Extrapolation.CLAMP),backgroundColor:(0,_reactNativeReanimated.interpolateColor)(val,inputRange,[activeBackgroundColor,backgroundColor,backgroundColor])},restStyle,(_customReanimatedStyl2=customReanimatedStyleRef.value)!=null?_customReanimatedStyl2:{},{transform:[].concat((0,_toConsumableArray2.default)((_restStyle$transform=restStyle==null?void 0:restStyle.transform)!=null?_restStyle$transform:[]),(0,_toConsumableArray2.default)((_customReanimatedStyl3=(_customReanimatedStyl4=customReanimatedStyleRef.value)==null?void 0:_customReanimatedStyl4.transform)!=null?_customReanimatedStyl3:[]))});};anonymous.__closure={size:size,defaultDotSize:defaultDotSize,dotStyle:dotStyle,activeDotStyle:activeDotStyle,animValue:animValue,index:index,count:count,interpolate:_reactNativeReanimated.interpolate,Extrapolation:_reactNativeReanimated.Extrapolation,interpolateColor:_reactNativeReanimated.interpolateColor,customReanimatedStyleRef:customReanimatedStyleRef};anonymous.__workletHash=9217897742613;anonymous.__initData=_worklet_9217897742613_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[animValue,index,count,horizontal,dotStyle,activeDotStyle,customReanimatedStyle]);return(0,_jsxRuntime.jsx)(_reactNative.TouchableWithoutFeedback,{onPress:onPress,children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{overflow:"hidden",transform:[{rotateZ:horizontal?"90deg":"0deg"}]},dotStyle,animStyle],children:children})});};exports.PaginationItem=PaginationItem;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.PaginationItem=void 0;var _toConsumableArray2=_interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));var _objectWithoutProperties2=_interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactNativeReanimated=_interopRequireWildcard(require("react-native-reanimated"));var _jsxRuntime=require("react/jsx-runtime");var _excluded=["width","height","borderRadius","backgroundColor"],_excluded2=["width","height","borderRadius","backgroundColor"];var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}var _worklet_10273207657391_init_data={code:"function anonymous(){const{runOnJS,handleCustomAnimation,animValue}=this.__closure;var _animValue;runOnJS(handleCustomAnimation)((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value);}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AAyDkB,QAAAA,UAAA,EAAM,kEAAAC,WAAA,4GACpBC\",\"names\":[\"anonymous\",\"_animValue\",\"runOnJS\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx\"]}",version:"3.10.1"};var _worklet_9217897742613_init_data={code:"function anonymous(){const{size,defaultDotSize,dotStyle,activeDotStyle,animValue,index,count,interpolate,Extrapolation,interpolateColor,customReanimatedStyleRef}=this.__closure;var _dotStyle,_activeDotStyle,_animValue,_animValue2,_animValue3,_ref,_ref2,_customReanimatedStyl,_restStyle$transform,_customReanimatedStyl2,_customReanimatedStyl3;const{width=size||defaultDotSize,height=size||defaultDotSize,borderRadius:borderRadius,backgroundColor=\"#FFF\",...restDotStyle}=(_dotStyle=dotStyle)!==null&&_dotStyle!==void 0?_dotStyle:{};const{width:activeWidth=width,height:activeHeight=height,borderRadius:activeBorderRadius,backgroundColor:activeBackgroundColor=\"#000\",...restActiveDotStyle}=(_activeDotStyle=activeDotStyle)!==null&&_activeDotStyle!==void 0?_activeDotStyle:{};let val=Math.abs(((_animValue=animValue)===null||_animValue===void 0?void 0:_animValue.value)-index);if(index===0&&((_animValue2=animValue)===null||_animValue2===void 0?void 0:_animValue2.value)>count-1)val=Math.abs(((_animValue3=animValue)===null||_animValue3===void 0?void 0:_animValue3.value)-count);const inputRange=[0,1,2];const restStyle=(_ref=val===0?restActiveDotStyle:restDotStyle)!==null&&_ref!==void 0?_ref:{};return{width:interpolate(val,inputRange,[activeWidth,width,width],Extrapolation.CLAMP),height:interpolate(val,inputRange,[activeHeight,height,height],Extrapolation.CLAMP),borderRadius:interpolate(val,inputRange,[(_ref2=activeBorderRadius!==null&&activeBorderRadius!==void 0?activeBorderRadius:borderRadius)!==null&&_ref2!==void 0?_ref2:0,borderRadius!==null&&borderRadius!==void 0?borderRadius:0,borderRadius!==null&&borderRadius!==void 0?borderRadius:0],Extrapolation.CLAMP),backgroundColor:interpolateColor(val,inputRange,[activeBackgroundColor,backgroundColor,backgroundColor]),...restStyle,...((_customReanimatedStyl=customReanimatedStyleRef.value)!==null&&_customReanimatedStyl!==void 0?_customReanimatedStyl:{}),transform:[...((_restStyle$transform=restStyle===null||restStyle===void 0?void 0:restStyle.transform)!==null&&_restStyle$transform!==void 0?_restStyle$transform:[]),...((_customReanimatedStyl2=(_customReanimatedStyl3=customReanimatedStyleRef.value)===null||_customReanimatedStyl3===void 0?void 0:_customReanimatedStyl3.transform)!==null&&_customReanimatedStyl2!==void 0?_customReanimatedStyl2:[])]};}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx",sourceMap:"{\"version\":3,\"mappings\":\"AA6DqC,QAAAA,UAAA,EAAoB,gKAAAC,UAAA,CAAAC,eAAA,CAAAC,UAAA,CAAAC,WAAA,CAAAC,WAAA,CAAAC,IAAA,CAAAC,KAAA,CAAAC,qBAAA,CAAAC,oBAAA,CAAAC,sBAAA,CAAAC,sBAAA,OACrDC,KAAM,CAAAC,IAAA,EAAAC,eACJF,MAAK,CAAGC,IAAI,EAAIC,eAChBC,YAASF,CAAIG,aACbA,uBACAC,iBACA,CAAGC,kBAAH,IAAGA,IAAH,EAAGA,kBAAH,CAAGA,SAAH,CAAGA,GALC,MAONN,KAAM,CAAAO,WAAA,CAAAP,KAPA,CAQJA,MAAK,CAAEO,YAAW,CAAGP,MARjB,CASJG,YAAQK,mBATJ,CAUJJ,eAAcK,sBAHV,OAPA,CAWJJ,qBAXI,EAYJ,CAAGK,8BAAH,IAAGA,IAAH,EAAGA,wBAAH,CAAGA,eAAH,CAAGA,EAZC,CAOA,GAAAC,IAAA,CAAAC,IAAA,CAAAC,GAAA,GAAAtB,UAMFuB,UANE,UAAAvB,UAAA,iBAAAA,UAAN,CAAAwB,KAAM,EAANC,KAAM,EAON,GAAIL,KAAG,GAAO,CAAVA,EAAeM,2BAAS,IAATA,yCAAWF,MAAXE,EAAmBD,KAAtC,GAAAL,GAAA,CAAAC,IAAA,CAAAC,GAAA,GAAApB,WAAA,CAAAwB,SAAA,UAAAxB,WAAA,iBAAAA,WAAA,CAAAsB,KAAA,EAAAG,KAAA,EACA,KAAIF,YAAeC,OAAnB,CAEA,KAAME,WAAU,CAAGzB,IAAI,CAAGiB,GAA1B,IAA0B,CAA1BD,kBAA0B,CAA1BJ,YAAgB,IAAhB,IAAgB,EAAhBZ,IAAA,SAAgB,CAAhBA,IAAgB,CAAhB,GACA,MAAM0B,CAENpB,KAAO,CAAAqB,WAAA,CAAAV,GAAA,CAAAQ,UAAA,EAAAZ,WAAA,CAAAP,KAAA,CAAAA,KAAA,EAAAsB,aAAA,CAAAC,KAAA,CAFDH,CAGJpB,MAAK,CAAEqB,WAAYV,KAAKQ,UAALR,CAAkBJ,cAAaP,MAAbO,CAAoBP,MAApBO,CAAlBI,CAA8CW,aAAcC,MAA5DZ,CAHfS,CAIJjB,YAAQkB,YAAiBF,gBAAaX,OAAD,CAAeL,kBAAiBmB,OAAjBnB,EAA+BoB,kBAF9E,SAE+CpB,CAF/CM,kBAE+CN,CAF/CC,YAEiCI,IAFjC,IAEiCA,EAFjCb,KAAA,SAEiCa,CAFjCb,KAEiCa,CAFjC,CAEiCA,CAFjCJ,YAAA,SAAAA,YAAA,UAAAA,YAAA,EAEiCI,CAFjCJ,YAAA,SAAAA,YAAA,UAAAA,YAAA,EAEiCI,CAAbW,CAFpBG,aAAA,CAAAC,KAEoBJ,CAJrBC,CAKJhB,eAAciB,iBAEZF,gBACA,CAAAK,qBAAA,CAAAnB,eAAA,CAACI,eAAD,CADAU,CAPEC,CAWJf,YAXIe,CAgBJ,IAAGA,sBAdE,CAAAK,wBAAA,CAAAV,KAcFK,IAdE,IAcFA,EAdExB,qBAAA,SAcFwB,CAdExB,qBAcFwB,CAdE,EAcL,CAhBIA,CAiBJM,SAAA,OAAA7B,oBAAI4B,aAAyBV,IAAzBU,EAAJL,SAAA,SAAIK,CAAJ,MAAIA,CAAJL,SAAA,CAAAM,SAAA,UAAA7B,oBAfK,SAeL,CAfKA,oBAeL,CAfK,EAeL,EAfK,KAAAC,sBAAA,EAAAC,sBAAA,CAAA0B,wBAAA,CAAAV,KAAA,UAAAhB,sBAAA,iBAAAA,sBAAA,CAAA2B,SAAA,UAAA5B,sBAAA,UAAAA,sBAAA,IAeL,CAjBIsB,CAAN,CAEO\",\"names\":[\"anonymous\",\"_dotStyle\",\"_activeDotStyle\",\"_animValue\",\"_animValue2\",\"_animValue3\",\"_ref\",\"_ref2\",\"_customReanimatedStyl\",\"_restStyle$transform\",\"_customReanimatedStyl2\",\"_customReanimatedStyl3\",\"width\",\"size\",\"defaultDotSize\",\"height\",\"borderRadius\",\"backgroundColor\",\"restDotStyle\",\"activeWidth\",\"activeHeight\",\"activeBorderRadius\",\"restActiveDotStyle\",\"val\",\"Math\",\"abs\",\"activeDotStyle\",\"value\",\"index\",\"animValue\",\"count\",\"inputRange\",\"restStyle\",\"interpolate\",\"Extrapolation\",\"CLAMP\",\"activeBackgroundColor\",\"customReanimatedStyleRef\",\"transform\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/PaginationItem.tsx\"]}",version:"3.10.1"};var PaginationItem=function PaginationItem(props){var defaultDotSize=10;var animValue=props.animValue,dotStyle=props.dotStyle,activeDotStyle=props.activeDotStyle,index=props.index,count=props.count,size=props.size,horizontal=props.horizontal,children=props.children,customReanimatedStyle=props.customReanimatedStyle,onPress=props.onPress,accessibilityLabel=props.accessibilityLabel;var customReanimatedStyleRef=(0,_reactNativeReanimated.useSharedValue)({});var handleCustomAnimation=function handleCustomAnimation(progress){var _customReanimatedStyl;customReanimatedStyleRef.value=(_customReanimatedStyl=customReanimatedStyle==null?void 0:customReanimatedStyle(progress,index,count))!=null?_customReanimatedStyl:{};};(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-4,-27];var anonymous=function anonymous(){(0,_reactNativeReanimated.runOnJS)(handleCustomAnimation)(animValue==null?void 0:animValue.value);};anonymous.__closure={runOnJS:_reactNativeReanimated.runOnJS,handleCustomAnimation:handleCustomAnimation,animValue:animValue};anonymous.__workletHash=10273207657391;anonymous.__initData=_worklet_10273207657391_init_data;anonymous.__stackDetails=_e;return anonymous;}());var animStyle=(0,_reactNativeReanimated.useAnimatedStyle)(function(){var _e=[new global.Error(),-12,-27];var anonymous=function anonymous(){var _ref3,_ref4,_customReanimatedStyl2,_restStyle$transform,_customReanimatedStyl3,_customReanimatedStyl4;var _ref=dotStyle!=null?dotStyle:{},_ref$width=_ref.width,width=_ref$width===void 0?size||defaultDotSize:_ref$width,_ref$height=_ref.height,height=_ref$height===void 0?size||defaultDotSize:_ref$height,borderRadius=_ref.borderRadius,_ref$backgroundColor=_ref.backgroundColor,backgroundColor=_ref$backgroundColor===void 0?"#FFF":_ref$backgroundColor,restDotStyle=(0,_objectWithoutProperties2.default)(_ref,_excluded);var _ref2=activeDotStyle!=null?activeDotStyle:{},_ref2$width=_ref2.width,activeWidth=_ref2$width===void 0?width:_ref2$width,_ref2$height=_ref2.height,activeHeight=_ref2$height===void 0?height:_ref2$height,activeBorderRadius=_ref2.borderRadius,_ref2$backgroundColor=_ref2.backgroundColor,activeBackgroundColor=_ref2$backgroundColor===void 0?"#000":_ref2$backgroundColor,restActiveDotStyle=(0,_objectWithoutProperties2.default)(_ref2,_excluded2);var val=Math.abs((animValue==null?void 0:animValue.value)-index);if(index===0&&(animValue==null?void 0:animValue.value)>count-1)val=Math.abs((animValue==null?void 0:animValue.value)-count);var inputRange=[0,1,2];var restStyle=(_ref3=val===0?restActiveDotStyle:restDotStyle)!=null?_ref3:{};return Object.assign({width:(0,_reactNativeReanimated.interpolate)(val,inputRange,[activeWidth,width,width],_reactNativeReanimated.Extrapolation.CLAMP),height:(0,_reactNativeReanimated.interpolate)(val,inputRange,[activeHeight,height,height],_reactNativeReanimated.Extrapolation.CLAMP),borderRadius:(0,_reactNativeReanimated.interpolate)(val,inputRange,[(_ref4=activeBorderRadius!=null?activeBorderRadius:borderRadius)!=null?_ref4:0,borderRadius!=null?borderRadius:0,borderRadius!=null?borderRadius:0],_reactNativeReanimated.Extrapolation.CLAMP),backgroundColor:(0,_reactNativeReanimated.interpolateColor)(val,inputRange,[activeBackgroundColor,backgroundColor,backgroundColor])},restStyle,(_customReanimatedStyl2=customReanimatedStyleRef.value)!=null?_customReanimatedStyl2:{},{transform:[].concat((0,_toConsumableArray2.default)((_restStyle$transform=restStyle==null?void 0:restStyle.transform)!=null?_restStyle$transform:[]),(0,_toConsumableArray2.default)((_customReanimatedStyl3=(_customReanimatedStyl4=customReanimatedStyleRef.value)==null?void 0:_customReanimatedStyl4.transform)!=null?_customReanimatedStyl3:[]))});};anonymous.__closure={size:size,defaultDotSize:defaultDotSize,dotStyle:dotStyle,activeDotStyle:activeDotStyle,animValue:animValue,index:index,count:count,interpolate:_reactNativeReanimated.interpolate,Extrapolation:_reactNativeReanimated.Extrapolation,interpolateColor:_reactNativeReanimated.interpolateColor,customReanimatedStyleRef:customReanimatedStyleRef};anonymous.__workletHash=9217897742613;anonymous.__initData=_worklet_9217897742613_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[animValue,index,count,horizontal,dotStyle,activeDotStyle,customReanimatedStyle]);return(0,_jsxRuntime.jsx)(_reactNative.Pressable,{onPress:onPress,accessibilityLabel:accessibilityLabel,accessibilityRole:"button",accessibilityHint:animValue.value===index?"":`Go to ${accessibilityLabel}`,accessibilityState:{selected:animValue.value===index},children:(0,_jsxRuntime.jsx)(_reactNativeReanimated.default.View,{style:[{overflow:"hidden",transform:[{rotateZ:horizontal?"90deg":"0deg"}]},dotStyle,animStyle],children:children})});};exports.PaginationItem=PaginationItem;
|
|
2
2
|
//# sourceMappingURL=PaginationItem.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["PaginationItem.tsx"],"names":["PaginationItem","props","defaultDotSize","animValue","dotStyle","activeDotStyle","index","count","size","horizontal","children","customReanimatedStyle","onPress","customReanimatedStyleRef","handleCustomAnimation","progress","value","runOnJS","animStyle","width","height","borderRadius","backgroundColor","restDotStyle","activeWidth","activeHeight","activeBorderRadius","activeBackgroundColor","restActiveDotStyle","val","Math","abs","inputRange","restStyle","Extrapolation","CLAMP","transform","interpolate","interpolateColor","overflow","rotateZ"],"mappings":"8XACA,oDACA,yCAGA,uF,upOAmBO,GAAMA,CAAAA,
|
|
1
|
+
{"version":3,"sources":["PaginationItem.tsx"],"names":["PaginationItem","props","defaultDotSize","animValue","dotStyle","activeDotStyle","index","count","size","horizontal","children","customReanimatedStyle","onPress","accessibilityLabel","customReanimatedStyleRef","handleCustomAnimation","progress","value","runOnJS","animStyle","width","height","borderRadius","backgroundColor","restDotStyle","activeWidth","activeHeight","activeBorderRadius","activeBackgroundColor","restActiveDotStyle","val","Math","abs","inputRange","restStyle","Extrapolation","CLAMP","transform","interpolate","interpolateColor","selected","overflow","rotateZ"],"mappings":"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","sourcesContent":["import type { PropsWithChildren } from \"react\";\nimport React from \"react\";\nimport { Pressable } from \"react-native\";\nimport type { ViewStyle } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\nimport Animated, {\n Extrapolation,\n interpolate,\n interpolateColor,\n useAnimatedStyle,\n runOnJS,\n useSharedValue,\n useDerivedValue,\n} from \"react-native-reanimated\";\n\nimport type { DefaultStyle } from \"react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes\";\n\nexport type DotStyle = Omit<ViewStyle, \"width\" | \"height\" | \"backgroundColor\" | \"borderRadius\"> & {\n width?: number;\n height?: number;\n backgroundColor?: string;\n borderRadius?: number;\n};\n\nexport const PaginationItem: React.FC<\n PropsWithChildren<{\n index: number;\n count: number;\n size?: number;\n animValue: SharedValue<number>;\n horizontal?: boolean;\n dotStyle?: DotStyle;\n activeDotStyle?: DotStyle;\n onPress: () => void;\n customReanimatedStyle?: (progress: number, index: number, length: number) => DefaultStyle;\n accessibilityLabel?: string;\n }>\n> = (props) => {\n const defaultDotSize = 10;\n const {\n animValue,\n dotStyle,\n activeDotStyle,\n index,\n count,\n size,\n horizontal,\n children,\n customReanimatedStyle,\n onPress,\n accessibilityLabel,\n } = props;\n const customReanimatedStyleRef = useSharedValue<DefaultStyle>({});\n const handleCustomAnimation = (progress: number) => {\n customReanimatedStyleRef.value = customReanimatedStyle?.(progress, index, count) ?? {};\n };\n\n useDerivedValue(() => {\n runOnJS(handleCustomAnimation)(animValue?.value);\n });\n\n const animStyle = useAnimatedStyle((): DefaultStyle => {\n const {\n width = size || defaultDotSize,\n height = size || defaultDotSize,\n borderRadius,\n backgroundColor = \"#FFF\",\n ...restDotStyle\n } = dotStyle ?? {};\n const {\n width: activeWidth = width,\n height: activeHeight = height,\n borderRadius: activeBorderRadius,\n backgroundColor: activeBackgroundColor = \"#000\",\n ...restActiveDotStyle\n } = activeDotStyle ?? {};\n let val = Math.abs(animValue?.value - index);\n if (index === 0 && animValue?.value > count - 1) val = Math.abs(animValue?.value - count);\n\n const inputRange = [0, 1, 2];\n const restStyle = (val === 0 ? restActiveDotStyle : restDotStyle) ?? {};\n\n return {\n width: interpolate(val, inputRange, [activeWidth, width, width], Extrapolation.CLAMP),\n height: interpolate(val, inputRange, [activeHeight, height, height], Extrapolation.CLAMP),\n borderRadius: interpolate(\n val,\n inputRange,\n [activeBorderRadius ?? borderRadius ?? 0, borderRadius ?? 0, borderRadius ?? 0],\n Extrapolation.CLAMP\n ),\n backgroundColor: interpolateColor(val, inputRange, [\n activeBackgroundColor,\n backgroundColor,\n backgroundColor,\n ]),\n ...restStyle,\n ...(customReanimatedStyleRef.value ?? {}),\n transform: [\n ...(restStyle?.transform ?? []),\n ...(customReanimatedStyleRef.value?.transform ?? []),\n ] as DefaultStyle[\"transform\"],\n };\n }, [animValue, index, count, horizontal, dotStyle, activeDotStyle, customReanimatedStyle]);\n\n return (\n <Pressable\n onPress={onPress}\n accessibilityLabel={accessibilityLabel}\n accessibilityRole=\"button\"\n accessibilityHint={animValue.value === index ? \"\" : `Go to ${accessibilityLabel}`}\n accessibilityState={{ selected: animValue.value === index }}\n >\n <Animated.View\n style={[\n {\n overflow: \"hidden\",\n transform: [\n {\n rotateZ: horizontal ? \"90deg\" : \"0deg\",\n },\n ],\n },\n dotStyle,\n animStyle,\n ]}\n >\n {children}\n </Animated.View>\n </Pressable>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Custom=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _PaginationItem=require("./PaginationItem");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/index.tsx";var Custom=function Custom(props){var _dotStyle$width,_activeDotStyle$width,_dotStyle$height,_activeDotStyle$heigh;var activeDotStyle=props.activeDotStyle,dotStyle=props.dotStyle,progress=props.progress,_props$horizontal=props.horizontal,horizontal=_props$horizontal===void 0?true:_props$horizontal,data=props.data,size=props.size,containerStyle=props.containerStyle,renderItem=props.renderItem,_onPress=props.onPress,customReanimatedStyle=props.customReanimatedStyle;if(typeof size==="string"||typeof(dotStyle==null?void 0:dotStyle.width)==="string"||typeof(dotStyle==null?void 0:dotStyle.height)==="string"||typeof(activeDotStyle==null?void 0:activeDotStyle.width)==="string"||typeof(activeDotStyle==null?void 0:activeDotStyle.height)==="string")throw new Error("size/width/height must be a number");var maxItemWidth=Math.max(size!=null?size:0,(_dotStyle$width=dotStyle==null?void 0:dotStyle.width)!=null?_dotStyle$width:0,(_activeDotStyle$width=activeDotStyle==null?void 0:activeDotStyle.width)!=null?_activeDotStyle$width:0);var maxItemHeight=Math.max(size!=null?size:0,(_dotStyle$height=dotStyle==null?void 0:dotStyle.height)!=null?_dotStyle$height:0,(_activeDotStyle$heigh=activeDotStyle==null?void 0:activeDotStyle.height)!=null?_activeDotStyle$heigh:0);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{justifyContent:"space-between",alignSelf:"center",minWidth:maxItemWidth,minHeight:maxItemHeight},horizontal?{flexDirection:"row"}:{flexDirection:"column"},containerStyle],children:data.map(function(item,index){return(0,_jsxRuntime.jsx)(_PaginationItem.PaginationItem,{index:index,size:size,count:data.length,dotStyle:dotStyle,animValue:progress,horizontal:!horizontal,activeDotStyle:activeDotStyle,customReanimatedStyle:customReanimatedStyle,onPress:function onPress(){return _onPress==null?void 0:_onPress(index);},children:renderItem==null?void 0:renderItem(item,index)},index);})});};exports.Custom=Custom;
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.Custom=void 0;var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _PaginationItem=require("./PaginationItem");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/components/Pagination/Custom/index.tsx";var Custom=function Custom(props){var _dotStyle$width,_activeDotStyle$width,_dotStyle$height,_activeDotStyle$heigh;var activeDotStyle=props.activeDotStyle,dotStyle=props.dotStyle,progress=props.progress,_props$horizontal=props.horizontal,horizontal=_props$horizontal===void 0?true:_props$horizontal,data=props.data,size=props.size,containerStyle=props.containerStyle,renderItem=props.renderItem,_onPress=props.onPress,customReanimatedStyle=props.customReanimatedStyle,carouselName=props.carouselName;if(typeof size==="string"||typeof(dotStyle==null?void 0:dotStyle.width)==="string"||typeof(dotStyle==null?void 0:dotStyle.height)==="string"||typeof(activeDotStyle==null?void 0:activeDotStyle.width)==="string"||typeof(activeDotStyle==null?void 0:activeDotStyle.height)==="string")throw new Error("size/width/height must be a number");var maxItemWidth=Math.max(size!=null?size:0,(_dotStyle$width=dotStyle==null?void 0:dotStyle.width)!=null?_dotStyle$width:0,(_activeDotStyle$width=activeDotStyle==null?void 0:activeDotStyle.width)!=null?_activeDotStyle$width:0);var maxItemHeight=Math.max(size!=null?size:0,(_dotStyle$height=dotStyle==null?void 0:dotStyle.height)!=null?_dotStyle$height:0,(_activeDotStyle$heigh=activeDotStyle==null?void 0:activeDotStyle.height)!=null?_activeDotStyle$heigh:0);return(0,_jsxRuntime.jsx)(_reactNative.View,{style:[{justifyContent:"space-between",alignSelf:"center",minWidth:maxItemWidth,minHeight:maxItemHeight},horizontal?{flexDirection:"row"}:{flexDirection:"column"},containerStyle],children:data.map(function(item,index){return(0,_jsxRuntime.jsx)(_PaginationItem.PaginationItem,{index:index,size:size,count:data.length,dotStyle:dotStyle,animValue:progress,horizontal:!horizontal,activeDotStyle:activeDotStyle,customReanimatedStyle:customReanimatedStyle,onPress:function onPress(){return _onPress==null?void 0:_onPress(index);},accessibilityLabel:`Slide ${index+1} of ${data.length} - ${carouselName}`,children:renderItem==null?void 0:renderItem(item,index)},index);})});};exports.Custom=Custom;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":["Custom","props","activeDotStyle","dotStyle","progress","horizontal","data","size","containerStyle","renderItem","onPress","customReanimatedStyle","width","height","Error","maxItemWidth","Math","max","maxItemHeight","justifyContent","alignSelf","minWidth","minHeight","flexDirection","map","item","index","length"],"mappings":"kKAAA,oDAEA,yCAMA,gD,
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":["Custom","props","activeDotStyle","dotStyle","progress","horizontal","data","size","containerStyle","renderItem","onPress","customReanimatedStyle","carouselName","width","height","Error","maxItemWidth","Math","max","maxItemHeight","justifyContent","alignSelf","minWidth","minHeight","flexDirection","map","item","index","length"],"mappings":"kKAAA,oDAEA,yCAMA,gD,0MAgBO,GAAMA,CAAAA,MAAM,CAAG,QAATA,CAAAA,MAAS,CAAeC,KAAf,CAAwC,kFAC5D,GACEC,CAAAA,cADF,CAYID,KAZJ,CACEC,cADF,CAEEC,QAFF,CAYIF,KAZJ,CAEEE,QAFF,CAGEC,QAHF,CAYIH,KAZJ,CAGEG,QAHF,mBAYIH,KAZJ,CAIEI,UAJF,CAIEA,UAJF,4BAIe,IAJf,mBAKEC,IALF,CAYIL,KAZJ,CAKEK,IALF,CAMEC,IANF,CAYIN,KAZJ,CAMEM,IANF,CAOEC,cAPF,CAYIP,KAZJ,CAOEO,cAPF,CAQEC,UARF,CAYIR,KAZJ,CAQEQ,UARF,CASEC,QATF,CAYIT,KAZJ,CASES,OATF,CAUEC,qBAVF,CAYIV,KAZJ,CAUEU,qBAVF,CAWEC,YAXF,CAYIX,KAZJ,CAWEW,YAXF,CAcA,GACE,MAAOL,CAAAA,IAAP,GAAgB,QAAhB,EACA,OAAOJ,QAAP,cAAOA,QAAQ,CAAEU,KAAjB,IAA2B,QAD3B,EAEA,OAAOV,QAAP,cAAOA,QAAQ,CAAEW,MAAjB,IAA4B,QAF5B,EAGA,OAAOZ,cAAP,cAAOA,cAAc,CAAEW,KAAvB,IAAiC,QAHjC,EAIA,OAAOX,cAAP,cAAOA,cAAc,CAAEY,MAAvB,IAAkC,QALpC,CAOE,KAAM,IAAIC,CAAAA,KAAJ,CAAU,oCAAV,CAAN,CAEF,GAAMC,CAAAA,YAAY,CAAGC,IAAI,CAACC,GAAL,CAASX,IAAT,OAASA,IAAT,CAAiB,CAAjB,kBAAoBJ,QAApB,cAAoBA,QAAQ,CAAEU,KAA9B,wBAAuC,CAAvC,wBAA0CX,cAA1C,cAA0CA,cAAc,CAAEW,KAA1D,8BAAmE,CAAnE,CAArB,CACA,GAAMM,CAAAA,aAAa,CAAGF,IAAI,CAACC,GAAL,CAASX,IAAT,OAASA,IAAT,CAAiB,CAAjB,mBAAoBJ,QAApB,cAAoBA,QAAQ,CAAEW,MAA9B,yBAAwC,CAAxC,wBAA2CZ,cAA3C,cAA2CA,cAAc,CAAEY,MAA3D,8BAAqE,CAArE,CAAtB,CAEA,MACE,oBAAC,iBAAD,EACE,KAAK,CAAE,CACL,CACEM,cAAc,CAAE,eADlB,CAEEC,SAAS,CAAE,QAFb,CAGEC,QAAQ,CAAEN,YAHZ,CAIEO,SAAS,CAAEJ,aAJb,CADK,CAOLd,UAAU,CACN,CACEmB,aAAa,CAAE,KADjB,CADM,CAIN,CACEA,aAAa,CAAE,QADjB,CAXC,CAcLhB,cAdK,CADT,UAkBGF,IAAI,CAACmB,GAAL,CAAS,SAACC,IAAD,CAAOC,KAAP,CAAiB,CACzB,MACE,oBAAC,8BAAD,EAEE,KAAK,CAAEA,KAFT,CAGE,IAAI,CAAEpB,IAHR,CAIE,KAAK,CAAED,IAAI,CAACsB,MAJd,CAKE,QAAQ,CAAEzB,QALZ,CAME,SAAS,CAAEC,QANb,CAOE,UAAU,CAAE,CAACC,UAPf,CAQE,cAAc,CAAEH,cARlB,CASE,qBAAqB,CAAES,qBATzB,CAUE,OAAO,CAAE,yBAAMD,CAAAA,QAAN,cAAMA,QAAO,CAAGiB,KAAH,CAAb,EAVX,CAWE,kBAAkB,CAAG,SAAQA,KAAK,CAAG,CAAE,OAAMrB,IAAI,CAACsB,MAAO,MAAKhB,YAAa,EAX7E,UAaGH,UAbH,cAaGA,UAAU,CAAGiB,IAAH,CAASC,KAAT,CAbb,EACOA,KADP,CADF,CAiBD,CAlBA,CAlBH,EADF,CAwCD,CAnEM,C","sourcesContent":["import React from \"react\";\nimport type { StyleProp, ViewStyle } from \"react-native\";\nimport { View } from \"react-native\";\nimport type { SharedValue } from \"react-native-reanimated\";\n\nimport type { DefaultStyle } from \"react-native-reanimated/lib/typescript/reanimated2/hook/commonTypes\";\n\nimport type { DotStyle } from \"./PaginationItem\";\nimport { PaginationItem } from \"./PaginationItem\";\n\nexport interface ShapeProps<T extends {}> {\n progress: SharedValue<number>;\n horizontal?: boolean;\n data: Array<T>;\n renderItem?: (item: T, index: number) => React.ReactNode;\n containerStyle?: StyleProp<ViewStyle>;\n dotStyle?: DotStyle;\n activeDotStyle?: DotStyle;\n size?: number;\n onPress?: (index: number) => void;\n customReanimatedStyle?: (progress: number, index: number, length: number) => DefaultStyle;\n carouselName?: string;\n}\n\nexport const Custom = <T extends {}>(props: ShapeProps<T>) => {\n const {\n activeDotStyle,\n dotStyle,\n progress,\n horizontal = true,\n data,\n size,\n containerStyle,\n renderItem,\n onPress,\n customReanimatedStyle,\n carouselName,\n } = props;\n\n if (\n typeof size === \"string\" ||\n typeof dotStyle?.width === \"string\" ||\n typeof dotStyle?.height === \"string\" ||\n typeof activeDotStyle?.width === \"string\" ||\n typeof activeDotStyle?.height === \"string\"\n )\n throw new Error(\"size/width/height must be a number\");\n\n const maxItemWidth = Math.max(size ?? 0, dotStyle?.width ?? 0, activeDotStyle?.width ?? 0);\n const maxItemHeight = Math.max(size ?? 0, dotStyle?.height ?? 0, activeDotStyle?.height ?? 0);\n\n return (\n <View\n style={[\n {\n justifyContent: \"space-between\",\n alignSelf: \"center\",\n minWidth: maxItemWidth,\n minHeight: maxItemHeight,\n },\n horizontal\n ? {\n flexDirection: \"row\",\n }\n : {\n flexDirection: \"column\",\n },\n containerStyle,\n ]}\n >\n {data.map((item, index) => {\n return (\n <PaginationItem\n key={index}\n index={index}\n size={size}\n count={data.length}\n dotStyle={dotStyle}\n animValue={progress}\n horizontal={!horizontal}\n activeDotStyle={activeDotStyle}\n customReanimatedStyle={customReanimatedStyle}\n onPress={() => onPress?.(index)}\n accessibilityLabel={`Slide ${index + 1} of ${data.length} - ${carouselName}`}\n >\n {renderItem?.(item, index)}\n </PaginationItem>\n );\n })}\n </View>\n );\n};\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _reactHooks=require("@testing-library/react-hooks");var _reactNative=require("react-native");var _store=require("../store");var _useCarouselController=require("./useCarouselController");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.test.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}jest.mock("react-native-reanimated",function(){var mockRunOnJS=jest.fn(function(fn){return function(){return fn.apply(void 0,arguments);};});var mockAnimatedReaction=jest.fn(function(deps,cb){var depsResult=deps();cb(depsResult);return function(){};});return{useSharedValue:jest.fn(function(initialValue){return{value:initialValue};}),useDerivedValue:jest.fn(function(callback){return{value:callback()};}),useAnimatedReaction:mockAnimatedReaction,withTiming:jest.fn(function(toValue,config,callback){if(callback)callback(true);return toValue;}),runOnJS:mockRunOnJS,mockAnimatedReaction:mockAnimatedReaction,mockRunOnJS:mockRunOnJS,Easing:{bezier:function bezier(){return{factory:function factory(){return 0;}};}}};});var _jest$requireMock=jest.requireMock("react-native-reanimated"),mockAnimatedReaction=_jest$requireMock.mockAnimatedReaction,mockRunOnJS=_jest$requireMock.mockRunOnJS;jest.mock("react",function(){var originalModule=jest.requireActual("react");return Object.assign({},originalModule,{useRef:jest.fn(function(initialValue){return{current:initialValue};}),useImperativeHandle:jest.fn(function(ref,createHandle){return createHandle();})});});var mockGlobalState={props:{overscrollEnabled:true,loop:true,pagingEnabled:true,snapEnabled:true,enabled:true,scrollAnimationDuration:500,withAnimation:undefined,dataLength:5,data:Array.from({length:5},function(_,i){return i;}),width:300,height:300,renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1}});},autoFillData:false,defaultIndex:0,autoPlayInterval:0,rawData:[],rawDataLength:0},common:{size:300,validLength:5},layout:{containerSize:{value:{width:300,height:300}},itemDimensions:{value:{}},updateItemDimensions:jest.fn(),updateContainerSize:jest.fn()}};var wrapper=function wrapper(_ref){var children=_ref.children;return(0,_jsxRuntime.jsx)(_store.GlobalStateContext.Provider,{value:mockGlobalState,children:children});};describe("useCarouselController",function(){var mockHandlerOffset;var ref;var defaultProps;beforeEach(function(){jest.clearAllMocks();mockHandlerOffset=(0,_reactNativeReanimated.useSharedValue)(0);ref=(0,_react.useRef)(null);defaultProps={ref:ref,size:300,loop:true,dataLength:5,handlerOffset:mockHandlerOffset,autoFillData:false,duration:300};mockHandlerOffset.value=0;mockAnimatedReaction.mockImplementation(function(deps,cb){var depsResult=deps();cb(depsResult);return function(){};});});it("should initialize with default index",function(){mockHandlerOffset.value=-600;var _renderHook=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{defaultIndex:2}));},{wrapper:wrapper}),result=_renderHook.result;expect(result.current.getCurrentIndex()).toBe(2);});it("should move to next slide",function(){var _renderHook2=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook2.result;(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-300);});it("should move to previous slide",function(){var _renderHook3=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook3.result;(0,_reactHooks.act)(function(){result.current.prev();});expect(mockHandlerOffset.value).toBe(300);});it("should handle loop behavior correctly",function(){var _renderHook4=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true}));},{wrapper:wrapper}),result=_renderHook4.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:4});});(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-1500);});it("should prevent movement when loop is disabled and at bounds",function(){var _renderHook5=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false}));},{wrapper:wrapper}),result=_renderHook5.result;(0,_reactHooks.act)(function(){result.current.prev();});expect(mockHandlerOffset.value).toBe(0);(0,_reactHooks.act)(function(){result.current.scrollTo({index:4});});(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-1200);});it("should scroll to specific index",function(){var _renderHook6=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook6.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:3});});expect(mockHandlerOffset.value).toBe(-900);});it("should handle animation callbacks",function(){var onFinished=jest.fn();var _renderHook7=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook7.result;(0,_reactHooks.act)(function(){result.current.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should respect animation duration",function(){var _renderHook8=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{duration:500}));},{wrapper:wrapper}),result=_renderHook8.result;var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should handle non-animated transitions",function(){var _renderHook9=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook9.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:2,animated:false});});expect(mockHandlerOffset.value).toBe(-600);});it("should handle multiple slide movements",function(){var _renderHook10=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook10.result;(0,_reactHooks.act)(function(){result.current.next({count:2});});expect(mockHandlerOffset.value).toBe(-600);});it("should handle animated reactions correctly",function(){(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper});expect(mockAnimatedReaction).toHaveBeenCalled();expect(mockRunOnJS).toHaveBeenCalled();});it("should handle runOnJS correctly",function(){var _renderHook11=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook11.result;(0,_reactHooks.act)(function(){result.current.next();});expect(mockRunOnJS).toHaveBeenCalled();});});describe("useCarouselController imperative handle",function(){var mockHandlerOffset;var ref;var defaultProps;beforeEach(function(){jest.clearAllMocks();mockHandlerOffset=(0,_reactNativeReanimated.useSharedValue)(0);ref=(0,_react.useRef)(null);defaultProps={ref:ref,size:300,loop:true,dataLength:5,handlerOffset:mockHandlerOffset,autoFillData:false,duration:300};mockHandlerOffset.value=0;});it("should maintain correct index through imperative calls",function(){var _renderHook12=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook12.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next();handle.next();});expect(handle.getCurrentIndex()).toBe(2);(0,_reactHooks.act)(function(){handle.prev();});expect(handle.getCurrentIndex()).toBe(1);(0,_reactHooks.act)(function(){handle.scrollTo({index:3});});expect(handle.getCurrentIndex()).toBe(3);});it("should handle animation callbacks through imperative calls",function(){var _renderHook13=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook13.result;var onFinished=jest.fn();var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should respect loop settings through imperative calls",function(){var _renderHook14=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false}));},{wrapper:wrapper}),result=_renderHook14.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.scrollTo({index:4});handle.next();});expect(handle.getCurrentIndex()).toBe(4);(0,_reactHooks.act)(function(){handle.scrollTo({index:0});handle.prev();});expect(handle.getCurrentIndex()).toBe(0);});it("should handle multiple slide movements through imperative calls",function(){var _renderHook15=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook15.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next({count:2});});expect(handle.getCurrentIndex()).toBe(2);expect(mockHandlerOffset.value).toBe(-600);});});
|
|
1
|
+
var _react=_interopRequireWildcard(require("react"));var _reactNativeReanimated=require("react-native-reanimated");var _reactHooks=require("@testing-library/react-hooks");var _reactNative=require("react-native");var _store=require("../store");var _useCarouselController=require("./useCarouselController");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useCarouselController.test.tsx";function _getRequireWildcardCache(nodeInterop){if(typeof WeakMap!=="function")return null;var cacheBabelInterop=new WeakMap();var cacheNodeInterop=new WeakMap();return(_getRequireWildcardCache=function _getRequireWildcardCache(nodeInterop){return nodeInterop?cacheNodeInterop:cacheBabelInterop;})(nodeInterop);}function _interopRequireWildcard(obj,nodeInterop){if(!nodeInterop&&obj&&obj.__esModule){return obj;}if(obj===null||typeof obj!=="object"&&typeof obj!=="function"){return{default:obj};}var cache=_getRequireWildcardCache(nodeInterop);if(cache&&cache.has(obj)){return cache.get(obj);}var newObj={};var hasPropertyDescriptor=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var key in obj){if(key!=="default"&&Object.prototype.hasOwnProperty.call(obj,key)){var desc=hasPropertyDescriptor?Object.getOwnPropertyDescriptor(obj,key):null;if(desc&&(desc.get||desc.set)){Object.defineProperty(newObj,key,desc);}else{newObj[key]=obj[key];}}}newObj.default=obj;if(cache){cache.set(obj,newObj);}return newObj;}jest.mock("react-native-reanimated",function(){var mockRunOnJS=jest.fn(function(fn){return function(){return fn.apply(void 0,arguments);};});var mockAnimatedReaction=jest.fn(function(deps,cb){var depsResult=deps();cb(depsResult);return function(){};});return{useSharedValue:jest.fn(function(initialValue){return{value:initialValue};}),useDerivedValue:jest.fn(function(callback){return{value:callback()};}),useAnimatedReaction:mockAnimatedReaction,withTiming:jest.fn(function(toValue,config,callback){if(callback)callback(true);return toValue;}),runOnJS:mockRunOnJS,mockAnimatedReaction:mockAnimatedReaction,mockRunOnJS:mockRunOnJS,Easing:{bezier:function bezier(){return{factory:function factory(){return 0;}};}}};});var _jest$requireMock=jest.requireMock("react-native-reanimated"),mockAnimatedReaction=_jest$requireMock.mockAnimatedReaction,mockRunOnJS=_jest$requireMock.mockRunOnJS;jest.mock("react",function(){var originalModule=jest.requireActual("react");return Object.assign({},originalModule,{useRef:jest.fn(function(initialValue){return{current:initialValue};}),useImperativeHandle:jest.fn(function(ref,createHandle){return createHandle();})});});var mockGlobalState={props:{overscrollEnabled:true,loop:true,pagingEnabled:true,snapEnabled:true,enabled:true,scrollAnimationDuration:500,withAnimation:undefined,dataLength:5,data:Array.from({length:5},function(_,i){return i;}),width:300,height:300,renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{style:{flex:1}});},autoFillData:false,defaultIndex:0,autoPlayInterval:0,rawData:[],rawDataLength:0},common:{size:300,validLength:5},layout:{containerSize:{value:{width:300,height:300}},itemDimensions:{value:{}},updateItemDimensions:jest.fn(),updateContainerSize:jest.fn()}};var wrapper=function wrapper(_ref){var children=_ref.children;return(0,_jsxRuntime.jsx)(_store.GlobalStateContext.Provider,{value:mockGlobalState,children:children});};describe("useCarouselController",function(){var mockHandlerOffset;var ref;var defaultProps;beforeEach(function(){jest.clearAllMocks();mockHandlerOffset=(0,_reactNativeReanimated.useSharedValue)(0);ref=(0,_react.useRef)(null);defaultProps={ref:ref,size:300,loop:true,dataLength:5,handlerOffset:mockHandlerOffset,autoFillData:false,duration:300};mockHandlerOffset.value=0;mockAnimatedReaction.mockImplementation(function(deps,cb){var depsResult=deps();cb(depsResult);return function(){};});});it("should initialize with default index",function(){mockHandlerOffset.value=-600;var _renderHook=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{defaultIndex:2}));},{wrapper:wrapper}),result=_renderHook.result;expect(result.current.getCurrentIndex()).toBe(2);});it("should move to next slide",function(){var _renderHook2=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook2.result;(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-300);});it("should move to previous slide",function(){var _renderHook3=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook3.result;(0,_reactHooks.act)(function(){result.current.prev();});expect(mockHandlerOffset.value).toBe(300);});it("should handle loop behavior correctly",function(){var _renderHook4=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true}));},{wrapper:wrapper}),result=_renderHook4.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:4});});(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-1500);});it("should prevent movement when loop is disabled and at bounds",function(){var _renderHook5=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false}));},{wrapper:wrapper}),result=_renderHook5.result;(0,_reactHooks.act)(function(){result.current.prev();});expect(mockHandlerOffset.value).toBe(0);(0,_reactHooks.act)(function(){result.current.scrollTo({index:4});});(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(-1200);});it("should scroll to specific index",function(){var _renderHook6=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook6.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:3});});expect(mockHandlerOffset.value).toBe(-900);});it("should handle animation callbacks",function(){var onFinished=jest.fn();var _renderHook7=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook7.result;(0,_reactHooks.act)(function(){result.current.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should respect animation duration",function(){var _renderHook8=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{duration:500}));},{wrapper:wrapper}),result=_renderHook8.result;var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should handle non-animated transitions",function(){var _renderHook9=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook9.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:2,animated:false});});expect(mockHandlerOffset.value).toBe(-600);});it("should handle multiple slide movements",function(){var _renderHook10=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook10.result;(0,_reactHooks.act)(function(){result.current.next({count:2});});expect(mockHandlerOffset.value).toBe(-600);});it("should handle animated reactions correctly",function(){(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper});expect(mockAnimatedReaction).toHaveBeenCalled();expect(mockRunOnJS).toHaveBeenCalled();});it("should handle runOnJS correctly",function(){var _renderHook11=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook11.result;(0,_reactHooks.act)(function(){result.current.next();});expect(mockRunOnJS).toHaveBeenCalled();});});describe("useCarouselController imperative handle",function(){var mockHandlerOffset;var ref;var defaultProps;beforeEach(function(){jest.clearAllMocks();mockHandlerOffset=(0,_reactNativeReanimated.useSharedValue)(0);ref=(0,_react.useRef)(null);defaultProps={ref:ref,size:300,loop:true,dataLength:5,handlerOffset:mockHandlerOffset,autoFillData:false,duration:300};mockHandlerOffset.value=0;});it("should maintain correct index through imperative calls",function(){var _renderHook12=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook12.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next();handle.next();});expect(handle.getCurrentIndex()).toBe(2);(0,_reactHooks.act)(function(){handle.prev();});expect(handle.getCurrentIndex()).toBe(1);(0,_reactHooks.act)(function(){handle.scrollTo({index:3});});expect(handle.getCurrentIndex()).toBe(3);});it("should handle animation callbacks through imperative calls",function(){var _renderHook13=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook13.result;var onFinished=jest.fn();var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next({animated:true,onFinished:onFinished});});expect(onFinished).toHaveBeenCalled();});it("should respect loop settings through imperative calls",function(){var _renderHook14=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false}));},{wrapper:wrapper}),result=_renderHook14.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.scrollTo({index:4});handle.next();});expect(handle.getCurrentIndex()).toBe(4);(0,_reactHooks.act)(function(){handle.scrollTo({index:0});handle.prev();});expect(handle.getCurrentIndex()).toBe(0);});it("should handle multiple slide movements through imperative calls",function(){var _renderHook15=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook15.result;var createHandle=_react.useImperativeHandle.mock.calls[0][1];var handle=createHandle();(0,_reactHooks.act)(function(){handle.next({count:2});});expect(handle.getCurrentIndex()).toBe(2);expect(mockHandlerOffset.value).toBe(-600);});});describe("useCarouselController edge cases and uncovered lines",function(){var mockHandlerOffset;var ref;var defaultProps;beforeEach(function(){jest.clearAllMocks();mockHandlerOffset=(0,_reactNativeReanimated.useSharedValue)(0);ref=(0,_react.useRef)(null);defaultProps={ref:ref,size:300,loop:false,dataLength:5,handlerOffset:mockHandlerOffset,autoFillData:false,duration:300};mockHandlerOffset.value=0;});it("should handle next() without animation - uncovered line 213-214",function(){var _renderHook16=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook16.result;var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.next({animated:false,onFinished:onFinished});});expect(mockHandlerOffset.value).toBe(-300);expect(onFinished).toHaveBeenCalled();});it("should handle prev() without animation - uncovered line 245-246",function(){var _renderHook17=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true}));},{wrapper:wrapper}),result=_renderHook17.result;(0,_reactHooks.act)(function(){result.current.next({animated:false});});var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.prev({animated:false,onFinished:onFinished});});expect(Math.abs(mockHandlerOffset.value)).toBe(0);expect(onFinished).toHaveBeenCalled();});it("should handle scrollTo() without animation when target equals current index - uncovered line 265",function(){var _renderHook18=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook18.result;(0,_reactHooks.act)(function(){result.current.next({animated:false});});var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.scrollTo({index:1,animated:false,onFinished:onFinished});});expect(onFinished).not.toHaveBeenCalled();expect(mockHandlerOffset.value).toBe(-300);});it("should handle scrollTo() without animation - uncovered line 294-296",function(){var _renderHook19=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true}));},{wrapper:wrapper}),result=_renderHook19.result;var onFinished=jest.fn();(0,_reactHooks.act)(function(){result.current.scrollTo({index:2,animated:false,onFinished:onFinished});});expect(mockHandlerOffset.value).toBe(-600);expect(onFinished).toHaveBeenCalled();});it("should handle scrollTo() with count parameter - uncovered line 321-326",function(){var _renderHook20=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook20.result;(0,_reactHooks.act)(function(){result.current.scrollTo({count:-2});});expect(mockHandlerOffset.value).toBe(0);(0,_reactHooks.act)(function(){result.current.scrollTo({count:2});});expect(mockHandlerOffset.value).toBe(-600);});it("should handle scrollTo() with invalid count (should return early)",function(){var _renderHook21=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook21.result;(0,_reactHooks.act)(function(){result.current.scrollTo({count:0});});expect(mockHandlerOffset.value).toBe(0);});it("should handle overscroll protection when overscrollEnabled is false",function(){var restrictedGlobalState=Object.assign({},mockGlobalState,{props:Object.assign({},mockGlobalState.props,{overscrollEnabled:false}),layout:Object.assign({},mockGlobalState.layout,{containerSize:{value:{width:300,height:300}}})});var restrictedWrapper=function restrictedWrapper(_ref2){var children=_ref2.children;return(0,_jsxRuntime.jsx)(_store.GlobalStateContext.Provider,{value:restrictedGlobalState,children:children});};var _renderHook22=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false,dataLength:4}));},{wrapper:restrictedWrapper}),result=_renderHook22.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:2,animated:false});});(0,_reactHooks.act)(function(){result.current.next();});expect(typeof mockHandlerOffset.value).toBe("number");});it("should call onScrollStart and onScrollEnd callbacks",function(){var onScrollStart=jest.fn();var onScrollEnd=jest.fn();var _renderHook23=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{onScrollStart:onScrollStart,onScrollEnd:onScrollEnd}));},{wrapper:wrapper}),result=_renderHook23.result;(0,_reactHooks.act)(function(){result.current.next({animated:true});});expect(onScrollStart).toHaveBeenCalled();expect(onScrollEnd).toHaveBeenCalled();});it("should handle disabled carousel (empty data)",function(){var _renderHook24=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{dataLength:0}));},{wrapper:wrapper}),result=_renderHook24.result;(0,_reactHooks.act)(function(){result.current.next();});expect(mockHandlerOffset.value).toBe(0);});it("should handle autoFillData with computedRealIndexWithAutoFillData",function(){var _renderHook25=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{autoFillData:true,dataLength:3}));},{wrapper:wrapper}),result=_renderHook25.result;(0,_reactHooks.act)(function(){result.current.next();});var currentIndex=result.current.getCurrentIndex();expect(typeof currentIndex).toBe("number");});it("should handle fixed direction in scrollTo",function(){var _renderHook26=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true,fixedDirection:1}));},{wrapper:wrapper}),result=_renderHook26.result;(0,_reactHooks.act)(function(){result.current.scrollTo({index:3,animated:false});});expect(mockHandlerOffset.value).toBe(-900);});it("should handle complex loop calculations in scrollTo",function(){var _renderHook27=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:true}));},{wrapper:wrapper}),result=_renderHook27.result;mockHandlerOffset.value=-1800;(0,_reactHooks.act)(function(){result.current.scrollTo({index:1,animated:false});});expect(typeof mockHandlerOffset.value).toBe("number");});it("should get shared index correctly",function(){var _renderHook28=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(defaultProps);},{wrapper:wrapper}),result=_renderHook28.result;var sharedIndex=result.current.getSharedIndex();expect(typeof sharedIndex).toBe("number");});it("should handle currentFixedPage calculation for non-loop mode",function(){var _renderHook29=(0,_reactHooks.renderHook)(function(){return(0,_useCarouselController.useCarouselController)(Object.assign({},defaultProps,{loop:false}));},{wrapper:wrapper}),result=_renderHook29.result;mockHandlerOffset.value=-450;(0,_reactHooks.act)(function(){result.current.next();});expect(typeof mockHandlerOffset.value).toBe("number");});});
|
|
2
2
|
//# sourceMappingURL=useCarouselController.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCarouselController.test.tsx"],"names":["jest","mock","mockRunOnJS","fn","mockAnimatedReaction","deps","cb","depsResult","useSharedValue","initialValue","value","useDerivedValue","callback","useAnimatedReaction","withTiming","toValue","config","runOnJS","Easing","bezier","factory","requireMock","originalModule","requireActual","useRef","current","useImperativeHandle","ref","createHandle","mockGlobalState","props","overscrollEnabled","loop","pagingEnabled","snapEnabled","enabled","scrollAnimationDuration","withAnimation","undefined","dataLength","data","Array","from","length","_","i","width","height","renderItem","flex","autoFillData","defaultIndex","autoPlayInterval","rawData","rawDataLength","common","size","validLength","layout","containerSize","itemDimensions","updateItemDimensions","updateContainerSize","wrapper","children","describe","mockHandlerOffset","defaultProps","beforeEach","clearAllMocks","handlerOffset","duration","mockImplementation","it","result","expect","getCurrentIndex","toBe","next","prev","scrollTo","index","onFinished","animated","toHaveBeenCalled","count","calls","handle"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { useSharedValue } from \"react-native-reanimated\";\n\nimport { act, renderHook } from \"@testing-library/react-hooks\";\n\nimport { useImperativeHandle, useRef } from \"react\";\nimport { View } from \"react-native\";\nimport { GlobalStateContext, IContext } from \"../store\";\nimport { ICarouselInstance } from \"../types\";\nimport { useCarouselController } from \"./useCarouselController\";\n\n// Mock Reanimated\njest.mock(\"react-native-reanimated\", () => {\n const mockRunOnJS = jest.fn((fn) => {\n return (...args: any[]) => {\n return fn(...args);\n };\n });\n\n const mockAnimatedReaction = jest.fn((deps, cb) => {\n const depsResult = deps();\n cb(depsResult);\n return () => {};\n });\n\n return {\n useSharedValue: jest.fn((initialValue) => ({\n value: initialValue,\n })),\n useDerivedValue: jest.fn((callback) => ({\n value: callback(),\n })),\n useAnimatedReaction: mockAnimatedReaction,\n withTiming: jest.fn((toValue, config, callback) => {\n if (callback) callback(true);\n\n return toValue;\n }),\n runOnJS: mockRunOnJS,\n mockAnimatedReaction,\n mockRunOnJS,\n Easing: {\n bezier: () => ({\n factory: () => 0,\n }),\n },\n };\n});\n\n// Get mock functions for testing\nconst { mockAnimatedReaction, mockRunOnJS } = jest.requireMock(\"react-native-reanimated\");\n\n// Update the React mock to include useRef\njest.mock(\"react\", () => {\n const originalModule = jest.requireActual(\"react\");\n return {\n ...originalModule,\n useRef: jest.fn((initialValue) => ({ current: initialValue })),\n useImperativeHandle: jest.fn((ref, createHandle) => createHandle()),\n };\n});\n\n// Add mock for GlobalStateContext\nconst mockGlobalState: IContext = {\n props: {\n overscrollEnabled: true,\n loop: true,\n pagingEnabled: true,\n snapEnabled: true,\n enabled: true,\n scrollAnimationDuration: 500,\n withAnimation: undefined,\n dataLength: 5,\n data: Array.from({ length: 5 }, (_, i) => i),\n width: 300,\n height: 300,\n renderItem: () => <View style={{ flex: 1 }} />,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n rawData: [],\n rawDataLength: 0,\n },\n common: {\n size: 300,\n validLength: 5,\n },\n layout: {\n // @ts-ignore\n containerSize: { value: { width: 300, height: 300 } },\n // @ts-ignore\n itemDimensions: { value: {} },\n updateItemDimensions: jest.fn(),\n updateContainerSize: jest.fn(),\n },\n};\n\n// Add wrapper for renderHook\nconst wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <GlobalStateContext.Provider value={mockGlobalState}>{children}</GlobalStateContext.Provider>\n);\n\ndescribe(\"useCarouselController\", () => {\n let mockHandlerOffset: ReturnType<typeof useSharedValue>;\n let ref: ReturnType<typeof useRef>;\n let defaultProps: any;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockHandlerOffset = useSharedValue(0);\n ref = useRef<ICarouselInstance>(null!);\n defaultProps = {\n ref,\n size: 300,\n loop: true,\n dataLength: 5,\n handlerOffset: mockHandlerOffset,\n autoFillData: false,\n duration: 300,\n };\n\n mockHandlerOffset.value = 0;\n mockAnimatedReaction.mockImplementation((deps: () => any, cb: (depsResult: any) => void) => {\n const depsResult = deps();\n cb(depsResult);\n return () => {};\n });\n });\n\n it(\"should initialize with default index\", () => {\n mockHandlerOffset.value = -600; // size * 2\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n defaultIndex: 2,\n }),\n { wrapper }\n );\n\n expect(result.current.getCurrentIndex()).toBe(2);\n });\n\n it(\"should move to next slide\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next();\n });\n\n expect(mockHandlerOffset.value).toBe(-300); // size * 1\n });\n\n it(\"should move to previous slide\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.prev();\n });\n\n expect(mockHandlerOffset.value).toBe(300); // size * -1\n });\n\n it(\"should handle loop behavior correctly\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true,\n }),\n { wrapper }\n );\n\n // Move to last slide\n act(() => {\n result.current.scrollTo({ index: 4 });\n });\n\n // Try to go next (should loop to first)\n act(() => {\n result.current.next();\n });\n\n expect(mockHandlerOffset.value).toBe(-1500); // size * 5\n });\n\n it(\"should prevent movement when loop is disabled and at bounds\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n }),\n { wrapper }\n );\n\n // Try to go previous at start\n act(() => {\n result.current.prev();\n });\n expect(mockHandlerOffset.value).toBe(0);\n\n // Go to end\n act(() => {\n result.current.scrollTo({ index: 4 });\n });\n\n // Try to go next at end\n act(() => {\n result.current.next();\n });\n expect(mockHandlerOffset.value).toBe(-1200); // size * 4\n });\n\n it(\"should scroll to specific index\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.scrollTo({ index: 3 });\n });\n\n expect(mockHandlerOffset.value).toBe(-900); // size * 3\n });\n\n it(\"should handle animation callbacks\", () => {\n const onFinished = jest.fn();\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next({\n animated: true,\n onFinished,\n });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should respect animation duration\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n duration: 500,\n }),\n { wrapper }\n );\n\n const onFinished = jest.fn();\n act(() => {\n result.current.next({\n animated: true,\n onFinished,\n });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should handle non-animated transitions\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.scrollTo({ index: 2, animated: false });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n\n it(\"should handle multiple slide movements\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next({ count: 2 });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n\n // it(\"should maintain correct index with autoFillData\", () => {\n // const { result } = renderHook(\n // () =>\n // useCarouselController({\n // ...defaultProps,\n // autoFillData: true,\n // dataLength: 3,\n // }),\n // { wrapper }\n // );\n\n // act(() => {\n // result.current.next();\n // result.current.next();\n // });\n\n // expect(result.current.getCurrentIndex()).toBe(2);\n // });\n\n it(\"should handle animated reactions correctly\", () => {\n renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n expect(mockAnimatedReaction).toHaveBeenCalled();\n expect(mockRunOnJS).toHaveBeenCalled();\n });\n\n it(\"should handle runOnJS correctly\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next();\n });\n\n expect(mockRunOnJS).toHaveBeenCalled();\n });\n});\n\ndescribe(\"useCarouselController imperative handle\", () => {\n let mockHandlerOffset: ReturnType<typeof useSharedValue>;\n let ref: ReturnType<typeof useRef>;\n let defaultProps: any;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockHandlerOffset = useSharedValue(0);\n ref = useRef<ICarouselInstance>(null!);\n defaultProps = {\n ref,\n size: 300,\n loop: true,\n dataLength: 5,\n handlerOffset: mockHandlerOffset,\n autoFillData: false,\n duration: 300,\n };\n mockHandlerOffset.value = 0;\n });\n\n // it(\"should expose imperative methods through ref\", () => {\n // renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // // Verify useImperativeHandle was called\n // expect(useImperativeHandle).toHaveBeenCalledWith(ref, expect.any(Function));\n\n // // Get the handle creator function\n // const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n // const handle = createHandle();\n\n // // Verify exposed methods\n // expect(handle).toHaveProperty(\"getCurrentIndex\");\n // expect(handle).toHaveProperty(\"next\");\n // expect(handle).toHaveProperty(\"prev\");\n // expect(handle).toHaveProperty(\"scrollTo\");\n // });\n\n it(\"should maintain correct index through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n // Test sequence of imperative calls\n act(() => {\n handle.next();\n handle.next();\n });\n expect(handle.getCurrentIndex()).toBe(2);\n\n act(() => {\n handle.prev();\n });\n expect(handle.getCurrentIndex()).toBe(1);\n\n act(() => {\n handle.scrollTo({ index: 3 });\n });\n expect(handle.getCurrentIndex()).toBe(3);\n });\n\n it(\"should handle animation callbacks through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n const onFinished = jest.fn();\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n act(() => {\n handle.next({ animated: true, onFinished });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should respect loop settings through imperative calls\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n }),\n { wrapper }\n );\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n // Try to go past the end\n act(() => {\n handle.scrollTo({ index: 4 });\n handle.next();\n });\n expect(handle.getCurrentIndex()).toBe(4);\n\n // Try to go before the start\n act(() => {\n handle.scrollTo({ index: 0 });\n handle.prev();\n });\n expect(handle.getCurrentIndex()).toBe(0);\n });\n\n it(\"should handle multiple slide movements through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n act(() => {\n handle.next({ count: 2 });\n });\n\n expect(handle.getCurrentIndex()).toBe(2);\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["useCarouselController.test.tsx"],"names":["jest","mock","mockRunOnJS","fn","mockAnimatedReaction","deps","cb","depsResult","useSharedValue","initialValue","value","useDerivedValue","callback","useAnimatedReaction","withTiming","toValue","config","runOnJS","Easing","bezier","factory","requireMock","originalModule","requireActual","useRef","current","useImperativeHandle","ref","createHandle","mockGlobalState","props","overscrollEnabled","loop","pagingEnabled","snapEnabled","enabled","scrollAnimationDuration","withAnimation","undefined","dataLength","data","Array","from","length","_","i","width","height","renderItem","flex","autoFillData","defaultIndex","autoPlayInterval","rawData","rawDataLength","common","size","validLength","layout","containerSize","itemDimensions","updateItemDimensions","updateContainerSize","wrapper","children","describe","mockHandlerOffset","defaultProps","beforeEach","clearAllMocks","handlerOffset","duration","mockImplementation","it","result","expect","getCurrentIndex","toBe","next","prev","scrollTo","index","onFinished","animated","toHaveBeenCalled","count","calls","handle","Math","abs","not","restrictedGlobalState","restrictedWrapper","onScrollStart","onScrollEnd","currentIndex","fixedDirection","sharedIndex","getSharedIndex"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { useSharedValue } from \"react-native-reanimated\";\n\nimport { act, renderHook } from \"@testing-library/react-hooks\";\n\nimport { useImperativeHandle, useRef } from \"react\";\nimport { View } from \"react-native\";\nimport { GlobalStateContext, IContext } from \"../store\";\nimport { ICarouselInstance } from \"../types\";\nimport { useCarouselController } from \"./useCarouselController\";\n\n// Mock Reanimated\njest.mock(\"react-native-reanimated\", () => {\n const mockRunOnJS = jest.fn((fn) => {\n return (...args: any[]) => {\n return fn(...args);\n };\n });\n\n const mockAnimatedReaction = jest.fn((deps, cb) => {\n const depsResult = deps();\n cb(depsResult);\n return () => {};\n });\n\n return {\n useSharedValue: jest.fn((initialValue) => ({\n value: initialValue,\n })),\n useDerivedValue: jest.fn((callback) => ({\n value: callback(),\n })),\n useAnimatedReaction: mockAnimatedReaction,\n withTiming: jest.fn((toValue, config, callback) => {\n if (callback) callback(true);\n\n return toValue;\n }),\n runOnJS: mockRunOnJS,\n mockAnimatedReaction,\n mockRunOnJS,\n Easing: {\n bezier: () => ({\n factory: () => 0,\n }),\n },\n };\n});\n\n// Get mock functions for testing\nconst { mockAnimatedReaction, mockRunOnJS } = jest.requireMock(\"react-native-reanimated\");\n\n// Update the React mock to include useRef\njest.mock(\"react\", () => {\n const originalModule = jest.requireActual(\"react\");\n return {\n ...originalModule,\n useRef: jest.fn((initialValue) => ({ current: initialValue })),\n useImperativeHandle: jest.fn((ref, createHandle) => createHandle()),\n };\n});\n\n// Add mock for GlobalStateContext\nconst mockGlobalState: IContext = {\n props: {\n overscrollEnabled: true,\n loop: true,\n pagingEnabled: true,\n snapEnabled: true,\n enabled: true,\n scrollAnimationDuration: 500,\n withAnimation: undefined,\n dataLength: 5,\n data: Array.from({ length: 5 }, (_, i) => i),\n width: 300,\n height: 300,\n renderItem: () => <View style={{ flex: 1 }} />,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n rawData: [],\n rawDataLength: 0,\n },\n common: {\n size: 300,\n validLength: 5,\n },\n layout: {\n // @ts-ignore\n containerSize: { value: { width: 300, height: 300 } },\n // @ts-ignore\n itemDimensions: { value: {} },\n updateItemDimensions: jest.fn(),\n updateContainerSize: jest.fn(),\n },\n};\n\n// Add wrapper for renderHook\nconst wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <GlobalStateContext.Provider value={mockGlobalState}>{children}</GlobalStateContext.Provider>\n);\n\ndescribe(\"useCarouselController\", () => {\n let mockHandlerOffset: ReturnType<typeof useSharedValue>;\n let ref: ReturnType<typeof useRef>;\n let defaultProps: any;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockHandlerOffset = useSharedValue(0);\n ref = useRef<ICarouselInstance>(null!);\n defaultProps = {\n ref,\n size: 300,\n loop: true,\n dataLength: 5,\n handlerOffset: mockHandlerOffset,\n autoFillData: false,\n duration: 300,\n };\n\n mockHandlerOffset.value = 0;\n mockAnimatedReaction.mockImplementation((deps: () => any, cb: (depsResult: any) => void) => {\n const depsResult = deps();\n cb(depsResult);\n return () => {};\n });\n });\n\n it(\"should initialize with default index\", () => {\n mockHandlerOffset.value = -600; // size * 2\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n defaultIndex: 2,\n }),\n { wrapper }\n );\n\n expect(result.current.getCurrentIndex()).toBe(2);\n });\n\n it(\"should move to next slide\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next();\n });\n\n expect(mockHandlerOffset.value).toBe(-300); // size * 1\n });\n\n it(\"should move to previous slide\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.prev();\n });\n\n expect(mockHandlerOffset.value).toBe(300); // size * -1\n });\n\n it(\"should handle loop behavior correctly\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true,\n }),\n { wrapper }\n );\n\n // Move to last slide\n act(() => {\n result.current.scrollTo({ index: 4 });\n });\n\n // Try to go next (should loop to first)\n act(() => {\n result.current.next();\n });\n\n expect(mockHandlerOffset.value).toBe(-1500); // size * 5\n });\n\n it(\"should prevent movement when loop is disabled and at bounds\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n }),\n { wrapper }\n );\n\n // Try to go previous at start\n act(() => {\n result.current.prev();\n });\n expect(mockHandlerOffset.value).toBe(0);\n\n // Go to end\n act(() => {\n result.current.scrollTo({ index: 4 });\n });\n\n // Try to go next at end\n act(() => {\n result.current.next();\n });\n expect(mockHandlerOffset.value).toBe(-1200); // size * 4\n });\n\n it(\"should scroll to specific index\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.scrollTo({ index: 3 });\n });\n\n expect(mockHandlerOffset.value).toBe(-900); // size * 3\n });\n\n it(\"should handle animation callbacks\", () => {\n const onFinished = jest.fn();\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next({\n animated: true,\n onFinished,\n });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should respect animation duration\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n duration: 500,\n }),\n { wrapper }\n );\n\n const onFinished = jest.fn();\n act(() => {\n result.current.next({\n animated: true,\n onFinished,\n });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should handle non-animated transitions\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.scrollTo({ index: 2, animated: false });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n\n it(\"should handle multiple slide movements\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next({ count: 2 });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n\n // it(\"should maintain correct index with autoFillData\", () => {\n // const { result } = renderHook(\n // () =>\n // useCarouselController({\n // ...defaultProps,\n // autoFillData: true,\n // dataLength: 3,\n // }),\n // { wrapper }\n // );\n\n // act(() => {\n // result.current.next();\n // result.current.next();\n // });\n\n // expect(result.current.getCurrentIndex()).toBe(2);\n // });\n\n it(\"should handle animated reactions correctly\", () => {\n renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n expect(mockAnimatedReaction).toHaveBeenCalled();\n expect(mockRunOnJS).toHaveBeenCalled();\n });\n\n it(\"should handle runOnJS correctly\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.next();\n });\n\n expect(mockRunOnJS).toHaveBeenCalled();\n });\n});\n\ndescribe(\"useCarouselController imperative handle\", () => {\n let mockHandlerOffset: ReturnType<typeof useSharedValue>;\n let ref: ReturnType<typeof useRef>;\n let defaultProps: any;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockHandlerOffset = useSharedValue(0);\n ref = useRef<ICarouselInstance>(null!);\n defaultProps = {\n ref,\n size: 300,\n loop: true,\n dataLength: 5,\n handlerOffset: mockHandlerOffset,\n autoFillData: false,\n duration: 300,\n };\n mockHandlerOffset.value = 0;\n });\n\n // it(\"should expose imperative methods through ref\", () => {\n // renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // // Verify useImperativeHandle was called\n // expect(useImperativeHandle).toHaveBeenCalledWith(ref, expect.any(Function));\n\n // // Get the handle creator function\n // const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n // const handle = createHandle();\n\n // // Verify exposed methods\n // expect(handle).toHaveProperty(\"getCurrentIndex\");\n // expect(handle).toHaveProperty(\"next\");\n // expect(handle).toHaveProperty(\"prev\");\n // expect(handle).toHaveProperty(\"scrollTo\");\n // });\n\n it(\"should maintain correct index through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n // Test sequence of imperative calls\n act(() => {\n handle.next();\n handle.next();\n });\n expect(handle.getCurrentIndex()).toBe(2);\n\n act(() => {\n handle.prev();\n });\n expect(handle.getCurrentIndex()).toBe(1);\n\n act(() => {\n handle.scrollTo({ index: 3 });\n });\n expect(handle.getCurrentIndex()).toBe(3);\n });\n\n it(\"should handle animation callbacks through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n const onFinished = jest.fn();\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n act(() => {\n handle.next({ animated: true, onFinished });\n });\n\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should respect loop settings through imperative calls\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n }),\n { wrapper }\n );\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n // Try to go past the end\n act(() => {\n handle.scrollTo({ index: 4 });\n handle.next();\n });\n expect(handle.getCurrentIndex()).toBe(4);\n\n // Try to go before the start\n act(() => {\n handle.scrollTo({ index: 0 });\n handle.prev();\n });\n expect(handle.getCurrentIndex()).toBe(0);\n });\n\n it(\"should handle multiple slide movements through imperative calls\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Get handle methods\n const createHandle = (useImperativeHandle as jest.Mock).mock.calls[0][1];\n const handle = createHandle();\n\n act(() => {\n handle.next({ count: 2 });\n });\n\n expect(handle.getCurrentIndex()).toBe(2);\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n});\n\ndescribe(\"useCarouselController edge cases and uncovered lines\", () => {\n let mockHandlerOffset: ReturnType<typeof useSharedValue>;\n let ref: ReturnType<typeof useRef>;\n let defaultProps: any;\n\n beforeEach(() => {\n jest.clearAllMocks();\n mockHandlerOffset = useSharedValue(0);\n ref = useRef<ICarouselInstance>(null!);\n defaultProps = {\n ref,\n size: 300,\n loop: false,\n dataLength: 5,\n handlerOffset: mockHandlerOffset,\n autoFillData: false,\n duration: 300,\n };\n mockHandlerOffset.value = 0;\n });\n\n it(\"should handle next() without animation - uncovered line 213-214\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n const onFinished = jest.fn();\n\n act(() => {\n result.current.next({ animated: false, onFinished });\n });\n\n expect(mockHandlerOffset.value).toBe(-300); // size * 1\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should handle prev() without animation - uncovered line 245-246\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true, // Enable loop to allow prev\n }),\n { wrapper }\n );\n\n // First move to a position where prev is valid\n act(() => {\n result.current.next({ animated: false }); // Move to index 1\n });\n\n const onFinished = jest.fn();\n\n act(() => {\n result.current.prev({ animated: false, onFinished });\n });\n\n // Should move back to index 0 (could be -0)\n expect(Math.abs(mockHandlerOffset.value)).toBe(0);\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should handle scrollTo() without animation when target equals current index - uncovered line 265\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Set index to 1\n act(() => {\n result.current.next({ animated: false });\n });\n\n const onFinished = jest.fn();\n\n // Try to scroll to same index\n act(() => {\n result.current.scrollTo({ index: 1, animated: false, onFinished });\n });\n\n // Should return early and not call onFinished\n expect(onFinished).not.toHaveBeenCalled();\n expect(mockHandlerOffset.value).toBe(-300); // Should remain unchanged\n });\n\n it(\"should handle scrollTo() without animation - uncovered line 294-296\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true,\n }),\n { wrapper }\n );\n const onFinished = jest.fn();\n\n act(() => {\n result.current.scrollTo({ index: 2, animated: false, onFinished });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n expect(onFinished).toHaveBeenCalled();\n });\n\n it(\"should handle scrollTo() with count parameter - uncovered line 321-326\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n // Test negative count\n act(() => {\n result.current.scrollTo({ count: -2 });\n });\n\n expect(mockHandlerOffset.value).toBe(0); // At start, can't go further back\n\n // Reset and test positive count\n act(() => {\n result.current.scrollTo({ count: 2 });\n });\n\n expect(mockHandlerOffset.value).toBe(-600); // size * 2\n });\n\n it(\"should handle scrollTo() with invalid count (should return early)\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n act(() => {\n result.current.scrollTo({ count: 0 }); // Should return early\n });\n\n expect(mockHandlerOffset.value).toBe(0); // Should remain unchanged\n });\n\n it(\"should handle overscroll protection when overscrollEnabled is false\", () => {\n const restrictedGlobalState = {\n ...mockGlobalState,\n props: {\n ...mockGlobalState.props,\n overscrollEnabled: false,\n },\n layout: {\n ...mockGlobalState.layout,\n containerSize: { value: { width: 300, height: 300 } },\n },\n } as IContext;\n\n const restrictedWrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => (\n <GlobalStateContext.Provider value={restrictedGlobalState}>\n {children}\n </GlobalStateContext.Provider>\n );\n\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n dataLength: 4,\n }),\n { wrapper: restrictedWrapper }\n );\n\n // Move to index 2 where remaining visible content would be too small\n act(() => {\n result.current.scrollTo({ index: 2, animated: false });\n });\n\n // Try to move next - should be blocked by overscroll protection\n act(() => {\n result.current.next();\n });\n\n // The test logic may vary, just ensure it moved\n expect(typeof mockHandlerOffset.value).toBe(\"number\");\n });\n\n it(\"should call onScrollStart and onScrollEnd callbacks\", () => {\n const onScrollStart = jest.fn();\n const onScrollEnd = jest.fn();\n\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n onScrollStart,\n onScrollEnd,\n }),\n { wrapper }\n );\n\n act(() => {\n result.current.next({ animated: true });\n });\n\n expect(onScrollStart).toHaveBeenCalled();\n expect(onScrollEnd).toHaveBeenCalled();\n });\n\n it(\"should handle disabled carousel (empty data)\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n dataLength: 0,\n }),\n { wrapper }\n );\n\n act(() => {\n result.current.next();\n });\n\n expect(mockHandlerOffset.value).toBe(0); // Should not move\n });\n\n it(\"should handle autoFillData with computedRealIndexWithAutoFillData\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n autoFillData: true,\n dataLength: 3,\n }),\n { wrapper }\n );\n\n act(() => {\n result.current.next();\n });\n\n const currentIndex = result.current.getCurrentIndex();\n expect(typeof currentIndex).toBe(\"number\");\n });\n\n it(\"should handle fixed direction in scrollTo\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true,\n fixedDirection: 1,\n }),\n { wrapper }\n );\n\n act(() => {\n result.current.scrollTo({ index: 3, animated: false });\n });\n\n expect(mockHandlerOffset.value).toBe(-900); // size * 3\n });\n\n it(\"should handle complex loop calculations in scrollTo\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: true,\n }),\n { wrapper }\n );\n\n // Set to a high offset to test loop boundary calculations\n mockHandlerOffset.value = -1800; // 6 * size, beyond data length\n\n act(() => {\n result.current.scrollTo({ index: 1, animated: false });\n });\n\n expect(typeof mockHandlerOffset.value).toBe(\"number\");\n });\n\n it(\"should get shared index correctly\", () => {\n const { result } = renderHook(() => useCarouselController(defaultProps), { wrapper });\n\n const sharedIndex = result.current.getSharedIndex();\n expect(typeof sharedIndex).toBe(\"number\");\n });\n\n it(\"should handle currentFixedPage calculation for non-loop mode\", () => {\n const { result } = renderHook(\n () =>\n useCarouselController({\n ...defaultProps,\n loop: false,\n }),\n { wrapper }\n );\n\n // Set a specific offset to test the calculation\n mockHandlerOffset.value = -450; // Between indices\n\n act(() => {\n result.current.next();\n });\n\n expect(typeof mockHandlerOffset.value).toBe(\"number\");\n });\n});\n"]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactHooks=require("@testing-library/react-hooks");var _useCommonVariables=require("./useCommonVariables");var input={vertical:false,width:700,height:350,loop:true,enabled:true,testID:"xxx",style:{width:"100%"},autoPlay:false,autoPlayInterval:2000,data:[0,1,2,3],pagingEnabled:true,defaultIndex:0,autoFillData:true,dataLength:4,rawData:[0,1,2,3],rawDataLength:4,scrollAnimationDuration:500,snapEnabled:true,overscrollEnabled:true};describe("useCommonVariables",function(){it("should return the correct values",(0,_asyncToGenerator2.default)(function*(){var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(input);});expect(hook.result.current.size).toMatchInlineSnapshot("700");expect(hook.result.current.validLength).toMatchInlineSnapshot("3");expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot("-0");}));});
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactHooks=require("@testing-library/react-hooks");var _useCommonVariables=require("./useCommonVariables");var input={vertical:false,width:700,height:350,loop:true,enabled:true,testID:"xxx",style:{width:"100%"},autoPlay:false,autoPlayInterval:2000,data:[0,1,2,3],renderItem:function renderItem(){return null;},pagingEnabled:true,defaultIndex:0,autoFillData:true,dataLength:4,rawData:[0,1,2,3],rawDataLength:4,scrollAnimationDuration:500,snapEnabled:true,overscrollEnabled:true};describe("useCommonVariables",function(){it("should return the correct values",(0,_asyncToGenerator2.default)(function*(){var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(input);});expect(hook.result.current.size).toMatchInlineSnapshot("700");expect(hook.result.current.validLength).toMatchInlineSnapshot("3");expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot("-0");}));it("should handle vertical orientation",function(){var verticalInput=Object.assign({},input,{vertical:true});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(verticalInput);});expect(hook.result.current.size).toBe(350);expect(hook.result.current.validLength).toBe(3);});it("should calculate defaultHandlerOffsetValue correctly with non-zero defaultIndex",function(){var inputWithDefaultIndex=Object.assign({},input,{defaultIndex:2});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(inputWithDefaultIndex);});expect(hook.result.current.handlerOffset.value).toBe(-1400);});it("should use custom defaultScrollOffsetValue when provided",function(){var customOffset={value:-500,addListener:jest.fn(),removeListener:jest.fn(),modify:jest.fn()};var inputWithCustomOffset=Object.assign({},input,{defaultScrollOffsetValue:customOffset});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(inputWithCustomOffset);});expect(hook.result.current.handlerOffset).toBe(customOffset);expect(hook.result.current.handlerOffset.value).toBe(-500);});it("should handle single data item",function(){var singleItemInput=Object.assign({},input,{dataLength:1,data:[0]});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(singleItemInput);});expect(hook.result.current.validLength).toBe(0);});it("should handle zero dataLength",function(){var emptyInput=Object.assign({},input,{dataLength:0,data:[]});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(emptyInput);});expect(hook.result.current.validLength).toBe(-1);});it("should handle negative defaultIndex",function(){var negativeIndexInput=Object.assign({},input,{defaultIndex:-1});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(negativeIndexInput);});expect(hook.result.current.handlerOffset.value).toBe(-700);});it("should handle loop disabled",function(){var noLoopInput=Object.assign({},input,{loop:false});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(noLoopInput);});expect(hook.result.current.size).toBe(700);expect(hook.result.current.validLength).toBe(3);});it("should update when props change",function(){var hook=(0,_reactHooks.renderHook)(function(_ref2){var props=_ref2.props;return(0,_useCommonVariables.useCommonVariables)(props);},{initialProps:{props:input}});expect(hook.result.current.size).toBe(700);var updatedInput=Object.assign({},input,{width:800});hook.rerender({props:updatedInput});expect(hook.result.current.size).toBe(800);});it("should handle dataLength changes",function(){var hook=(0,_reactHooks.renderHook)(function(_ref3){var props=_ref3.props;return(0,_useCommonVariables.useCommonVariables)(props);},{initialProps:{props:input}});expect(hook.result.current.validLength).toBe(3);var updatedInput=Object.assign({},input,{dataLength:6});hook.rerender({props:updatedInput});expect(hook.result.current.validLength).toBe(5);});it("should handle zero size (edge case)",function(){var zeroSizeInput=Object.assign({},input,{width:0});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(zeroSizeInput);});expect(hook.result.current.size).toBe(0);expect(hook.result.current.handlerOffset.value).toBe(-0);});it("should handle large defaultIndex",function(){var largeIndexInput=Object.assign({},input,{defaultIndex:10});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(largeIndexInput);});expect(hook.result.current.handlerOffset.value).toBe(-7000);});it("should handle vertical with zero height",function(){var verticalZeroHeightInput=Object.assign({},input,{vertical:true,height:0});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(verticalZeroHeightInput);});expect(hook.result.current.size).toBe(0);});it("should handle floating point dimensions",function(){var floatInput=Object.assign({},input,{width:700.5,height:350.25});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(floatInput);});expect(hook.result.current.size).toBe(700.5);});it("should calculate validLength correctly for different data lengths",function(){var testCases=[{dataLength:0,expected:-1},{dataLength:1,expected:0},{dataLength:5,expected:4},{dataLength:100,expected:99}];var _loop=function _loop(dataLength,expected){var testInput=Object.assign({},input,{dataLength:dataLength});var hook=(0,_reactHooks.renderHook)(function(){return(0,_useCommonVariables.useCommonVariables)(testInput);});expect(hook.result.current.validLength).toBe(expected);};for(var _ref4 of testCases){var dataLength=_ref4.dataLength;var expected=_ref4.expected;_loop(dataLength,expected);}});});
|
|
2
2
|
//# sourceMappingURL=useCommonVariables.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useCommonVariables.test.tsx"],"names":["input","vertical","width","height","loop","enabled","testID","style","autoPlay","autoPlayInterval","data","pagingEnabled","defaultIndex","autoFillData","dataLength","rawData","rawDataLength","scrollAnimationDuration","snapEnabled","overscrollEnabled","describe","it","hook","expect","result","current","size","toMatchInlineSnapshot","validLength","handlerOffset","value"],"mappings":"qLAAA,wDAEA,wDAIA,GAAMA,CAAAA,KAAK,CAAG,CACZC,QAAQ,CAAE,KADE,CAEZC,KAAK,CAAE,GAFK,CAGZC,MAAM,CAAE,GAHI,CAIZC,IAAI,CAAE,IAJM,CAKZC,OAAO,CAAE,IALG,CAMZC,MAAM,CAAE,KANI,CAOZC,KAAK,CAAE,CACLL,KAAK,CAAE,MADF,CAPK,CAUZM,QAAQ,CAAE,KAVE,CAWZC,gBAAgB,CAAE,IAXN,CAYZC,IAAI,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAZM,CAaZC,aAAa,CAAE,IAbH,CAcZC,YAAY,CAAE,CAdF,CAeZC,YAAY,CAAE,IAfF,CAgBZC,UAAU,CAAE,CAhBA,CAiBZC,OAAO,CAAE,CAAC,CAAD,CAAI,CAAJ,CAAO,CAAP,CAAU,CAAV,CAjBG,CAkBZC,aAAa,CAAE,CAlBH,CAmBZC,uBAAuB,CAAE,GAnBb,CAoBZC,WAAW,CAAE,IApBD,CAqBZC,iBAAiB,CAAE,IArBP,CAAd,CAwBAC,QAAQ,CAAC,oBAAD,CAAuB,UAAM,CACnCC,EAAE,CAAC,kCAAD,gCAAqC,WAAY,CACjD,GAAMC,CAAAA,IAAI,CAAG,2BAAW,iBAAM,2CAAmBtB,KAAnB,CAAN,EAAX,CAAb,CAEAuB,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBC,IAArB,CAAN,CAAiCC,qBAAjC,CAAuD,KAAvD,EACAJ,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBG,WAArB,CAAN,CAAwCD,qBAAxC,CAA8D,GAA9D,EACAJ,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBI,aAApB,CAAkCC,KAAnC,CAAN,CAAgDH,qBAAhD,CAAsE,IAAtE,EACD,CANC,EAAF,CAOD,CARO,CAAR","sourcesContent":["import { renderHook } from \"@testing-library/react-hooks\";\n\nimport { useCommonVariables } from \"./useCommonVariables\";\n\ntype UseCommonVariablesInput = Parameters<typeof useCommonVariables>[0];\n\nconst input = {\n vertical: false,\n width: 700,\n height: 350,\n loop: true,\n enabled: true,\n testID: \"xxx\",\n style: {\n width: \"100%\",\n },\n autoPlay: false,\n autoPlayInterval: 2000,\n data: [0, 1, 2, 3],\n pagingEnabled: true,\n defaultIndex: 0,\n autoFillData: true,\n dataLength: 4,\n rawData: [0, 1, 2, 3],\n rawDataLength: 4,\n scrollAnimationDuration: 500,\n snapEnabled: true,\n overscrollEnabled: true,\n} as unknown as UseCommonVariablesInput;\n\ndescribe(\"useCommonVariables\", () => {\n it(\"should return the correct values\", async () => {\n const hook = renderHook(() => useCommonVariables(input));\n\n expect(hook.result.current.size).toMatchInlineSnapshot(\"700\");\n expect(hook.result.current.validLength).toMatchInlineSnapshot(\"3\");\n expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot(\"-0\");\n });\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["useCommonVariables.test.tsx"],"names":["input","vertical","width","height","loop","enabled","testID","style","autoPlay","autoPlayInterval","data","renderItem","pagingEnabled","defaultIndex","autoFillData","dataLength","rawData","rawDataLength","scrollAnimationDuration","snapEnabled","overscrollEnabled","describe","it","hook","expect","result","current","size","toMatchInlineSnapshot","validLength","handlerOffset","value","verticalInput","toBe","inputWithDefaultIndex","customOffset","addListener","jest","fn","removeListener","modify","inputWithCustomOffset","defaultScrollOffsetValue","singleItemInput","emptyInput","negativeIndexInput","noLoopInput","props","initialProps","updatedInput","rerender","zeroSizeInput","largeIndexInput","verticalZeroHeightInput","floatInput","testCases","expected","testInput"],"mappings":"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","sourcesContent":["import { renderHook } from \"@testing-library/react-hooks\";\n\nimport { useCommonVariables } from \"./useCommonVariables\";\nimport { TInitializeCarouselProps } from \"./useInitProps\";\n\ntype UseCommonVariablesInput = Parameters<typeof useCommonVariables>[0];\n\nconst input = {\n vertical: false,\n width: 700,\n height: 350,\n loop: true,\n enabled: true,\n testID: \"xxx\",\n style: {\n width: \"100%\",\n },\n autoPlay: false,\n autoPlayInterval: 2000,\n data: [0, 1, 2, 3],\n renderItem: () => null,\n pagingEnabled: true,\n defaultIndex: 0,\n autoFillData: true,\n dataLength: 4,\n rawData: [0, 1, 2, 3],\n rawDataLength: 4,\n scrollAnimationDuration: 500,\n snapEnabled: true,\n overscrollEnabled: true,\n} as unknown as UseCommonVariablesInput;\n\ndescribe(\"useCommonVariables\", () => {\n it(\"should return the correct values\", async () => {\n const hook = renderHook(() => useCommonVariables(input));\n\n expect(hook.result.current.size).toMatchInlineSnapshot(\"700\");\n expect(hook.result.current.validLength).toMatchInlineSnapshot(\"3\");\n expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot(\"-0\");\n });\n\n it(\"should handle vertical orientation\", () => {\n const verticalInput = {\n ...input,\n vertical: true,\n } as TInitializeCarouselProps<any>;\n\n const hook = renderHook(() => useCommonVariables(verticalInput));\n\n expect(hook.result.current.size).toBe(350); // Should use height instead of width\n expect(hook.result.current.validLength).toBe(3);\n });\n\n it(\"should calculate defaultHandlerOffsetValue correctly with non-zero defaultIndex\", () => {\n const inputWithDefaultIndex = {\n ...input,\n defaultIndex: 2,\n };\n\n const hook = renderHook(() => useCommonVariables(inputWithDefaultIndex));\n\n expect(hook.result.current.handlerOffset.value).toBe(-1400); // -2 * 700\n });\n\n it(\"should use custom defaultScrollOffsetValue when provided\", () => {\n const customOffset = {\n value: -500,\n addListener: jest.fn(),\n removeListener: jest.fn(),\n modify: jest.fn(),\n };\n const inputWithCustomOffset = {\n ...input,\n defaultScrollOffsetValue: customOffset,\n };\n\n const hook = renderHook(() => useCommonVariables(inputWithCustomOffset));\n\n expect(hook.result.current.handlerOffset).toBe(customOffset);\n expect(hook.result.current.handlerOffset.value).toBe(-500);\n });\n\n it(\"should handle single data item\", () => {\n const singleItemInput = {\n ...input,\n dataLength: 1,\n data: [0],\n };\n\n const hook = renderHook(() => useCommonVariables(singleItemInput));\n\n expect(hook.result.current.validLength).toBe(0); // dataLength - 1\n });\n\n it(\"should handle zero dataLength\", () => {\n const emptyInput = {\n ...input,\n dataLength: 0,\n data: [],\n };\n\n const hook = renderHook(() => useCommonVariables(emptyInput));\n\n expect(hook.result.current.validLength).toBe(-1); // dataLength - 1\n });\n\n it(\"should handle negative defaultIndex\", () => {\n const negativeIndexInput = {\n ...input,\n defaultIndex: -1,\n };\n\n const hook = renderHook(() => useCommonVariables(negativeIndexInput));\n\n expect(hook.result.current.handlerOffset.value).toBe(-700); // -Math.abs(-1 * 700)\n });\n\n it(\"should handle loop disabled\", () => {\n const noLoopInput = {\n ...input,\n loop: false,\n };\n\n const hook = renderHook(() => useCommonVariables(noLoopInput));\n\n expect(hook.result.current.size).toBe(700);\n expect(hook.result.current.validLength).toBe(3);\n });\n\n it(\"should update when props change\", () => {\n const hook = renderHook(({ props }) => useCommonVariables(props), {\n initialProps: { props: input },\n });\n\n expect(hook.result.current.size).toBe(700);\n\n // Update width\n const updatedInput = {\n ...input,\n width: 800,\n };\n\n hook.rerender({ props: updatedInput });\n expect(hook.result.current.size).toBe(800);\n });\n\n it(\"should handle dataLength changes\", () => {\n const hook = renderHook(({ props }) => useCommonVariables(props), {\n initialProps: { props: input },\n });\n\n expect(hook.result.current.validLength).toBe(3);\n\n // Update dataLength\n const updatedInput = {\n ...input,\n dataLength: 6,\n };\n\n hook.rerender({ props: updatedInput });\n expect(hook.result.current.validLength).toBe(5);\n });\n\n it(\"should handle zero size (edge case)\", () => {\n const zeroSizeInput = {\n ...input,\n width: 0,\n };\n\n const hook = renderHook(() => useCommonVariables(zeroSizeInput));\n\n expect(hook.result.current.size).toBe(0);\n expect(hook.result.current.handlerOffset.value).toBe(-0); // -Math.abs(0 * 0)\n });\n\n it(\"should handle large defaultIndex\", () => {\n const largeIndexInput = {\n ...input,\n defaultIndex: 10,\n };\n\n const hook = renderHook(() => useCommonVariables(largeIndexInput));\n\n expect(hook.result.current.handlerOffset.value).toBe(-7000); // -Math.abs(10 * 700)\n });\n\n it(\"should handle vertical with zero height\", () => {\n const verticalZeroHeightInput = {\n ...input,\n vertical: true,\n height: 0,\n } as TInitializeCarouselProps<any>;\n\n const hook = renderHook(() => useCommonVariables(verticalZeroHeightInput));\n\n expect(hook.result.current.size).toBe(0);\n });\n\n it(\"should handle floating point dimensions\", () => {\n const floatInput = {\n ...input,\n width: 700.5,\n height: 350.25,\n };\n\n const hook = renderHook(() => useCommonVariables(floatInput));\n\n expect(hook.result.current.size).toBe(700.5);\n });\n\n it(\"should calculate validLength correctly for different data lengths\", () => {\n const testCases = [\n { dataLength: 0, expected: -1 },\n { dataLength: 1, expected: 0 },\n { dataLength: 5, expected: 4 },\n { dataLength: 100, expected: 99 },\n ];\n\n for (const { dataLength, expected } of testCases) {\n const testInput = {\n ...input,\n dataLength,\n };\n\n const hook = renderHook(() => useCommonVariables(testInput));\n expect(hook.result.current.validLength).toBe(expected);\n }\n });\n});\n"]}
|