react-native-reanimated-carousel 4.0.0-alpha.2 → 4.0.0-alpha.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.
Files changed (49) hide show
  1. package/lib/commonjs/components/rnr-demo.test.js +45 -0
  2. package/lib/commonjs/components/rnr-demo.test.js.map +1 -0
  3. package/lib/commonjs/hooks/useCommonVariables.js +34 -2
  4. package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
  5. package/lib/commonjs/hooks/useCommonVariables.test.js +38 -0
  6. package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -0
  7. package/lib/commonjs/utils/{computeNewIndexWhenDataChanges.js → compute-offset-if-data-changed.js} +3 -3
  8. package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -0
  9. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +30 -0
  10. package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -0
  11. package/lib/commonjs/utils/compute-offset-if-size-changed.js +18 -0
  12. package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -0
  13. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +72 -0
  14. package/lib/commonjs/utils/compute-offset-if-size-changed.test.js.map +1 -0
  15. package/lib/commonjs/utils/index.test.js +6 -6
  16. package/lib/commonjs/utils/index.test.js.map +1 -1
  17. package/lib/module/components/rnr-demo.test.js +33 -0
  18. package/lib/module/components/rnr-demo.test.js.map +1 -0
  19. package/lib/module/hooks/useCommonVariables.js +33 -2
  20. package/lib/module/hooks/useCommonVariables.js.map +1 -1
  21. package/lib/module/hooks/useCommonVariables.test.js +34 -0
  22. package/lib/module/hooks/useCommonVariables.test.js.map +1 -0
  23. package/lib/module/utils/{computeNewIndexWhenDataChanges.js → compute-offset-if-data-changed.js} +2 -2
  24. package/lib/module/utils/compute-offset-if-data-changed.js.map +1 -0
  25. package/lib/module/utils/compute-offset-if-data-changed.test.js +27 -0
  26. package/lib/module/utils/compute-offset-if-data-changed.test.js.map +1 -0
  27. package/lib/module/utils/compute-offset-if-size-changed.js +11 -0
  28. package/lib/module/utils/compute-offset-if-size-changed.js.map +1 -0
  29. package/lib/module/utils/compute-offset-if-size-changed.test.js +69 -0
  30. package/lib/module/utils/compute-offset-if-size-changed.test.js.map +1 -0
  31. package/lib/module/utils/index.test.js +6 -6
  32. package/lib/module/utils/index.test.js.map +1 -1
  33. package/lib/typescript/components/rnr-demo.test.d.ts +1 -0
  34. package/lib/typescript/hooks/useCommonVariables.test.d.ts +1 -0
  35. package/lib/typescript/utils/{computeNewIndexWhenDataChanges.d.ts → compute-offset-if-data-changed.d.ts} +1 -1
  36. package/lib/typescript/utils/compute-offset-if-data-changed.test.d.ts +1 -0
  37. package/lib/typescript/utils/compute-offset-if-size-changed.d.ts +5 -0
  38. package/lib/typescript/utils/compute-offset-if-size-changed.test.d.ts +1 -0
  39. package/package.json +9 -48
  40. package/src/components/rnr-demo.test.tsx +43 -0
  41. package/src/hooks/useCommonVariables.test.tsx +41 -0
  42. package/src/hooks/useCommonVariables.ts +31 -3
  43. package/src/utils/compute-offset-if-data-changed.test.ts +30 -0
  44. package/src/utils/{computeNewIndexWhenDataChanges.ts → compute-offset-if-data-changed.ts} +1 -1
  45. package/src/utils/compute-offset-if-size-changed.test.ts +78 -0
  46. package/src/utils/compute-offset-if-size-changed.ts +11 -0
  47. package/src/utils/index.test.ts +6 -6
  48. package/lib/commonjs/utils/computeNewIndexWhenDataChanges.js.map +0 -1
  49. package/lib/module/utils/computeNewIndexWhenDataChanges.js.map +0 -1
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+
3
+ var _react = _interopRequireDefault(require("react"));
4
+
5
+ var _reactNativeReanimated = _interopRequireWildcard(require("react-native-reanimated"));
6
+
7
+ var _reactTestRenderer = _interopRequireDefault(require("react-test-renderer"));
8
+
9
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
10
+
11
+ 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; }
12
+
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+
15
+ describe("useSharedValue", () => {
16
+ it("retains value on rerender", () => {
17
+ const initialValue = 0;
18
+ const updatedValue = 1;
19
+
20
+ const TestComponent = props => {
21
+ const opacity = (0, _reactNativeReanimated.useDerivedValue)(() => props.value, [props.value]);
22
+ const animatedStyle = (0, _reactNativeReanimated.useAnimatedStyle)(() => ({
23
+ opacity: opacity.value
24
+ }), [opacity]);
25
+ return /*#__PURE__*/_react.default.createElement(_reactNativeReanimated.default.View, {
26
+ style: animatedStyle
27
+ });
28
+ }; // When rendering with initial value
29
+
30
+
31
+ const wrapper = _reactTestRenderer.default.create( /*#__PURE__*/_react.default.createElement(TestComponent, {
32
+ key: "box",
33
+ value: initialValue
34
+ }));
35
+
36
+ expect(typeof wrapper.root.children[0] !== "string" ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity : false).toBe(initialValue); // When rendering with updated value
37
+
38
+ wrapper.update( /*#__PURE__*/_react.default.createElement(TestComponent, {
39
+ key: "box",
40
+ value: updatedValue
41
+ }));
42
+ expect(typeof wrapper.root.children[0] !== "string" ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity : false).toBe(initialValue);
43
+ });
44
+ });
45
+ //# sourceMappingURL=rnr-demo.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["rnr-demo.test.tsx"],"names":["describe","it","initialValue","updatedValue","TestComponent","props","opacity","value","animatedStyle","wrapper","renderer","create","expect","root","children","style","current","toBe","update"],"mappings":";;AACA;;AACA;;AACA;;;;;;;;AAEAA,QAAQ,CAAC,gBAAD,EAAmB,MAAM;AAC/BC,EAAAA,EAAE,CAAC,2BAAD,EAA8B,MAAM;AACpC,UAAMC,YAAY,GAAG,CAArB;AACA,UAAMC,YAAY,GAAG,CAArB;;AAOA,UAAMC,aAAwB,GAAIC,KAAD,IAAW;AAC1C,YAAMC,OAAO,GAAG,4CAAgB,MAAMD,KAAK,CAACE,KAA5B,EAAmC,CAACF,KAAK,CAACE,KAAP,CAAnC,CAAhB;AACA,YAAMC,aAAa,GAAG,6CAAiB,OAAO;AAC5CF,QAAAA,OAAO,EAAEA,OAAO,CAACC;AAD2B,OAAP,CAAjB,EAElB,CAACD,OAAD,CAFkB,CAAtB;AAIA,0BAAO,6BAAC,8BAAD,CAAU,IAAV;AAAe,QAAA,KAAK,EAAEE;AAAtB,QAAP;AACD,KAPD,CAToC,CAkBpC;;;AACA,UAAMC,OAAO,GAAGC,2BAASC,MAAT,eAAgB,6BAAC,aAAD;AAAe,MAAA,GAAG,EAAC,KAAnB;AAAyB,MAAA,KAAK,EAAET;AAAhC,MAAhB,CAAhB;;AAEAU,IAAAA,MAAM,CACJ,OAAOH,OAAO,CAACI,IAAR,CAAaC,QAAb,CAAsB,CAAtB,CAAP,KAAoC,QAApC,GACIL,OAAO,CAACI,IAAR,CAAaC,QAAb,CAAsB,CAAtB,EAAyBT,KAAzB,CAA+BU,KAA/B,CAAqCP,aAArC,CAAmDQ,OAAnD,CAA2DT,KAA3D,CAAiED,OADrE,GAEI,KAHA,CAAN,CAIEW,IAJF,CAIOf,YAJP,EArBoC,CA2BpC;;AACAO,IAAAA,OAAO,CAACS,MAAR,eAAe,6BAAC,aAAD;AAAe,MAAA,GAAG,EAAC,KAAnB;AAAyB,MAAA,KAAK,EAAEf;AAAhC,MAAf;AAEAS,IAAAA,MAAM,CACJ,OAAOH,OAAO,CAACI,IAAR,CAAaC,QAAb,CAAsB,CAAtB,CAAP,KAAoC,QAApC,GACIL,OAAO,CAACI,IAAR,CAAaC,QAAb,CAAsB,CAAtB,EAAyBT,KAAzB,CAA+BU,KAA/B,CAAqCP,aAArC,CAAmDQ,OAAnD,CAA2DT,KAA3D,CAAiED,OADrE,GAEI,KAHA,CAAN,CAIEW,IAJF,CAIOf,YAJP;AAKD,GAnCC,CAAF;AAoCD,CArCO,CAAR","sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport Animated, { useAnimatedStyle, useDerivedValue } from \"react-native-reanimated\";\nimport renderer from \"react-test-renderer\";\n\ndescribe(\"useSharedValue\", () => {\n it(\"retains value on rerender\", () => {\n const initialValue = 0;\n const updatedValue = 1;\n\n interface Props {\n key: string\n value: number\n }\n\n const TestComponent: FC<Props> = (props) => {\n const opacity = useDerivedValue(() => props.value, [props.value]);\n const animatedStyle = useAnimatedStyle(() => ({\n opacity: opacity.value,\n }), [opacity]);\n\n return <Animated.View style={animatedStyle} />;\n };\n\n // When rendering with initial value\n const wrapper = renderer.create(<TestComponent key=\"box\" value={initialValue} />);\n\n expect(\n typeof wrapper.root.children[0] !== \"string\"\n ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity\n : false,\n ).toBe(initialValue);\n\n // When rendering with updated value\n wrapper.update(<TestComponent key=\"box\" value={updatedValue} />);\n\n expect(\n typeof wrapper.root.children[0] !== \"string\"\n ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity\n : false,\n ).toBe(initialValue);\n });\n});\n"]}
@@ -7,7 +7,9 @@ exports.useCommonVariables = useCommonVariables;
7
7
 
