react-native-reanimated-carousel 5.0.0-beta.7 → 5.0.0-beta.8

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 (38) hide show
  1. package/README.md +32 -2
  2. package/lib/commonjs/components/CarouselLayout.js +1 -1
  3. package/lib/commonjs/components/CarouselLayout.js.map +1 -1
  4. package/lib/module/components/CarouselLayout.js +1 -1
  5. package/lib/module/components/CarouselLayout.js.map +1 -1
  6. package/lib/typescript/components/CarouselLayout.d.ts.map +1 -1
  7. package/package.json +4 -2
  8. package/src/components/CarouselLayout.tsx +3 -4
  9. package/src/components/Carousel.test.tsx +0 -1215
  10. package/src/components/LazyView.test.tsx +0 -61
  11. package/src/components/Pagination/Pagination.test.tsx +0 -178
  12. package/src/components/ScrollViewGesture.test.tsx +0 -155
  13. package/src/components/issue-899-parallax-reverse-loop.test.tsx +0 -131
  14. package/src/components/rnr-demo.test.tsx +0 -53
  15. package/src/hooks/useAutoPlay.test.ts +0 -194
  16. package/src/hooks/useCarouselController.test.tsx +0 -1158
  17. package/src/hooks/useCheckMounted.test.ts +0 -47
  18. package/src/hooks/useCommonVariables.test.tsx +0 -384
  19. package/src/hooks/useInitProps.test.tsx +0 -134
  20. package/src/hooks/useLayoutConfig.test.tsx +0 -247
  21. package/src/hooks/useOffsetX.test.ts +0 -54
  22. package/src/hooks/useOnProgressChange.test.tsx +0 -270
  23. package/src/hooks/usePanGestureProxy.test.tsx +0 -368
  24. package/src/hooks/usePropsErrorBoundary.test.tsx +0 -57
  25. package/src/hooks/useUpdateGestureConfig.test.ts +0 -89
  26. package/src/hooks/useVisibleRanges.test.tsx +0 -347
  27. package/src/layouts/parallax.test.ts +0 -239
  28. package/src/layouts/stack.test.ts +0 -252
  29. package/src/store/index.test.tsx +0 -314
  30. package/src/utils/compute-gesture-translation.test.ts +0 -70
  31. package/src/utils/compute-offset-if-data-changed.test.ts +0 -133
  32. package/src/utils/compute-offset-if-size-changed.test.ts +0 -78
  33. package/src/utils/computed-with-auto-fill-data.test.ts +0 -298
  34. package/src/utils/deal-with-animation.test.ts +0 -181
  35. package/src/utils/handleroffset-direction.test.ts +0 -124
  36. package/src/utils/index.test.ts +0 -90
  37. package/src/utils/log.test.ts +0 -134
  38. package/src/utils/sanitize-animation-style.test.ts +0 -40