8
8
  var _reactNativeReanimated = require("react-native-reanimated");
9
9
 
10
- var _computeNewIndexWhenDataChanges = require("../utils/computeNewIndexWhenDataChanges");
10
+ var _computeOffsetIfDataChanged = require("../utils/compute-offset-if-data-changed");
11
+
12
+ var _computeOffsetIfSizeChanged = require("../utils/compute-offset-if-size-changed");
11
13
 
12
14
  var _handleroffsetDirection = require("../utils/handleroffset-direction");
13
15
 
@@ -28,6 +30,7 @@ function useCommonVariables(props) {
28
30
 
29
31
  const handlerOffset = defaultScrollOffsetValue !== null && defaultScrollOffsetValue !== void 0 ? defaultScrollOffsetValue : _handlerOffset;
30
32
  const prevDataLength = (0, _reactNativeReanimated.useSharedValue)(dataLength);
33
+ const prevSize = (0, _reactNativeReanimated.useSharedValue)(size);
31
34
  /**
32
35
  * When data changes, we need to compute new index for handlerOffset
33
36
  */
@@ -53,7 +56,7 @@ function useCommonVariables(props) {
53
56
  if (shouldComputed) {
54
57
  // direction -> 1 | -1
55
58
  const direction = (0, _handleroffsetDirection.handlerOffsetDirection)(handlerOffset);
56
- handlerOffset.value = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)({
59
+ handlerOffset.value = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)({
57
60
  direction,
58
61
  previousLength,
59
62
  currentLength,
@@ -62,6 +65,35 @@ function useCommonVariables(props) {
62
65
  });
63
66
  }
64
67
  }, [dataLength, loop]);
68
+ /**
69
+ * When size changes, we need to compute new index for handlerOffset
70
+ */
71
+
72
+ (0, _reactNativeReanimated.useAnimatedReaction)(() => {
73
+ const previousSize = prevSize.value;
74
+ const isSizeChanged = previousSize !== size;
75
+ const shouldComputed = isSizeChanged;
76
+ if (shouldComputed) prevSize.value = size;
77
+ return {
78
+ shouldComputed,
79
+ previousSize,
80
+ size
81
+ };
82
+ }, _ref2 => {
83
+ let {
84
+ shouldComputed,
85
+ previousSize,
86
+ size
87
+ } = _ref2;
88
+
89
+ if (shouldComputed) {
90
+ handlerOffset.value = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
91
+ handlerOffset: handlerOffset.value,
92
+ prevSize: previousSize,
93
+ size
94
+ });
95
+ }
96
+ }, [size]);
65
97
  return {
66
98
  size,
67
99
  validLength: dataLength - 1,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","previousLength","value","currentLength","isLengthChanged","shouldComputed","direction","validLength"],"mappings":";;;;;;;AACA;;AAIA;;AACA;;AAQO,SAASA,kBAAT,CACLC,KADK,EAEa;AAClB,QAAM;AACJC,IAAAA,QADI;AAEJC,IAAAA,MAFI;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,UAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,wBANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAMQ,IAAI,GAAGP,QAAQ,GAAGC,MAAH,GAAYC,KAAjC;AACA,QAAMM,yBAAyB,GAAG,CAACC,IAAI,CAACC,GAAL,CAASN,YAAY,GAAGG,IAAxB,CAAnC;;AACA,QAAMI,cAAc,GAAG,2CAAuBH,yBAAvB,CAAvB;;AACA,QAAMI,aAAa,GAAGP,wBAAH,aAAGA,wBAAH,cAAGA,wBAAH,GAA+BM,cAAlD;AACA,QAAME,cAAc,GAAG,2CAAeV,UAAf,CAAvB;AAEA;AACF;AACA;;AACE,kDAAoB,MAAM;AACxB,UAAMW,cAAc,GAAGD,cAAc,CAACE,KAAtC;AACA,UAAMC,aAAa,GAAGb,UAAtB;AACA,UAAMc,eAAe,GAAGH,cAAc,KAAKE,aAA3C;AACA,UAAME,cAAc,GAAGD,eAAe,IAAIX,IAA1C;AAEA,QAAIY,cAAJ,EACEL,cAAc,CAACE,KAAf,GAAuBZ,UAAvB;AAEF,WAAO;AACLe,MAAAA,cADK;AAELJ,MAAAA,cAFK;AAGLE,MAAAA;AAHK,KAAP;AAKD,GAdD,EAcG,QAAuD;AAAA,QAAtD;AAAEE,MAAAA,cAAF;AAAkBJ,MAAAA,cAAlB;AAAkCE,MAAAA;AAAlC,KAAsD;;AACxD,QAAIE,cAAJ,EAAoB;AAClB;AACA,YAAMC,SAAS,GAAG,oDAAuBP,aAAvB,CAAlB;AAEAA,MAAAA,aAAa,CAACG,KAAd,GAAsB,oEAA+B;AACnDI,QAAAA,SADmD;AAEnDL,QAAAA,cAFmD;AAGnDE,QAAAA,aAHmD;AAInDT,QAAAA,IAJmD;AAKnDK,QAAAA,aAAa,EAAEA,aAAa,CAACG;AALsB,OAA/B,CAAtB;AAOD;AACF,GA3BD,EA2BG,CAACZ,UAAD,EAAaG,IAAb,CA3BH;AA6BA,SAAO;AACLC,IAAAA,IADK;AAELa,IAAAA,WAAW,EAAEjB,UAAU,GAAG,CAFrB;AAGLS,IAAAA;AAHK,GAAP;AAKD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { computeNewIndexWhenDataChanges } from \"../utils/computeNewIndexWhenDataChanges\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n\n /**\n * When data changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = isLengthChanged && loop;\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeNewIndexWhenDataChanges({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n return {\n size,\n validLength: dataLength - 1,\n handlerOffset,\n };\n}\n"]}
1
+ {"version":3,"sources":["useCommonVariables.ts"],"names":["useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","prevSize","previousLength","value","currentLength","isLengthChanged","shouldComputed","direction","previousSize","isSizeChanged","validLength"],"mappings":";;;;;;;AACA;;AAIA;;AACA;;AACA;;AAQO,SAASA,kBAAT,CACLC,KADK,EAEa;AAClB,QAAM;AACJC,IAAAA,QADI;AAEJC,IAAAA,MAFI;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,UAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,wBANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAMQ,IAAI,GAAGP,QAAQ,GAAGC,MAAH,GAAYC,KAAjC;AACA,QAAMM,yBAAyB,GAAG,CAACC,IAAI,CAACC,GAAL,CAASN,YAAY,GAAGG,IAAxB,CAAnC;;AACA,QAAMI,cAAc,GAAG,2CAAuBH,yBAAvB,CAAvB;;AACA,QAAMI,aAAa,GAAGP,wBAAH,aAAGA,wBAAH,cAAGA,wBAAH,GAA+BM,cAAlD;AACA,QAAME,cAAc,GAAG,2CAAeV,UAAf,CAAvB;AACA,QAAMW,QAAQ,GAAG,2CAAeP,IAAf,CAAjB;AAEA;AACF;AACA;;AACE,kDAAoB,MAAM;AACxB,UAAMQ,cAAc,GAAGF,cAAc,CAACG,KAAtC;AACA,UAAMC,aAAa,GAAGd,UAAtB;AACA,UAAMe,eAAe,GAAGH,cAAc,KAAKE,aAA3C;AACA,UAAME,cAAc,GAAID,eAAe,IAAIZ,IAA3C;AAEA,QAAIa,cAAJ,EACEN,cAAc,CAACG,KAAf,GAAuBb,UAAvB;AAEF,WAAO;AACLgB,MAAAA,cADK;AAELJ,MAAAA,cAFK;AAGLE,MAAAA;AAHK,KAAP;AAKD,GAdD,EAcG,QAAuD;AAAA,QAAtD;AAAEE,MAAAA,cAAF;AAAkBJ,MAAAA,cAAlB;AAAkCE,MAAAA;AAAlC,KAAsD;;AACxD,QAAIE,cAAJ,EAAoB;AAClB;AACA,YAAMC,SAAS,GAAG,oDAAuBR,aAAvB,CAAlB;AAEAA,MAAAA,aAAa,CAACI,KAAd,GAAsB,4DAA2B;AAC/CI,QAAAA,SAD+C;AAE/CL,QAAAA,cAF+C;AAG/CE,QAAAA,aAH+C;AAI/CV,QAAAA,IAJ+C;AAK/CK,QAAAA,aAAa,EAAEA,aAAa,CAACI;AALkB,OAA3B,CAAtB;AAOD;AACF,GA3BD,EA2BG,CAACb,UAAD,EAAaG,IAAb,CA3BH;AA6BA;AACF;AACA;;AACE,kDAAoB,MAAM;AACxB,UAAMe,YAAY,GAAGP,QAAQ,CAACE,KAA9B;AACA,UAAMM,aAAa,GAAGD,YAAY,KAAKd,IAAvC;AACA,UAAMY,cAAc,GAAGG,aAAvB;AAEA,QAAIH,cAAJ,EACEL,QAAQ,CAACE,KAAT,GAAiBT,IAAjB;AAEF,WAAO;AACLY,MAAAA,cADK;AAELE,MAAAA,YAFK;AAGLd,MAAAA;AAHK,KAAP;AAKD,GAbD,EAaG,SAA4C;AAAA,QAA3C;AAAEY,MAAAA,cAAF;AAAkBE,MAAAA,YAAlB;AAAgCd,MAAAA;AAAhC,KAA2C;;AAC7C,QAAIY,cAAJ,EAAoB;AAClBP,MAAAA,aAAa,CAACI,KAAd,GAAsB,4DAA2B;AAC/CJ,QAAAA,aAAa,EAAEA,aAAa,CAACI,KADkB;AAE/CF,QAAAA,QAAQ,EAAEO,YAFqC;AAG/Cd,QAAAA;AAH+C,OAA3B,CAAtB;AAKD;AACF,GArBD,EAqBG,CAACA,IAAD,CArBH;AAuBA,SAAO;AACLA,IAAAA,IADK;AAELgB,IAAAA,WAAW,EAAEpB,UAAU,GAAG,CAFrB;AAGLS,IAAAA;AAHK,GAAP;AAKD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { computeOffsetIfDataChanged } from \"../utils/compute-offset-if-data-changed\";\nimport { computeOffsetIfSizeChanged } from \"../utils/compute-offset-if-size-changed\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n const prevSize = useSharedValue(size);\n\n /**\n * When data changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = (isLengthChanged && loop);\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeOffsetIfDataChanged({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n /**\n * When size changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousSize = prevSize.value;\n const isSizeChanged = previousSize !== size;\n const shouldComputed = isSizeChanged;\n\n if (shouldComputed)\n prevSize.value = size;\n\n return {\n shouldComputed,\n previousSize,\n size,\n };\n }, ({ shouldComputed, previousSize, size }) => {\n if (shouldComputed) {\n handlerOffset.value = computeOffsetIfSizeChanged({\n handlerOffset: handlerOffset.value,\n prevSize: previousSize,\n size,\n });\n }\n }, [size]);\n\n return {\n size,\n validLength: dataLength - 1,\n handlerOffset,\n };\n}\n"]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ var _reactHooks = require("@testing-library/react-hooks");
4
+
5
+ var _useCommonVariables = require("./useCommonVariables");
6
+
7
+ const input = {
8
+ vertical: false,
9
+ width: 700,
10
+ height: 350,
11
+ loop: true,
12
+ enabled: true,
13
+ testID: "xxx",
14
+ style: {
15
+ width: "100%"
16
+ },
17
+ autoPlay: false,
18
+ autoPlayInterval: 2000,
19
+ data: [0, 1, 2, 3],
20
+ pagingEnabled: true,
21
+ defaultIndex: 0,
22
+ autoFillData: true,
23
+ dataLength: 4,
24
+ rawData: [0, 1, 2, 3],
25
+ rawDataLength: 4,
26
+ scrollAnimationDuration: 500,
27
+ snapEnabled: true,
28
+ overscrollEnabled: true
29
+ };
30
+ describe("useCommonVariables", () => {
31
+ it("should return the correct values", async () => {
32
+ const hook = (0, _reactHooks.renderHook)(() => (0, _useCommonVariables.useCommonVariables)(input));
33
+ expect(hook.result.current.size).toMatchInlineSnapshot("700");
34
+ expect(hook.result.current.validLength).toMatchInlineSnapshot("3");
35
+ expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot("-0");
36
+ });
37
+ });
38
+ //# sourceMappingURL=useCommonVariables.test.js.map
@@ -0,0 +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":";;AAAA;;AAEA;;AAIA,MAAMA,KAAK,GAAG;AACZC,EAAAA,QAAQ,EAAE,KADE;AAEZC,EAAAA,KAAK,EAAE,GAFK;AAGZC,EAAAA,MAAM,EAAE,GAHI;AAIZC,EAAAA,IAAI,EAAE,IAJM;AAKZC,EAAAA,OAAO,EAAE,IALG;AAMZC,EAAAA,MAAM,EAAE,KANI;AAOZC,EAAAA,KAAK,EAAE;AACLL,IAAAA,KAAK,EAAE;AADF,GAPK;AAUZM,EAAAA,QAAQ,EAAE,KAVE;AAWZC,EAAAA,gBAAgB,EAAE,IAXN;AAYZC,EAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAZM;AAaZC,EAAAA,aAAa,EAAE,IAbH;AAcZC,EAAAA,YAAY,EAAE,CAdF;AAeZC,EAAAA,YAAY,EAAE,IAfF;AAgBZC,EAAAA,UAAU,EAAE,CAhBA;AAiBZC,EAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAjBG;AAkBZC,EAAAA,aAAa,EAAE,CAlBH;AAmBZC,EAAAA,uBAAuB,EAAE,GAnBb;AAoBZC,EAAAA,WAAW,EAAE,IApBD;AAqBZC,EAAAA,iBAAiB,EAAE;AArBP,CAAd;AAwBAC,QAAQ,CAAC,oBAAD,EAAuB,MAAM;AACnCC,EAAAA,EAAE,CAAC,kCAAD,EAAqC,YAAY;AACjD,UAAMC,IAAI,GAAG,4BAAW,MAAM,4CAAmBtB,KAAnB,CAAjB,CAAb;AAEAuB,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBC,IAArB,CAAN,CAAiCC,qBAAjC,CAAuD,KAAvD;AACAJ,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBG,WAArB,CAAN,CAAwCD,qBAAxC,CAA8D,GAA9D;AACAJ,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBI,aAApB,CAAkCC,KAAnC,CAAN,CAAgDH,qBAAhD,CACE,IADF;AAGD,GARC,CAAF;AASD,CAVO,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(\n \"-0\",\n );\n });\n});\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.computeNewIndexWhenDataChanges = computeNewIndexWhenDataChanges;
6
+ exports.computeOffsetIfDataChanged = computeOffsetIfDataChanged;
7
7
  exports.omitZero = omitZero;
8
8
 
9
9
  function omitZero(a, b) {
@@ -13,7 +13,7 @@ function omitZero(a, b) {
13
13
  return b;
14
14
  }
15
15
 
16
- function computeNewIndexWhenDataChanges(params) {
16
+ function computeOffsetIfDataChanged(params) {
17
17
  "worklet";
18
18
 
19
19
  const {
@@ -49,4 +49,4 @@ function computeNewIndexWhenDataChanges(params) {
49
49
 
50
50
  return handlerOffset;
51
51
  }
52
- //# sourceMappingURL=computeNewIndexWhenDataChanges.js.map
52
+ //# sourceMappingURL=compute-offset-if-data-changed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["compute-offset-if-data-changed.ts"],"names":["omitZero","a","b","computeOffsetIfDataChanged","params","direction","handlerOffset","_handlerOffset","size","previousLength","currentLength","positionIndex","round","isPositive","Math","abs","parseInt","String","prevOffset","prevIndex","changedLength","changedOffset"],"mappings":";;;;;;;;AAAO,SAASA,QAAT,CAAkBC,CAAlB,EAA6BC,CAA7B,EAAwC;AAC7C;;AACA,MAAID,CAAC,KAAK,CAAV,EACE,OAAO,CAAP;AAEF,SAAOC,CAAP;AACD;;AAEM,SAASC,0BAAT,CAAoCC,MAApC,EAMJ;AACD;;AACA,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,aAAa,EAAEC,cAA5B;AAA4CC,IAAAA,IAA5C;AAAkDC,IAAAA,cAAlD;AAAkEC,IAAAA;AAAlE,MAAoFN,MAA1F;AAEA,MAAIE,aAAa,GAAGC,cAApB;AACA,MAAII,aAAJ;AACA,MAAIC,KAAJ;AAEA,QAAMC,UAAU,GAAGR,SAAS,GAAG,CAA/B;;AAEA,MAAIQ,UAAJ,EAAgB;AACdF,IAAAA,aAAa,GAAIG,IAAI,CAACC,GAAL,CAAST,aAAT,CAAD,GAA4BE,IAA5C;AACAI,IAAAA,KAAK,GAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAAT,CAAP,CAAhB;AACD,GAHD,MAIK;AACHE,IAAAA,aAAa,GAAG,CAACG,IAAI,CAACC,GAAL,CAAST,aAAT,IAA0BE,IAA3B,IAAmCA,IAAnD;AACAI,IAAAA,KAAK,GAAGI,QAAQ,CAACC,MAAM,CAACjB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAAT,CAAP,CAAR,GAA6E,CAArF;AACD;;AAED,QAAMS,UAAU,GAAGlB,QAAQ,CAACS,cAAD,EAAiBE,aAAa,GAAGF,cAAjC,CAA3B;AACA,QAAMU,SAAS,GAAGN,UAAU,GAAGK,UAAH,GAAgBT,cAAc,GAAGS,UAAjB,GAA8B,CAA1E;AACA,QAAME,aAAa,GAAGR,KAAK,IAAIF,aAAa,GAAGD,cAApB,CAA3B;AACA,QAAMY,aAAa,GAAGD,aAAa,GAAGZ,IAAtC;;AACA,MAAIW,SAAS,GAAGT,aAAa,GAAG,CAA5B,IAAiCA,aAAa,GAAGD,cAArD,EAAqE;AACnE,QAAII,UAAJ,EACEP,aAAa,GAAG,CAACI,aAAa,GAAG,CAAjB,IAAsBF,IAAtB,GAA6BH,SAA7C,CADF,KAIEC,aAAa,GAAG,CAACI,aAAa,GAAG,CAAjB,IAAsBF,IAAtB,GAA6B,CAAC,CAA9C;AACH,GAND,MAOK;AACHF,IAAAA,aAAa,IAAIe,aAAa,GAAGhB,SAAjC;AACD;;AAED,SAAOC,aAAP;AACD","sourcesContent":["export function omitZero(a: number, b: number) {\n \"worklet\";\n if (a === 0)\n return 0;\n\n return b;\n}\n\nexport function computeOffsetIfDataChanged(params: {\n direction: number\n handlerOffset: number\n size: number\n previousLength: number\n currentLength: number\n}) {\n \"worklet\";\n const { direction, handlerOffset: _handlerOffset, size, previousLength, currentLength } = params;\n\n let handlerOffset = _handlerOffset;\n let positionIndex;\n let round;\n\n const isPositive = direction < 0;\n\n if (isPositive) {\n positionIndex = (Math.abs(handlerOffset)) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength)));\n }\n else {\n positionIndex = (Math.abs(handlerOffset) - size) / size;\n round = parseInt(String(omitZero(previousLength, positionIndex / previousLength))) + 1;\n }\n\n const prevOffset = omitZero(previousLength, positionIndex % previousLength);\n const prevIndex = isPositive ? prevOffset : previousLength - prevOffset - 1;\n const changedLength = round * (currentLength - previousLength);\n const changedOffset = changedLength * size;\n if (prevIndex > currentLength - 1 && currentLength < previousLength) {\n if (isPositive)\n handlerOffset = (currentLength - 1) * size * direction;\n\n else\n handlerOffset = (currentLength - 1) * size * -1;\n }\n else {\n handlerOffset += changedOffset * direction;\n }\n\n return handlerOffset;\n}\n\n"]}
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ var _computeOffsetIfDataChanged = require("./compute-offset-if-data-changed");
4
+
5
+ describe("computeOffsetIfDataChanged", () => {
6
+ const size = 634;
7
+ it("should return the correct values, if index is 0", () => {
8
+ const index = 0;
9
+ const result = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)({
10
+ direction: -1,
11
+ previousLength: 4,
12
+ currentLength: 6,
13
+ size,
14
+ handlerOffset: index * size
15
+ });
16
+ expect(result).toMatchInlineSnapshot("0");
17
+ });
18
+ it("should return the correct values, if index is 1", () => {
19
+ const index = 1;
20
+ const result = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)({
21
+ direction: -1,
22
+ previousLength: 4,
23
+ currentLength: 6,
24
+ size,
25
+ handlerOffset: index * size
26
+ });
27
+ expect(result).toMatchInlineSnapshot("634");
28
+ });
29
+ });
30
+ //# sourceMappingURL=compute-offset-if-data-changed.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["compute-offset-if-data-changed.test.ts"],"names":["describe","size","it","index","result","direction","previousLength","currentLength","handlerOffset","expect","toMatchInlineSnapshot"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,4BAAD,EAA+B,MAAM;AAC3C,QAAMC,IAAI,GAAG,GAAb;AACAC,EAAAA,EAAE,CAAC,iDAAD,EAAoD,MAAM;AAC1D,UAAMC,KAAK,GAAG,CAAd;AACA,UAAMC,MAAM,GAAG,4DAA2B;AACxCC,MAAAA,SAAS,EAAE,CAAC,CAD4B;AAExCC,MAAAA,cAAc,EAAE,CAFwB;AAGxCC,MAAAA,aAAa,EAAE,CAHyB;AAIxCN,MAAAA,IAJwC;AAKxCO,MAAAA,aAAa,EAAEL,KAAK,GAAGF;AALiB,KAA3B,CAAf;AAQAQ,IAAAA,MAAM,CAACL,MAAD,CAAN,CAAeM,qBAAf,CAAqC,GAArC;AACD,GAXC,CAAF;AAaAR,EAAAA,EAAE,CAAC,iDAAD,EAAoD,MAAM;AAC1D,UAAMC,KAAK,GAAG,CAAd;AACA,UAAMC,MAAM,GAAG,4DAA2B;AACxCC,MAAAA,SAAS,EAAE,CAAC,CAD4B;AAExCC,MAAAA,cAAc,EAAE,CAFwB;AAGxCC,MAAAA,aAAa,EAAE,CAHyB;AAIxCN,MAAAA,IAJwC;AAKxCO,MAAAA,aAAa,EAAEL,KAAK,GAAGF;AALiB,KAA3B,CAAf;AAQAQ,IAAAA,MAAM,CAACL,MAAD,CAAN,CAAeM,qBAAf,CAAqC,KAArC;AACD,GAXC,CAAF;AAYD,CA3BO,CAAR","sourcesContent":["import { computeOffsetIfDataChanged } from \"./compute-offset-if-data-changed\";\n\ndescribe(\"computeOffsetIfDataChanged\", () => {\n const size = 634;\n it(\"should return the correct values, if index is 0\", () => {\n const index = 0;\n const result = computeOffsetIfDataChanged({\n direction: -1,\n previousLength: 4,\n currentLength: 6,\n size,\n handlerOffset: index * size,\n });\n\n expect(result).toMatchInlineSnapshot(\"0\");\n });\n\n it(\"should return the correct values, if index is 1\", () => {\n const index = 1;\n const result = computeOffsetIfDataChanged({\n direction: -1,\n previousLength: 4,\n currentLength: 6,\n size,\n handlerOffset: index * size,\n });\n\n expect(result).toMatchInlineSnapshot(\"634\");\n });\n});\n"]}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.computeOffsetIfSizeChanged = computeOffsetIfSizeChanged;
7
+
8
+ function computeOffsetIfSizeChanged(params) {
9
+ "worklet";
10
+
11
+ const {
12
+ handlerOffset,
13
+ prevSize,
14
+ size
15
+ } = params;
16
+ return handlerOffset / prevSize * size;
17
+ }
18
+ //# sourceMappingURL=compute-offset-if-size-changed.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["compute-offset-if-size-changed.ts"],"names":["computeOffsetIfSizeChanged","params","handlerOffset","prevSize","size"],"mappings":";;;;;;;AAAO,SAASA,0BAAT,CAAoCC,MAApC,EAIJ;AACD;;AACA,QAAM;AAAEC,IAAAA,aAAF;AAAiBC,IAAAA,QAAjB;AAA2BC,IAAAA;AAA3B,MAAoCH,MAA1C;AAEA,SAAOC,aAAa,GAAGC,QAAhB,GAA2BC,IAAlC;AACD","sourcesContent":["export function computeOffsetIfSizeChanged(params: {\n handlerOffset: number\n prevSize: number\n size: number\n}) {\n \"worklet\";\n const { handlerOffset, prevSize, size } = params;\n\n return handlerOffset / prevSize * size;\n}\n\n"]}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+
3
+ var _computeOffsetIfSizeChanged = require("./compute-offset-if-size-changed");
4
+
5
+ describe("computeOffsetIfSizeChanged", () => {
6
+ it("[CASE 1] should return the correct values when size does not change", () => {
7
+ const prevIndex = 1;
8
+ const prevSize = 500;
9
+ const size = 500;
10
+ const handlerOffset = prevIndex * size;
11
+ const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
12
+ prevSize,
13
+ size,
14
+ handlerOffset
15
+ });
16
+ const finallyIndex = result / size;
17
+ expect(finallyIndex).toEqual(prevIndex);
18
+ });
19
+ it("[CASE 2] should return the correct values when size changes from 500 to 400", () => {
20
+ const prevIndex = 1;
21
+ const prevSize = 500;
22
+ const size = 400;
23
+ const handlerOffset = prevIndex * prevSize;
24
+ const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
25
+ prevSize,
26
+ size,
27
+ handlerOffset
28
+ });
29
+ const finallyIndex = result / size;
30
+ expect(finallyIndex).toEqual(prevIndex);
31
+ });
32
+ it("[CASE 3] should return the correct values when size changes from 500 to 499", () => {
33
+ const prevIndex = 1;
34
+ const prevSize = 500;
35
+ const size = 499;
36
+ const handlerOffset = prevIndex * prevSize;
37
+ const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
38
+ prevSize,
39
+ size,
40
+ handlerOffset
41
+ });
42
+ const finallyIndex = result / size;
43
+ expect(finallyIndex).toEqual(prevIndex);
44
+ });
45
+ it("[CASE 4] should return the correct values when size changes from 500 to 501", () => {
46
+ const prevIndex = 1;
47
+ const prevSize = 500;
48
+ const size = 501;
49
+ const handlerOffset = prevIndex * prevSize;
50
+ const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
51
+ prevSize,
52
+ size,
53
+ handlerOffset
54
+ });
55
+ const finallyIndex = result / size;
56
+ expect(finallyIndex).toEqual(prevIndex);
57
+ });
58
+ it("[CASE 5] should return the correct values when size changes from 224 to 524", () => {
59
+ const prevIndex = 1;
60
+ const prevSize = 224;
61
+ const size = 524;
62
+ const handlerOffset = prevIndex * prevSize;
63
+ const result = (0, _computeOffsetIfSizeChanged.computeOffsetIfSizeChanged)({
64
+ prevSize,
65
+ size,
66
+ handlerOffset
67
+ });
68
+ const finallyIndex = result / size;
69
+ expect(finallyIndex).toEqual(prevIndex);
70
+ });
71
+ });
72
+ //# sourceMappingURL=compute-offset-if-size-changed.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["compute-offset-if-size-changed.test.ts"],"names":["describe","it","prevIndex","prevSize","size","handlerOffset","result","finallyIndex","expect","toEqual"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,4BAAD,EAA+B,MAAM;AAC3CC,EAAAA,EAAE,CAAC,qEAAD,EAAwE,MAAM;AAC9E,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGE,IAAlC;AACA,UAAME,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAeAD,EAAAA,EAAE,CAAC,6EAAD,EAAgF,MAAM;AACtF,UAAMC,SAAS,GAAG,CAAlB;AACA,UAAMC,QAAQ,GAAG,GAAjB;AACA,UAAMC,IAAI,GAAG,GAAb;AACA,UAAMC,aAAa,GAAGH,SAAS,GAAGC,QAAlC;AACA,UAAMG,MAAM,GAAG,4DAA2B;AACxCH,MAAAA,QADwC;AAExCC,MAAAA,IAFwC;AAGxCC,MAAAA;AAHwC,KAA3B,CAAf;AAMA,UAAME,YAAY,GAAGD,MAAM,GAAGF,IAA9B;AACAI,IAAAA,MAAM,CAACD,YAAD,CAAN,CAAqBE,OAArB,CAA6BP,SAA7B;AACD,GAbC,CAAF;AAcD,CA3EO,CAAR","sourcesContent":["import { computeOffsetIfSizeChanged } from \"./compute-offset-if-size-changed\";\n\ndescribe(\"computeOffsetIfSizeChanged\", () => {\n it(\"[CASE 1] should return the correct values when size does not change\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 500;\n const handlerOffset = prevIndex * size;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 2] should return the correct values when size changes from 500 to 400\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 400;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 3] should return the correct values when size changes from 500 to 499\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 499;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 4] should return the correct values when size changes from 500 to 501\", () => {\n const prevIndex = 1;\n const prevSize = 500;\n const size = 501;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n\n it(\"[CASE 5] should return the correct values when size changes from 224 to 524\", () => {\n const prevIndex = 1;\n const prevSize = 224;\n const size = 524;\n const handlerOffset = prevIndex * prevSize;\n const result = computeOffsetIfSizeChanged({\n prevSize,\n size,\n handlerOffset,\n });\n\n const finallyIndex = result / size;\n expect(finallyIndex).toEqual(prevIndex);\n });\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- var _computeNewIndexWhenDataChanges = require("./computeNewIndexWhenDataChanges");
3
+ var _computeOffsetIfDataChanged = require("./compute-offset-if-data-changed");
4
4
 