@@ -1,124 +0,0 @@
1
- import { useSharedValue } from "react-native-reanimated";
2
-
3
- import { renderHook } from "@testing-library/react-hooks";
4
-
5
- import { handlerOffsetDirection } from "./handleroffset-direction";
6
-
7
- describe("handlerOffsetDirection", () => {
8
- it("should return -1 when default value equals to zero", () => {
9
- const result = renderHook(() => {
10
- const handlerOffsetAnimVal = useSharedValue(0);
11
- return handlerOffsetDirection(handlerOffsetAnimVal);
12
- });
13
-
14
- expect(result.result.current).toBe(-1);
15
- });
16
-
17
- it("should return 1 when default value is greater than zero", () => {
18
- const result = renderHook(() => {
19
- const handlerOffsetAnimVal = useSharedValue(1);
20
- return handlerOffsetDirection(handlerOffsetAnimVal);
21
- });
22
-
23
- expect(result.result.current).toBe(1);
24
- });
25
-
26
- it("should return -1 when default value is less than zero", () => {
27
- const result = renderHook(() => {
28
- const handlerOffsetAnimVal = useSharedValue(-1);
29
- return handlerOffsetDirection(handlerOffsetAnimVal);
30
- });
31
-
32
- expect(result.result.current).toBe(-1);
33
- });
34
-
35
- it("should return 1 when default value equals to zero and fixedDirection is negative", () => {
36
- const result = renderHook(() => {
37
- const handlerOffsetAnimVal = useSharedValue(-1);
38
- return handlerOffsetDirection(handlerOffsetAnimVal, "positive");
39
- });
40
-
41
- expect(result.result.current).toBe(1);
42
- });
43
-
44
- it("should return -1 when default value is greater than zero and fixedDirection is negative", () => {
45
- const result = renderHook(() => {
46
- const handlerOffsetAnimVal = useSharedValue(1);
47
- return handlerOffsetDirection(handlerOffsetAnimVal, "negative");
48
- });
49
-
50
- expect(result.result.current).toBe(-1);
51
- });
52
-
53
- it("should handle fractional positive values", () => {
54
- const result = renderHook(() => {
55
- const handlerOffsetAnimVal = useSharedValue(0.5);
56
- return handlerOffsetDirection(handlerOffsetAnimVal);
57
- });
58
-
59
- expect(result.result.current).toBe(1);
60
- });
61
-
62
- it("should handle fractional negative values", () => {
63
- const result = renderHook(() => {
64
- const handlerOffsetAnimVal = useSharedValue(-0.5);
65
- return handlerOffsetDirection(handlerOffsetAnimVal);
66
- });
67
-
68
- expect(result.result.current).toBe(-1);
69
- });
70
-
71
- it("should handle large positive values", () => {
72
- const result = renderHook(() => {
73
- const handlerOffsetAnimVal = useSharedValue(1000);
74
- return handlerOffsetDirection(handlerOffsetAnimVal);
75
- });
76
-
77
- expect(result.result.current).toBe(1);
78
- });
79
-
80
- it("should handle large negative values", () => {
81
- const result = renderHook(() => {
82
- const handlerOffsetAnimVal = useSharedValue(-1000);
83
- return handlerOffsetDirection(handlerOffsetAnimVal);
84
- });
85
-
86
- expect(result.result.current).toBe(-1);
87
- });
88
-
89
- it("should override with positive fixed direction", () => {
90
- const result = renderHook(() => {
91
- const handlerOffsetAnimVal = useSharedValue(-100);
92
- return handlerOffsetDirection(handlerOffsetAnimVal, "positive");
93
- });
94
-
95
- expect(result.result.current).toBe(1);
96
- });
97
-
98
- it("should override with negative fixed direction", () => {
99
- const result = renderHook(() => {
100
- const handlerOffsetAnimVal = useSharedValue(100);
101
- return handlerOffsetDirection(handlerOffsetAnimVal, "negative");
102
- });
103
-
104
- expect(result.result.current).toBe(-1);
105
- });
106
-
107
- it("should handle very small positive values", () => {
108
- const result = renderHook(() => {
109
- const handlerOffsetAnimVal = useSharedValue(0.001);
110
- return handlerOffsetDirection(handlerOffsetAnimVal);
111
- });
112
-
113
- expect(result.result.current).toBe(1);
114
- });
115
-
116
- it("should handle very small negative values", () => {
117
- const result = renderHook(() => {
118
- const handlerOffsetAnimVal = useSharedValue(-0.001);
119
- return handlerOffsetDirection(handlerOffsetAnimVal);
120
- });
121
-
122
- expect(result.result.current).toBe(-1);
123
- });
124
- });
@@ -1,90 +0,0 @@
1
- import { computeOffsetIfDataChanged } from "./compute-offset-if-data-changed";
2
-
3
- describe("should work as expected", () => {
4
- const size = 375;
5
- const positive = -1;
6
- const negative = 1;
7
-
8
- const params = (params: {
9
- direction: "positive" | "negative";
10
- currentIndex: number;
11
- previousLength: number;
12
- currentLength: number;
13
- }) => {
14
- const { currentIndex, direction: _direction, previousLength, currentLength } = params;
15
- const direction = _direction === "negative" ? negative : positive;
16
- return {
17
- direction,
18
- handlerOffset: size * currentIndex * direction,
19
- size,
20
- previousLength,
21
- currentLength,
22
- };
23
- };
24
-
25
- it("The direction is negative, And changing length of data set from 4 to 3, the new index will to be 2.", async () => {
26
- const currentIndex = 1;
27
- const handlerOffset = computeOffsetIfDataChanged(
28
- params({
29
- currentIndex,
30
- direction: "negative",
31
- previousLength: 4,
32
- currentLength: 3,
33
- })
34
- );
35
-
36
- expect(handlerOffset / size).toBe(2 * positive);
37
- });
38
-
39
- it("The direction is negative, Changing length of data set from 4 to 3, the index remains original.", async () => {
40
- const handlerOffset = computeOffsetIfDataChanged(
41
- params({
42
- currentIndex: 2,
43
- direction: "negative",
44
- previousLength: 4,
45
- currentLength: 3,
46
- })
47
- );
48
-
49
- expect(handlerOffset / size).toBe(1 * negative);
50
- });
51
-
52
- it("The direction is positive, Changing length of data set from 4 to 5, the index remains original.", async () => {
53
- const handlerOffset = computeOffsetIfDataChanged(
54
- params({
55
- currentIndex: 3,
56
- direction: "positive",
57
- previousLength: 4,
58
- currentLength: 5,
59
- })
60
- );
61
-
62
- expect(handlerOffset / size).toBe(3 * positive);
63
- });
64
-
65
- it("The direction is negative, Changing length of data set from 4 to 5, the index remains original.", async () => {
66
- const handlerOffset = computeOffsetIfDataChanged(
67
- params({
68
- currentIndex: 3,
69
- direction: "negative",
70
- previousLength: 4,
71
- currentLength: 5,
72
- })
73
- );
74
-
75
- expect(handlerOffset / size).toBe(4 * negative);
76
- });
77
-
78
- it("Changing length of data set from 0 to 3, the index remains original.", async () => {
79
- const handlerOffset = computeOffsetIfDataChanged(
80
- params({
81
- currentIndex: 0,
82
- direction: "positive",
83
- previousLength: 0,
84
- currentLength: 3,
85
- })
86
- );
87
-
88
- expect(handlerOffset / size).toBe(0 * positive);
89
- });
90
- });
@@ -1,134 +0,0 @@
1
- import { log, round } from "./log";
2
-
3
- describe("log utilities", () => {
4
- describe("log", () => {
5
- const mockConsoleLog = jest.fn();
6
- const originalConsoleLog = console.log;
7
-
8
- beforeEach(() => {
9
- console.log = mockConsoleLog;
10
- });
11
-
12
- afterEach(() => {
13
- mockConsoleLog.mockClear();
14
- console.log = originalConsoleLog;
15
- });
16
-
17
- it("should call console.log with provided arguments", () => {
18
- const args = ["test", 123, { key: "value" }];
19
- log(...args);
20
-
21
- expect(mockConsoleLog).toHaveBeenCalledWith(...args);
22
- });
23
-
24
- it("should handle single argument", () => {
25
- log("test");
26
- expect(mockConsoleLog).toHaveBeenCalledWith("test");
27
- });
28
-
29
- it("should handle multiple arguments", () => {
30
- log("test", 123, true);
31
- expect(mockConsoleLog).toHaveBeenCalledWith("test", 123, true);
32
- });
33
-
34
- it("should handle no arguments", () => {
35
- log();
36
- expect(mockConsoleLog).toHaveBeenCalledWith();
37
- });
38
-
39
- it("should handle null and undefined", () => {
40
- log(null, undefined);
41
- expect(mockConsoleLog).toHaveBeenCalledWith(null, undefined);
42
- });
43
-
44
- it("should handle complex objects", () => {
45
- const complexObj = {
46
- nested: { array: [1, 2, 3] },
47
- func: () => "test",
48
- date: new Date("2023-01-01"),
49
- };
50
- log(complexObj);
51
- expect(mockConsoleLog).toHaveBeenCalledWith(complexObj);
52
- });
53
-
54
- it("should handle arrays", () => {
55
- const arr = [1, "two", { three: 3 }];
56
- log(arr);
57
- expect(mockConsoleLog).toHaveBeenCalledWith(arr);
58
- });
59
-
60
- it("should handle mixed types", () => {
61
- log("string", 42, true, null, undefined, { key: "value" }, [1, 2, 3]);
62
- expect(mockConsoleLog).toHaveBeenCalledWith(
63
- "string",
64
- 42,
65
- true,
66
- null,
67
- undefined,
68
- { key: "value" },
69
- [1, 2, 3]
70
- );
71
- });
72
- });
73
-
74
- describe("round", () => {
75
- it("should round positive numbers correctly", () => {
76
- expect(round(1.4)).toBe(1);
77
- expect(round(1.5)).toBe(2);
78
- expect(round(1.6)).toBe(2);
79
- });
80
-
81
- it("should round negative numbers correctly", () => {
82
- expect(round(-1.4)).toBe(-1);
83
- expect(round(-1.5)).toBe(-1);
84
- expect(round(-1.6)).toBe(-2);
85
- });
86
-
87
- it("should handle zero values", () => {
88
- expect(round(0)).toBe(0);
89
- expect(round(-0)).toBe(-0);
90
- expect(1 / round(-0)).toBe(Number.NEGATIVE_INFINITY);
91
- });
92
-
93
- it("should handle integers", () => {
94
- expect(round(5)).toBe(5);
95
- expect(round(-5)).toBe(-5);
96
- });
97
-
98
- it("should handle decimal places", () => {
99
- expect(round(Math.PI)).toBe(3);
100
- expect(round(-Math.PI)).toBe(-3);
101
- });
102
-
103
- it("should handle edge cases", () => {
104
- expect(round(0.5)).toBe(1);
105
- expect(round(-0.5)).toBe(-0);
106
- expect(round(1.999999)).toBe(2);
107
- expect(round(-1.999999)).toBe(-2);
108
- });
109
-
110
- it("should handle very large numbers", () => {
111
- expect(round(1e10 + 0.4)).toBe(1e10);
112
- expect(round(1e10 + 0.6)).toBe(1e10 + 1);
113
- });
114
-
115
- it("should handle very small numbers", () => {
116
- expect(round(0.00001)).toBe(0);
117
- expect(round(-0.00001)).toBe(-0);
118
- });
119
-
120
- it("should handle Infinity", () => {
121
- expect(round(Number.POSITIVE_INFINITY)).toBe(Number.POSITIVE_INFINITY);
122
- expect(round(Number.NEGATIVE_INFINITY)).toBe(Number.NEGATIVE_INFINITY);
123
- });
124
-
125
- it("should handle NaN", () => {
126
- expect(round(Number.NaN)).toBe(Number.NaN);
127
- });
128
-
129
- it("should handle floating point precision issues", () => {
130
- expect(round(0.1 + 0.2)).toBe(0); // 0.1 + 0.2 = 0.30000000000000004
131
- expect(round(1.1 + 1.2)).toBe(2); // Should round to 2
132
- });
133
- });
134
- });
@@ -1,40 +0,0 @@
1
- import { sanitizeAnimationStyle } from "./sanitize-animation-style";
2
-
3
- describe("sanitizeAnimationStyle", () => {
4
- it("rounds zIndex to an integer", () => {
5
- const style = sanitizeAnimationStyle({
6
- transform: [{ translateX: 12 }],
7
- zIndex: 3.7,
8
- });
9
-
10
- expect(style.zIndex).toBe(4);
11
- });
12
-
13
- it("drops invalid zIndex values", () => {
14
- const style = sanitizeAnimationStyle({
15
- // invalid value from userland worklet should not flow to native styles
16
- zIndex: Number.NaN,
17
- });
18
-
19
- expect(style).not.toHaveProperty("zIndex");
20
- });
21
-
22
- it("returns empty object for null/undefined input", () => {
23
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
- expect(sanitizeAnimationStyle(null as any)).toEqual({});
25
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
26
- expect(sanitizeAnimationStyle(undefined as any)).toEqual({});
27
- });
28
-
29
- it("strips non-number zIndex (e.g. string)", () => {
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
- const style = sanitizeAnimationStyle({ opacity: 1, zIndex: "auto" as any });
32
- expect(style).not.toHaveProperty("zIndex");
33
- expect(style).toHaveProperty("opacity", 1);
34
- });
35
-
36
- it("preserves style without zIndex unchanged", () => {
37
- const style = sanitizeAnimationStyle({ opacity: 0.5 });
38
- expect(style).toEqual({ opacity: 0.5 });
39
- });
40
- });