5
5
  describe("should work as expected", () => {
6
6
  const size = 375;
@@ -26,7 +26,7 @@ describe("should work as expected", () => {
26
26
 
27
27
  it("The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.", async () => {
28
28
  const currentIndex = 1;
29
- const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
29
+ const handlerOffset = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(params({
30
30
  currentIndex,
31
31
  direction: "negative",
32
32
  previousLength: 4,
@@ -35,7 +35,7 @@ describe("should work as expected", () => {
35
35
  expect(handlerOffset / size).toBe(2 * positive);
36
36
  });
37
37
  it("The direction is negative, Changing length of data set from 4 to 3, the index remains original.", async () => {
38
- const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
38
+ const handlerOffset = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(params({
39
39
  currentIndex: 2,
40
40
  direction: "negative",
41
41
  previousLength: 4,
@@ -44,7 +44,7 @@ describe("should work as expected", () => {
44
44
  expect(handlerOffset / size).toBe(1 * negative);
45
45
  });
46
46
  it("The direction is positive, Changing length of data set from 4 to 5, the index remains original.", async () => {
47
- const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
47
+ const handlerOffset = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(params({
48
48
  currentIndex: 3,
49
49
  direction: "positive",
50
50
  previousLength: 4,
@@ -53,7 +53,7 @@ describe("should work as expected", () => {
53
53
  expect(handlerOffset / size).toBe(3 * positive);
54
54
  });
55
55
  it("The direction is negative, Changing length of data set from 4 to 5, the index remains original.", async () => {
56
- const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
56
+ const handlerOffset = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(params({
57
57
  currentIndex: 3,
58
58
  direction: "negative",
59
59
  previousLength: 4,
@@ -62,7 +62,7 @@ describe("should work as expected", () => {
62
62
  expect(handlerOffset / size).toBe(4 * negative);
63
63
  });
64
64
  it("Changing length of data set from 0 to 3, the index remains original.", async () => {
65
- const handlerOffset = (0, _computeNewIndexWhenDataChanges.computeNewIndexWhenDataChanges)(params({
65
+ const handlerOffset = (0, _computeOffsetIfDataChanged.computeOffsetIfDataChanged)(params({
66
66
  currentIndex: 0,
67
67
  direction: "positive",
68
68
  previousLength: 0,
@@ -1 +1 @@
1
- {"version":3,"sources":["index.test.ts"],"names":["describe","size","positive","negative","params","currentIndex","direction","_direction","previousLength","currentLength","handlerOffset","it","expect","toBe"],"mappings":";;AAAA;;AAEAA,QAAQ,CAAC,yBAAD,EAA4B,MAAM;AACxC,QAAMC,IAAI,GAAG,GAAb;AACA,QAAMC,QAAQ,GAAG,CAAC,CAAlB;AACA,QAAMC,QAAQ,GAAG,CAAjB;;AAEA,QAAMC,MAAM,GAAIA,MAAD,IAKT;AACJ,UAAM;AAAEC,MAAAA,YAAF;AAAgBC,MAAAA,SAAS,EAAEC,UAA3B;AAAuCC,MAAAA,cAAvC;AAAuDC,MAAAA;AAAvD,QAAyEL,MAA/E;AACA,UAAME,SAAS,GAAGC,UAAU,KAAK,UAAf,GAA4BJ,QAA5B,GAAuCD,QAAzD;AACA,WAAO;AACLI,MAAAA,SADK;AAELI,MAAAA,aAAa,EAAET,IAAI,GAAGI,YAAP,GAAsBC,SAFhC;AAGLL,MAAAA,IAHK;AAILO,MAAAA,cAJK;AAKLC,MAAAA;AALK,KAAP;AAOD,GAfD;;AAiBAE,EAAAA,EAAE,CAAC,qGAAD,EAAwG,YAAY;AACpH,UAAMN,YAAY,GAAG,CAArB;AACA,UAAMK,aAAa,GAAG,oEAA+BN,MAAM,CAAC;AAC1DC,MAAAA,YAD0D;AAE1DC,MAAAA,SAAS,EAAE,UAF+C;AAG1DE,MAAAA,cAAc,EAAE,CAH0C;AAI1DC,MAAAA,aAAa,EAAE;AAJ2C,KAAD,CAArC,CAAtB;AAOAG,IAAAA,MAAM,CAACF,aAAa,GAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,IAAIX,QAAtC;AACD,GAVC,CAAF;AAYAS,EAAAA,EAAE,CAAC,iGAAD,EAAoG,YAAY;AAChH,UAAMD,aAAa,GAAG,oEAA+BN,MAAM,CAAC;AAC1DC,MAAAA,YAAY,EAAE,CAD4C;AAE1DC,MAAAA,SAAS,EAAE,UAF+C;AAG1DE,MAAAA,cAAc,EAAE,CAH0C;AAI1DC,MAAAA,aAAa,EAAE;AAJ2C,KAAD,CAArC,CAAtB;AAOAG,IAAAA,MAAM,CAACF,aAAa,GAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,IAAIV,QAAtC;AACD,GATC,CAAF;AAWAQ,EAAAA,EAAE,CAAC,iGAAD,EAAoG,YAAY;AAChH,UAAMD,aAAa,GAAG,oEAA+BN,MAAM,CAAC;AAC1DC,MAAAA,YAAY,EAAE,CAD4C;AAE1DC,MAAAA,SAAS,EAAE,UAF+C;AAG1DE,MAAAA,cAAc,EAAE,CAH0C;AAI1DC,MAAAA,aAAa,EAAE;AAJ2C,KAAD,CAArC,CAAtB;AAOAG,IAAAA,MAAM,CAACF,aAAa,GAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,IAAIX,QAAtC;AACD,GATC,CAAF;AAWAS,EAAAA,EAAE,CAAC,iGAAD,EAAoG,YAAY;AAChH,UAAMD,aAAa,GAAG,oEAA+BN,MAAM,CAAC;AAC1DC,MAAAA,YAAY,EAAE,CAD4C;AAE1DC,MAAAA,SAAS,EAAE,UAF+C;AAG1DE,MAAAA,cAAc,EAAE,CAH0C;AAI1DC,MAAAA,aAAa,EAAE;AAJ2C,KAAD,CAArC,CAAtB;AAOAG,IAAAA,MAAM,CAACF,aAAa,GAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,IAAIV,QAAtC;AACD,GATC,CAAF;AAWAQ,EAAAA,EAAE,CAAC,sEAAD,EAAyE,YAAY;AACrF,UAAMD,aAAa,GAAG,oEAA+BN,MAAM,CAAC;AAC1DC,MAAAA,YAAY,EAAE,CAD4C;AAE1DC,MAAAA,SAAS,EAAE,UAF+C;AAG1DE,MAAAA,cAAc,EAAE,CAH0C;AAI1DC,MAAAA,aAAa,EAAE;AAJ2C,KAAD,CAArC,CAAtB;AAOAG,IAAAA,MAAM,CAACF,aAAa,GAAGT,IAAjB,CAAN,CAA6BY,IAA7B,CAAkC,IAAIX,QAAtC;AACD,GATC,CAAF;AAUD,CA7EO,CAAR","sourcesContent":["import { computeNewIndexWhenDataChanges } from \"./computeNewIndexWhenDataChanges\";\n\ndescribe(\"should work as expected\", () => {\n const size = 375;\n const positive = -1;\n const negative = 1;\n\n const params = (params: {\n direction: \"positive\" | \"negative\"\n currentIndex: number\n previousLength: number\n currentLength: number\n }) => {\n const { currentIndex, direction: _direction, previousLength, currentLength } = params;\n const direction = _direction === \"negative\" ? negative : positive;\n return {\n direction,\n handlerOffset: size * currentIndex * direction,\n size,\n previousLength,\n currentLength,\n };\n };\n\n it(\"The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.\", async () => {\n const currentIndex = 1;\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(2 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 2,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(1 * negative);\n });\n\n it(\"The direction is positive, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"positive\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(3 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 3,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(4 * negative);\n });\n\n it(\"Changing length of data set from 0 to 3, the index remains original.\", async () => {\n const handlerOffset = computeNewIndexWhenDataChanges(params({\n currentIndex: 0,\n direction: \"positive\",\n previousLength: 0,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(0 * positive);\n });\n});\n"]}
1
+ {"version":3,"sources":["index.test.ts"],"names":["describe","size","positive","negative","params","currentIndex","direction","_direction","previousLength","currentLength","handlerOffset","it","expect","toBe"],"mappings":"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","sourcesContent":["import { computeOffsetIfDataChanged } from \"./compute-offset-if-data-changed\";\n\ndescribe(\"should work as expected\", () => {\n const size = 375;\n const positive = -1;\n const negative = 1;\n\n const params = (params: {\n direction: \"positive\" | \"negative\"\n currentIndex: number\n previousLength: number\n currentLength: number\n }) => {\n const { currentIndex, direction: _direction, previousLength, currentLength } = params;\n const direction = _direction === \"negative\" ? negative : positive;\n return {\n direction,\n handlerOffset: size * currentIndex * direction,\n size,\n previousLength,\n currentLength,\n };\n };\n\n it(\"The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.\", async () => {\n const currentIndex = 1;\n const handlerOffset = computeOffsetIfDataChanged(params({\n currentIndex,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(2 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 3, the index remains original.\", async () => {\n const handlerOffset = computeOffsetIfDataChanged(params({\n currentIndex: 2,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(1 * negative);\n });\n\n it(\"The direction is positive, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeOffsetIfDataChanged(params({\n currentIndex: 3,\n direction: \"positive\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(3 * positive);\n });\n\n it(\"The direction is negative, Changing length of data set from 4 to 5, the index remains original.\", async () => {\n const handlerOffset = computeOffsetIfDataChanged(params({\n currentIndex: 3,\n direction: \"negative\",\n previousLength: 4,\n currentLength: 5,\n }));\n\n expect(handlerOffset / size).toBe(4 * negative);\n });\n\n it(\"Changing length of data set from 0 to 3, the index remains original.\", async () => {\n const handlerOffset = computeOffsetIfDataChanged(params({\n currentIndex: 0,\n direction: \"positive\",\n previousLength: 0,\n currentLength: 3,\n }));\n\n expect(handlerOffset / size).toBe(0 * positive);\n });\n});\n"]}
@@ -0,0 +1,33 @@
1
+ import React from "react";
2
+ import Animated, { useAnimatedStyle, useDerivedValue } from "react-native-reanimated";
3
+ import renderer from "react-test-renderer";
4
+ describe("useSharedValue", () => {
5
+ it("retains value on rerender", () => {
6
+ const initialValue = 0;
7
+ const updatedValue = 1;
8
+
9
+ const TestComponent = props => {
10
+ const opacity = useDerivedValue(() => props.value, [props.value]);
11
+ const animatedStyle = useAnimatedStyle(() => ({
12
+ opacity: opacity.value
13
+ }), [opacity]);
14
+ return /*#__PURE__*/React.createElement(Animated.View, {
15
+ style: animatedStyle
16
+ });
17
+ }; // When rendering with initial value
18
+
19
+
20
+ const wrapper = renderer.create( /*#__PURE__*/React.createElement(TestComponent, {
21
+ key: "box",
22
+ value: initialValue
23
+ }));
24
+ expect(typeof wrapper.root.children[0] !== "string" ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity : false).toBe(initialValue); // When rendering with updated value
25
+
26
+ wrapper.update( /*#__PURE__*/React.createElement(TestComponent, {
27
+ key: "box",
28
+ value: updatedValue
29
+ }));
30
+ expect(typeof wrapper.root.children[0] !== "string" ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity : false).toBe(initialValue);
31
+ });
32
+ });
33
+ //# sourceMappingURL=rnr-demo.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["rnr-demo.test.tsx"],"names":["React","Animated","useAnimatedStyle","useDerivedValue","renderer","describe","it","initialValue","updatedValue","TestComponent","props","opacity","value","animatedStyle","wrapper","create","expect","root","children","style","current","toBe","update"],"mappings":"AACA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,QAAP,IAAmBC,gBAAnB,EAAqCC,eAArC,QAA4D,yBAA5D;AACA,OAAOC,QAAP,MAAqB,qBAArB;AAEAC,QAAQ,CAAC,gBAAD,EAAmB,MAAM;AAC/BC,EAAAA,EAAE,CAAC,2BAAD,EAA8B,MAAM;AACpC,UAAMC,YAAY,GAAG,CAArB;AACA,UAAMC,YAAY,GAAG,CAArB;;AAOA,UAAMC,aAAwB,GAAIC,KAAD,IAAW;AAC1C,YAAMC,OAAO,GAAGR,eAAe,CAAC,MAAMO,KAAK,CAACE,KAAb,EAAoB,CAACF,KAAK,CAACE,KAAP,CAApB,CAA/B;AACA,YAAMC,aAAa,GAAGX,gBAAgB,CAAC,OAAO;AAC5CS,QAAAA,OAAO,EAAEA,OAAO,CAACC;AAD2B,OAAP,CAAD,EAElC,CAACD,OAAD,CAFkC,CAAtC;AAIA,0BAAO,oBAAC,QAAD,CAAU,IAAV;AAAe,QAAA,KAAK,EAAEE;AAAtB,QAAP;AACD,KAPD,CAToC,CAkBpC;;;AACA,UAAMC,OAAO,GAAGV,QAAQ,CAACW,MAAT,eAAgB,oBAAC,aAAD;AAAe,MAAA,GAAG,EAAC,KAAnB;AAAyB,MAAA,KAAK,EAAER;AAAhC,MAAhB,CAAhB;AAEAS,IAAAA,MAAM,CACJ,OAAOF,OAAO,CAACG,IAAR,CAAaC,QAAb,CAAsB,CAAtB,CAAP,KAAoC,QAApC,GACIJ,OAAO,CAACG,IAAR,CAAaC,QAAb,CAAsB,CAAtB,EAAyBR,KAAzB,CAA+BS,KAA/B,CAAqCN,aAArC,CAAmDO,OAAnD,CAA2DR,KAA3D,CAAiED,OADrE,GAEI,KAHA,CAAN,CAIEU,IAJF,CAIOd,YAJP,EArBoC,CA2BpC;;AACAO,IAAAA,OAAO,CAACQ,MAAR,eAAe,oBAAC,aAAD;AAAe,MAAA,GAAG,EAAC,KAAnB;AAAyB,MAAA,KAAK,EAAEd;AAAhC,MAAf;AAEAQ,IAAAA,MAAM,CACJ,OAAOF,OAAO,CAACG,IAAR,CAAaC,QAAb,CAAsB,CAAtB,CAAP,KAAoC,QAApC,GACIJ,OAAO,CAACG,IAAR,CAAaC,QAAb,CAAsB,CAAtB,EAAyBR,KAAzB,CAA+BS,KAA/B,CAAqCN,aAArC,CAAmDO,OAAnD,CAA2DR,KAA3D,CAAiED,OADrE,GAEI,KAHA,CAAN,CAIEU,IAJF,CAIOd,YAJP;AAKD,GAnCC,CAAF;AAoCD,CArCO,CAAR","sourcesContent":["import type { FC } from \"react\";\nimport React from \"react\";\nimport Animated, { useAnimatedStyle, useDerivedValue } from \"react-native-reanimated\";\nimport renderer from \"react-test-renderer\";\n\ndescribe(\"useSharedValue\", () => {\n it(\"retains value on rerender\", () => {\n const initialValue = 0;\n const updatedValue = 1;\n\n interface Props {\n key: string\n value: number\n }\n\n const TestComponent: FC<Props> = (props) => {\n const opacity = useDerivedValue(() => props.value, [props.value]);\n const animatedStyle = useAnimatedStyle(() => ({\n opacity: opacity.value,\n }), [opacity]);\n\n return <Animated.View style={animatedStyle} />;\n };\n\n // When rendering with initial value\n const wrapper = renderer.create(<TestComponent key=\"box\" value={initialValue} />);\n\n expect(\n typeof wrapper.root.children[0] !== \"string\"\n ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity\n : false,\n ).toBe(initialValue);\n\n // When rendering with updated value\n wrapper.update(<TestComponent key=\"box\" value={updatedValue} />);\n\n expect(\n typeof wrapper.root.children[0] !== \"string\"\n ? wrapper.root.children[0].props.style.animatedStyle.current.value.opacity\n : false,\n ).toBe(initialValue);\n });\n});\n"]}
@@ -1,5 +1,6 @@
1
1
  import { useSharedValue, useAnimatedReaction } from "react-native-reanimated";
2
- import { computeNewIndexWhenDataChanges } from "../utils/computeNewIndexWhenDataChanges";
2
+ import { computeOffsetIfDataChanged } from "../utils/compute-offset-if-data-changed";
3
+ import { computeOffsetIfSizeChanged } from "../utils/compute-offset-if-size-changed";
3
4
  import { handlerOffsetDirection } from "../utils/handleroffset-direction";
4
5
  export function useCommonVariables(props) {
5
6
  const {
@@ -18,6 +19,7 @@ export function useCommonVariables(props) {
18
19
 
19
20
  const handlerOffset = defaultScrollOffsetValue !== null && defaultScrollOffsetValue !== void 0 ? defaultScrollOffsetValue : _handlerOffset;
20
21
  const prevDataLength = useSharedValue(dataLength);
22
+ const prevSize = useSharedValue(size);
21
23
  /**
22
24
  * When data changes, we need to compute new index for handlerOffset
23
25
  */
@@ -43,7 +45,7 @@ export function useCommonVariables(props) {
43
45
  if (shouldComputed) {
44
46
  // direction -> 1 | -1
45
47
  const direction = handlerOffsetDirection(handlerOffset);
46
- handlerOffset.value = computeNewIndexWhenDataChanges({
48
+ handlerOffset.value = computeOffsetIfDataChanged({
47
49
  direction,
48
50
  previousLength,
49
51
  currentLength,
@@ -52,6 +54,35 @@ export function useCommonVariables(props) {
52
54
  });
53
55
  }
54
56
  }, [dataLength, loop]);
57
+ /**
58
+ * When size changes, we need to compute new index for handlerOffset
59
+ */
60
+
61
+ useAnimatedReaction(() => {
62
+ const previousSize = prevSize.value;
63
+ const isSizeChanged = previousSize !== size;
64
+ const shouldComputed = isSizeChanged;
65
+ if (shouldComputed) prevSize.value = size;
66
+ return {
67
+ shouldComputed,
68
+ previousSize,
69
+ size
70
+ };
71
+ }, _ref2 => {
72
+ let {
73
+ shouldComputed,
74
+ previousSize,
75
+ size
76
+ } = _ref2;
77
+
78
+ if (shouldComputed) {
79
+ handlerOffset.value = computeOffsetIfSizeChanged({
80
+ handlerOffset: handlerOffset.value,
81
+ prevSize: previousSize,
82
+ size
83
+ });
84
+ }
85
+ }, [size]);
55
86
  return {
56
87
  size,
57
88
  validLength: dataLength - 1,
@@ -1 +1 @@
1
- {"version":3,"sources":["useCommonVariables.ts"],"names":["useSharedValue","useAnimatedReaction","computeNewIndexWhenDataChanges","handlerOffsetDirection","useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","previousLength","value","currentLength","isLengthChanged","shouldComputed","direction","validLength"],"mappings":"AACA,SAASA,cAAT,EAAyBC,mBAAzB,QAAoD,yBAApD;AAIA,SAASC,8BAAT,QAA+C,yCAA/C;AACA,SAASC,sBAAT,QAAuC,kCAAvC;AAQA,OAAO,SAASC,kBAAT,CACLC,KADK,EAEa;AAClB,QAAM;AACJC,IAAAA,QADI;AAEJC,IAAAA,MAFI;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,UAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,wBANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAMQ,IAAI,GAAGP,QAAQ,GAAGC,MAAH,GAAYC,KAAjC;AACA,QAAMM,yBAAyB,GAAG,CAACC,IAAI,CAACC,GAAL,CAASN,YAAY,GAAGG,IAAxB,CAAnC;;AACA,QAAMI,cAAc,GAAGjB,cAAc,CAASc,yBAAT,CAArC;;AACA,QAAMI,aAAa,GAAGP,wBAAH,aAAGA,wBAAH,cAAGA,wBAAH,GAA+BM,cAAlD;AACA,QAAME,cAAc,GAAGnB,cAAc,CAACS,UAAD,CAArC;AAEA;AACF;AACA;;AACER,EAAAA,mBAAmB,CAAC,MAAM;AACxB,UAAMmB,cAAc,GAAGD,cAAc,CAACE,KAAtC;AACA,UAAMC,aAAa,GAAGb,UAAtB;AACA,UAAMc,eAAe,GAAGH,cAAc,KAAKE,aAA3C;AACA,UAAME,cAAc,GAAGD,eAAe,IAAIX,IAA1C;AAEA,QAAIY,cAAJ,EACEL,cAAc,CAACE,KAAf,GAAuBZ,UAAvB;AAEF,WAAO;AACLe,MAAAA,cADK;AAELJ,MAAAA,cAFK;AAGLE,MAAAA;AAHK,KAAP;AAKD,GAdkB,EAchB,QAAuD;AAAA,QAAtD;AAAEE,MAAAA,cAAF;AAAkBJ,MAAAA,cAAlB;AAAkCE,MAAAA;AAAlC,KAAsD;;AACxD,QAAIE,cAAJ,EAAoB;AAClB;AACA,YAAMC,SAAS,GAAGtB,sBAAsB,CAACe,aAAD,CAAxC;AAEAA,MAAAA,aAAa,CAACG,KAAd,GAAsBnB,8BAA8B,CAAC;AACnDuB,QAAAA,SADmD;AAEnDL,QAAAA,cAFmD;AAGnDE,QAAAA,aAHmD;AAInDT,QAAAA,IAJmD;AAKnDK,QAAAA,aAAa,EAAEA,aAAa,CAACG;AALsB,OAAD,CAApD;AAOD;AACF,GA3BkB,EA2BhB,CAACZ,UAAD,EAAaG,IAAb,CA3BgB,CAAnB;AA6BA,SAAO;AACLC,IAAAA,IADK;AAELa,IAAAA,WAAW,EAAEjB,UAAU,GAAG,CAFrB;AAGLS,IAAAA;AAHK,GAAP;AAKD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { computeNewIndexWhenDataChanges } from \"../utils/computeNewIndexWhenDataChanges\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n\n /**\n * When data changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = isLengthChanged && loop;\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeNewIndexWhenDataChanges({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n return {\n size,\n validLength: dataLength - 1,\n handlerOffset,\n };\n}\n"]}
1
+ {"version":3,"sources":["useCommonVariables.ts"],"names":["useSharedValue","useAnimatedReaction","computeOffsetIfDataChanged","computeOffsetIfSizeChanged","handlerOffsetDirection","useCommonVariables","props","vertical","height","width","dataLength","defaultIndex","defaultScrollOffsetValue","loop","size","defaultHandlerOffsetValue","Math","abs","_handlerOffset","handlerOffset","prevDataLength","prevSize","previousLength","value","currentLength","isLengthChanged","shouldComputed","direction","previousSize","isSizeChanged","validLength"],"mappings":"AACA,SAASA,cAAT,EAAyBC,mBAAzB,QAAoD,yBAApD;AAIA,SAASC,0BAAT,QAA2C,yCAA3C;AACA,SAASC,0BAAT,QAA2C,yCAA3C;AACA,SAASC,sBAAT,QAAuC,kCAAvC;AAQA,OAAO,SAASC,kBAAT,CACLC,KADK,EAEa;AAClB,QAAM;AACJC,IAAAA,QADI;AAEJC,IAAAA,MAFI;AAGJC,IAAAA,KAHI;AAIJC,IAAAA,UAJI;AAKJC,IAAAA,YALI;AAMJC,IAAAA,wBANI;AAOJC,IAAAA;AAPI,MAQFP,KARJ;AASA,QAAMQ,IAAI,GAAGP,QAAQ,GAAGC,MAAH,GAAYC,KAAjC;AACA,QAAMM,yBAAyB,GAAG,CAACC,IAAI,CAACC,GAAL,CAASN,YAAY,GAAGG,IAAxB,CAAnC;;AACA,QAAMI,cAAc,GAAGlB,cAAc,CAASe,yBAAT,CAArC;;AACA,QAAMI,aAAa,GAAGP,wBAAH,aAAGA,wBAAH,cAAGA,wBAAH,GAA+BM,cAAlD;AACA,QAAME,cAAc,GAAGpB,cAAc,CAACU,UAAD,CAArC;AACA,QAAMW,QAAQ,GAAGrB,cAAc,CAACc,IAAD,CAA/B;AAEA;AACF;AACA;;AACEb,EAAAA,mBAAmB,CAAC,MAAM;AACxB,UAAMqB,cAAc,GAAGF,cAAc,CAACG,KAAtC;AACA,UAAMC,aAAa,GAAGd,UAAtB;AACA,UAAMe,eAAe,GAAGH,cAAc,KAAKE,aAA3C;AACA,UAAME,cAAc,GAAID,eAAe,IAAIZ,IAA3C;AAEA,QAAIa,cAAJ,EACEN,cAAc,CAACG,KAAf,GAAuBb,UAAvB;AAEF,WAAO;AACLgB,MAAAA,cADK;AAELJ,MAAAA,cAFK;AAGLE,MAAAA;AAHK,KAAP;AAKD,GAdkB,EAchB,QAAuD;AAAA,QAAtD;AAAEE,MAAAA,cAAF;AAAkBJ,MAAAA,cAAlB;AAAkCE,MAAAA;AAAlC,KAAsD;;AACxD,QAAIE,cAAJ,EAAoB;AAClB;AACA,YAAMC,SAAS,GAAGvB,sBAAsB,CAACe,aAAD,CAAxC;AAEAA,MAAAA,aAAa,CAACI,KAAd,GAAsBrB,0BAA0B,CAAC;AAC/CyB,QAAAA,SAD+C;AAE/CL,QAAAA,cAF+C;AAG/CE,QAAAA,aAH+C;AAI/CV,QAAAA,IAJ+C;AAK/CK,QAAAA,aAAa,EAAEA,aAAa,CAACI;AALkB,OAAD,CAAhD;AAOD;AACF,GA3BkB,EA2BhB,CAACb,UAAD,EAAaG,IAAb,CA3BgB,CAAnB;AA6BA;AACF;AACA;;AACEZ,EAAAA,mBAAmB,CAAC,MAAM;AACxB,UAAM2B,YAAY,GAAGP,QAAQ,CAACE,KAA9B;AACA,UAAMM,aAAa,GAAGD,YAAY,KAAKd,IAAvC;AACA,UAAMY,cAAc,GAAGG,aAAvB;AAEA,QAAIH,cAAJ,EACEL,QAAQ,CAACE,KAAT,GAAiBT,IAAjB;AAEF,WAAO;AACLY,MAAAA,cADK;AAELE,MAAAA,YAFK;AAGLd,MAAAA;AAHK,KAAP;AAKD,GAbkB,EAahB,SAA4C;AAAA,QAA3C;AAAEY,MAAAA,cAAF;AAAkBE,MAAAA,YAAlB;AAAgCd,MAAAA;AAAhC,KAA2C;;AAC7C,QAAIY,cAAJ,EAAoB;AAClBP,MAAAA,aAAa,CAACI,KAAd,GAAsBpB,0BAA0B,CAAC;AAC/CgB,QAAAA,aAAa,EAAEA,aAAa,CAACI,KADkB;AAE/CF,QAAAA,QAAQ,EAAEO,YAFqC;AAG/Cd,QAAAA;AAH+C,OAAD,CAAhD;AAKD;AACF,GArBkB,EAqBhB,CAACA,IAAD,CArBgB,CAAnB;AAuBA,SAAO;AACLA,IAAAA,IADK;AAELgB,IAAAA,WAAW,EAAEpB,UAAU,GAAG,CAFrB;AAGLS,IAAAA;AAHK,GAAP;AAKD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { useSharedValue, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport { computeOffsetIfDataChanged } from \"../utils/compute-offset-if-data-changed\";\nimport { computeOffsetIfSizeChanged } from \"../utils/compute-offset-if-size-changed\";\nimport { handlerOffsetDirection } from \"../utils/handleroffset-direction\";\n\ninterface ICommonVariables {\n size: number\n validLength: number\n handlerOffset: Animated.SharedValue<number>\n}\n\nexport function useCommonVariables(\n props: TInitializeCarouselProps<any>,\n): ICommonVariables {\n const {\n vertical,\n height,\n width,\n dataLength,\n defaultIndex,\n defaultScrollOffsetValue,\n loop,\n } = props;\n const size = vertical ? height : width;\n const defaultHandlerOffsetValue = -Math.abs(defaultIndex * size);\n const _handlerOffset = useSharedValue<number>(defaultHandlerOffsetValue);\n const handlerOffset = defaultScrollOffsetValue ?? _handlerOffset;\n const prevDataLength = useSharedValue(dataLength);\n const prevSize = useSharedValue(size);\n\n /**\n * When data changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousLength = prevDataLength.value;\n const currentLength = dataLength;\n const isLengthChanged = previousLength !== currentLength;\n const shouldComputed = (isLengthChanged && loop);\n\n if (shouldComputed)\n prevDataLength.value = dataLength;\n\n return {\n shouldComputed,\n previousLength,\n currentLength,\n };\n }, ({ shouldComputed, previousLength, currentLength }) => {\n if (shouldComputed) {\n // direction -> 1 | -1\n const direction = handlerOffsetDirection(handlerOffset);\n\n handlerOffset.value = computeOffsetIfDataChanged({\n direction,\n previousLength,\n currentLength,\n size,\n handlerOffset: handlerOffset.value,\n });\n }\n }, [dataLength, loop]);\n\n /**\n * When size changes, we need to compute new index for handlerOffset\n */\n useAnimatedReaction(() => {\n const previousSize = prevSize.value;\n const isSizeChanged = previousSize !== size;\n const shouldComputed = isSizeChanged;\n\n if (shouldComputed)\n prevSize.value = size;\n\n return {\n shouldComputed,\n previousSize,\n size,\n };\n }, ({ shouldComputed, previousSize, size }) => {\n if (shouldComputed) {\n handlerOffset.value = computeOffsetIfSizeChanged({\n handlerOffset: handlerOffset.value,\n prevSize: previousSize,\n size,\n });\n }\n }, [size]);\n\n return {\n size,\n validLength: dataLength - 1,\n handlerOffset,\n };\n}\n"]}
@@ -0,0 +1,34 @@
1
+ import { renderHook } from "@testing-library/react-hooks";
2
+ import { useCommonVariables } from "./useCommonVariables";
3
+ const input = {
4
+ vertical: false,
5
+ width: 700,
6
+ height: 350,
7
+ loop: true,
8
+ enabled: true,
9
+ testID: "xxx",
10
+ style: {
11
+ width: "100%"
12
+ },
13
+ autoPlay: false,
14
+ autoPlayInterval: 2000,
15
+ data: [0, 1, 2, 3],
16
+ pagingEnabled: true,
17
+ defaultIndex: 0,
18
+ autoFillData: true,
19
+ dataLength: 4,
20
+ rawData: [0, 1, 2, 3],
21
+ rawDataLength: 4,
22
+ scrollAnimationDuration: 500,
23
+ snapEnabled: true,
24
+ overscrollEnabled: true
25
+ };
26
+ describe("useCommonVariables", () => {
27
+ it("should return the correct values", async () => {
28
+ const hook = renderHook(() => useCommonVariables(input));
29
+ expect(hook.result.current.size).toMatchInlineSnapshot("700");
30
+ expect(hook.result.current.validLength).toMatchInlineSnapshot("3");
31
+ expect(hook.result.current.handlerOffset.value).toMatchInlineSnapshot("-0");
32
+ });
33
+ });
34
+ //# sourceMappingURL=useCommonVariables.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["useCommonVariables.test.tsx"],"names":["renderHook","useCommonVariables","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":"AAAA,SAASA,UAAT,QAA2B,8BAA3B;AAEA,SAASC,kBAAT,QAAmC,sBAAnC;AAIA,MAAMC,KAAK,GAAG;AACZC,EAAAA,QAAQ,EAAE,KADE;AAEZC,EAAAA,KAAK,EAAE,GAFK;AAGZC,EAAAA,MAAM,EAAE,GAHI;AAIZC,EAAAA,IAAI,EAAE,IAJM;AAKZC,EAAAA,OAAO,EAAE,IALG;AAMZC,EAAAA,MAAM,EAAE,KANI;AAOZC,EAAAA,KAAK,EAAE;AACLL,IAAAA,KAAK,EAAE;AADF,GAPK;AAUZM,EAAAA,QAAQ,EAAE,KAVE;AAWZC,EAAAA,gBAAgB,EAAE,IAXN;AAYZC,EAAAA,IAAI,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAZM;AAaZC,EAAAA,aAAa,EAAE,IAbH;AAcZC,EAAAA,YAAY,EAAE,CAdF;AAeZC,EAAAA,YAAY,EAAE,IAfF;AAgBZC,EAAAA,UAAU,EAAE,CAhBA;AAiBZC,EAAAA,OAAO,EAAE,CAAC,CAAD,EAAI,CAAJ,EAAO,CAAP,EAAU,CAAV,CAjBG;AAkBZC,EAAAA,aAAa,EAAE,CAlBH;AAmBZC,EAAAA,uBAAuB,EAAE,GAnBb;AAoBZC,EAAAA,WAAW,EAAE,IApBD;AAqBZC,EAAAA,iBAAiB,EAAE;AArBP,CAAd;AAwBAC,QAAQ,CAAC,oBAAD,EAAuB,MAAM;AACnCC,EAAAA,EAAE,CAAC,kCAAD,EAAqC,YAAY;AACjD,UAAMC,IAAI,GAAGxB,UAAU,CAAC,MAAMC,kBAAkB,CAACC,KAAD,CAAzB,CAAvB;AAEAuB,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBC,IAArB,CAAN,CAAiCC,qBAAjC,CAAuD,KAAvD;AACAJ,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBG,WAArB,CAAN,CAAwCD,qBAAxC,CAA8D,GAA9D;AACAJ,IAAAA,MAAM,CAACD,IAAI,CAACE,MAAL,CAAYC,OAAZ,CAAoBI,aAApB,CAAkCC,KAAnC,CAAN,CAAgDH,qBAAhD,CACE,IADF;AAGD,GARC,CAAF;AASD,CAVO,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(\n \"-0\",\n );\n });\n});\n"]}