react-native-reanimated-carousel 4.0.0 → 4.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -40
- package/lib/commonjs/components/Carousel.js +1 -42
- package/lib/commonjs/components/Carousel.js.map +1 -1
- package/lib/commonjs/components/Carousel.test.js +2 -678
- package/lib/commonjs/components/Carousel.test.js.map +1 -1
- package/lib/commonjs/components/CarouselLayout.js +1 -211
- package/lib/commonjs/components/CarouselLayout.js.map +1 -1
- package/lib/commonjs/components/ItemLayout.js +1 -98
- package/lib/commonjs/components/ItemLayout.js.map +1 -1
- package/lib/commonjs/components/ItemRenderer.js +1 -79
- package/lib/commonjs/components/ItemRenderer.js.map +1 -1
- package/lib/commonjs/components/LazyView.js +1 -21
- package/lib/commonjs/components/LazyView.js.map +1 -1
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js +1 -83
- package/lib/commonjs/components/Pagination/Basic/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Basic/index.js +1 -53
- package/lib/commonjs/components/Pagination/Basic/index.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js +1 -88
- package/lib/commonjs/components/Pagination/Custom/PaginationItem.js.map +1 -1
- package/lib/commonjs/components/Pagination/Custom/index.js +1 -61
- package/lib/commonjs/components/Pagination/Custom/index.js.map +1 -1
- package/lib/commonjs/components/Pagination/index.js +1 -16
- package/lib/commonjs/components/Pagination/index.js.map +1 -1
- package/lib/commonjs/components/ScrollViewGesture.js +1 -362
- package/lib/commonjs/components/ScrollViewGesture.js.map +1 -1
- package/lib/commonjs/components/rnr-demo.test.js +1 -44
- package/lib/commonjs/components/rnr-demo.test.js.map +1 -1
- package/lib/commonjs/constants/index.js +1 -21
- package/lib/commonjs/constants/index.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.js +1 -56
- package/lib/commonjs/hooks/useAutoPlay.js.map +1 -1
- package/lib/commonjs/hooks/useAutoPlay.test.js +1 -154
- package/lib/commonjs/hooks/useAutoPlay.test.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.js +1 -301
- package/lib/commonjs/hooks/useCarouselController.js.map +1 -1
- package/lib/commonjs/hooks/useCarouselController.test.js +1 -456
- package/lib/commonjs/hooks/useCarouselController.test.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.js +1 -23
- package/lib/commonjs/hooks/useCheckMounted.js.map +1 -1
- package/lib/commonjs/hooks/useCheckMounted.test.js +1 -44
- package/lib/commonjs/hooks/useCheckMounted.test.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.js +1 -102
- package/lib/commonjs/hooks/useCommonVariables.js.map +1 -1
- package/lib/commonjs/hooks/useCommonVariables.test.js +1 -37
- package/lib/commonjs/hooks/useCommonVariables.test.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.js +1 -78
- package/lib/commonjs/hooks/useInitProps.js.map +1 -1
- package/lib/commonjs/hooks/useInitProps.test.js +1 -126
- package/lib/commonjs/hooks/useInitProps.test.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.js +1 -39
- package/lib/commonjs/hooks/useLayoutConfig.js.map +1 -1
- package/lib/commonjs/hooks/useLayoutConfig.test.js +1 -241
- package/lib/commonjs/hooks/useLayoutConfig.test.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.js +1 -51
- package/lib/commonjs/hooks/useOffsetX.js.map +1 -1
- package/lib/commonjs/hooks/useOffsetX.test.js +2 -40
- package/lib/commonjs/hooks/useOffsetX.test.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.js +1 -46
- package/lib/commonjs/hooks/useOnProgressChange.js.map +1 -1
- package/lib/commonjs/hooks/useOnProgressChange.test.js +1 -162
- package/lib/commonjs/hooks/useOnProgressChange.test.js.map +1 -1
- package/lib/commonjs/hooks/usePanGestureProxy.js +1 -117
- package/lib/commonjs/hooks/usePanGestureProxy.js.map +1 -1
- package/lib/commonjs/hooks/usePanGestureProxy.test.js +1 -419
- package/lib/commonjs/hooks/usePanGestureProxy.test.js.map +1 -1
- package/lib/commonjs/hooks/usePropsErrorBoundary.js +1 -36
- package/lib/commonjs/hooks/usePropsErrorBoundary.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.js +1 -19
- package/lib/commonjs/hooks/useUpdateGestureConfig.js.map +1 -1
- package/lib/commonjs/hooks/useUpdateGestureConfig.test.js +1 -91
- package/lib/commonjs/hooks/useUpdateGestureConfig.test.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.js +1 -71
- package/lib/commonjs/hooks/useVisibleRanges.js.map +1 -1
- package/lib/commonjs/hooks/useVisibleRanges.test.js +7 -101
- package/lib/commonjs/hooks/useVisibleRanges.test.js.map +1 -1
- package/lib/commonjs/index.js +1 -21
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/layouts/index.js +1 -20
- package/lib/commonjs/layouts/index.js.map +1 -1
- package/lib/commonjs/layouts/normal.js +1 -27
- package/lib/commonjs/layouts/normal.js.map +1 -1
- package/lib/commonjs/layouts/parallax.js +1 -38
- package/lib/commonjs/layouts/parallax.js.map +1 -1
- package/lib/commonjs/layouts/stack.js +1 -213
- package/lib/commonjs/layouts/stack.js.map +1 -1
- package/lib/commonjs/layouts/stack.test.js +3 -22
- package/lib/commonjs/layouts/stack.test.js.map +1 -1
- package/lib/commonjs/store/index.js +1 -67
- package/lib/commonjs/store/index.js.map +1 -1
- package/lib/commonjs/types.js +1 -5
- package/lib/commonjs/utils/compute-offset-if-data-changed.js +1 -51
- package/lib/commonjs/utils/compute-offset-if-data-changed.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js +1 -29
- package/lib/commonjs/utils/compute-offset-if-data-changed.test.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-size-changed.js +1 -17
- package/lib/commonjs/utils/compute-offset-if-size-changed.js.map +1 -1
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.js +1 -71
- package/lib/commonjs/utils/compute-offset-if-size-changed.test.js.map +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.js +1 -123
- package/lib/commonjs/utils/computed-with-auto-fill-data.js.map +1 -1
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js +1 -179
- package/lib/commonjs/utils/computed-with-auto-fill-data.test.js.map +1 -1
- package/lib/commonjs/utils/deal-with-animation.js +1 -20
- package/lib/commonjs/utils/deal-with-animation.js.map +1 -1
- package/lib/commonjs/utils/deal-with-animation.test.js +1 -75
- package/lib/commonjs/utils/deal-with-animation.test.js.map +1 -1
- package/lib/commonjs/utils/handleroffset-direction.js +1 -15
- package/lib/commonjs/utils/handleroffset-direction.js.map +1 -1
- package/lib/commonjs/utils/handleroffset-direction.test.js +1 -45
- package/lib/commonjs/utils/handleroffset-direction.test.js.map +1 -1
- package/lib/commonjs/utils/index.test.js +1 -73
- package/lib/commonjs/utils/index.test.js.map +1 -1
- package/lib/commonjs/utils/log.js +1 -21
- package/lib/commonjs/utils/log.js.map +1 -1
- package/lib/commonjs/utils/log.test.js +1 -57
- package/lib/commonjs/utils/log.test.js.map +1 -1
- package/lib/module/hooks/useOnProgressChange.js +1 -1
- package/lib/module/hooks/useOnProgressChange.js.map +1 -1
- package/package.json +7 -2
- package/src/hooks/useOnProgressChange.ts +1 -1
|
@@ -1,40 +1,2 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useLayoutConfig = useLayoutConfig;
|
|
7
|
-
|
|
8
|
-
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
|
|
10
|
-
var _layouts = require("../layouts");
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
|
-
|
|
14
|
-
function useLayoutConfig(opts) {
|
|
15
|
-
const {
|
|
16
|
-
size,
|
|
17
|
-
vertical
|
|
18
|
-
} = opts;
|
|
19
|
-
return _react.default.useMemo(() => {
|
|
20
|
-
const baseConfig = {
|
|
21
|
-
size,
|
|
22
|
-
vertical
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
switch (opts.mode) {
|
|
26
|
-
case "parallax":
|
|
27
|
-
return _layouts.Layouts.parallax(baseConfig, opts.modeConfig);
|
|
28
|
-
|
|
29
|
-
case "horizontal-stack":
|
|
30
|
-
return _layouts.Layouts.horizontalStack(opts.modeConfig);
|
|
31
|
-
|
|
32
|
-
case "vertical-stack":
|
|
33
|
-
return _layouts.Layouts.verticalStack(opts.modeConfig);
|
|
34
|
-
|
|
35
|
-
default:
|
|
36
|
-
return _layouts.Layouts.normal(baseConfig);
|
|
37
|
-
}
|
|
38
|
-
}, [opts.mode, opts.modeConfig, size, vertical]);
|
|
39
|
-
}
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");Object.defineProperty(exports,"__esModule",{value:true});exports.useLayoutConfig=useLayoutConfig;var _react=_interopRequireDefault(require("react"));var _layouts=require("../layouts");function useLayoutConfig(opts){var _ref=opts,size=_ref.size,vertical=_ref.vertical;return _react.default.useMemo(function(){var baseConfig={size:size,vertical:vertical};switch(opts.mode){case"parallax":return _layouts.Layouts.parallax(baseConfig,opts.modeConfig);case"horizontal-stack":return _layouts.Layouts.horizontalStack(opts.modeConfig);case"vertical-stack":return _layouts.Layouts.verticalStack(opts.modeConfig);default:return _layouts.Layouts.normal(baseConfig);}},[opts.mode,opts.modeConfig,size,vertical]);}
|
|
40
2
|
//# sourceMappingURL=useLayoutConfig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useLayoutConfig.ts"],"names":["useLayoutConfig","opts","size","vertical","React","useMemo","baseConfig","mode","Layouts","parallax","modeConfig","horizontalStack","verticalStack","normal"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["useLayoutConfig.ts"],"names":["useLayoutConfig","opts","size","vertical","React","useMemo","baseConfig","mode","Layouts","parallax","modeConfig","horizontalStack","verticalStack","normal"],"mappings":"oLAAA,oDAKA,mCAIO,QAASA,CAAAA,eAAT,CAA4BC,IAA5B,CAAyE,CAC9E,SAA2BA,IAA3B,CAAQC,IAAR,MAAQA,IAAR,CAAcC,QAAd,MAAcA,QAAd,CAEA,MAAOC,gBAAMC,OAAN,CAAc,UAAM,CACzB,GAAMC,CAAAA,UAAU,CAAG,CAAEJ,IAAI,CAAJA,IAAF,CAAQC,QAAQ,CAARA,QAAR,CAAnB,CACA,OAAQF,IAAI,CAACM,IAAb,EACE,IAAK,UAAL,CACE,MAAOC,kBAAQC,QAAR,CAAiBH,UAAjB,CAA6BL,IAAI,CAACS,UAAlC,CAAP,CACF,IAAK,kBAAL,CACE,MAAOF,kBAAQG,eAAR,CAAwBV,IAAI,CAACS,UAA7B,CAAP,CACF,IAAK,gBAAL,CACE,MAAOF,kBAAQI,aAAR,CAAsBX,IAAI,CAACS,UAA3B,CAAP,CACF,QACE,MAAOF,kBAAQK,MAAR,CAAeP,UAAf,CAAP,CARJ,CAUD,CAZM,CAYJ,CAACL,IAAI,CAACM,IAAN,CAAYN,IAAI,CAACS,UAAjB,CAA6BR,IAA7B,CAAmCC,QAAnC,CAZI,CAAP,CAaD","sourcesContent":["import React from \"react\";\n\nimport type { TInitializeCarouselProps } from \"./useInitProps\";\n\nimport type { TAnimationStyle } from \"../components/ItemLayout\";\nimport { Layouts } from \"../layouts\";\n\ntype TLayoutConfigOpts<T> = TInitializeCarouselProps<T> & { size: number };\n\nexport function useLayoutConfig<T>(opts: TLayoutConfigOpts<T>): TAnimationStyle {\n const { size, vertical } = opts as Required<TLayoutConfigOpts<T>>;\n\n return React.useMemo(() => {\n const baseConfig = { size, vertical };\n switch (opts.mode) {\n case \"parallax\":\n return Layouts.parallax(baseConfig, opts.modeConfig);\n case \"horizontal-stack\":\n return Layouts.horizontalStack(opts.modeConfig);\n case \"vertical-stack\":\n return Layouts.verticalStack(opts.modeConfig);\n default:\n return Layouts.normal(baseConfig);\n }\n }, [opts.mode, opts.modeConfig, size, vertical]);\n}\n"]}
|
|
@@ -1,242 +1,2 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
var _react = _interopRequireDefault(require("react"));
|
|
4
|
-
|
|
5
|
-
var _reactNative = require("react-native");
|
|
6
|
-
|
|
7
|
-
var _reactHooks = require("@testing-library/react-hooks");
|
|
8
|
-
|
|
9
|
-
var _useLayoutConfig = require("./useLayoutConfig");
|
|
10
|
-
|
|
11
|
-
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
-
|
|
13
|
-
describe("useLayoutConfig", () => {
|
|
14
|
-
const defaultProps = {
|
|
15
|
-
size: 300,
|
|
16
|
-
vertical: false
|
|
17
|
-
};
|
|
18
|
-
it("should return normal layout by default", () => {
|
|
19
|
-
const {
|
|
20
|
-
result
|
|
21
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...defaultProps,
|
|
22
|
-
data: [],
|
|
23
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
24
|
-
loop: false,
|
|
25
|
-
autoFillData: false,
|
|
26
|
-
defaultIndex: 0,
|
|
27
|
-
autoPlayInterval: 0,
|
|
28
|
-
scrollAnimationDuration: 0,
|
|
29
|
-
width: 0,
|
|
30
|
-
height: 0,
|
|
31
|
-
rawData: [],
|
|
32
|
-
dataLength: 0,
|
|
33
|
-
rawDataLength: 0
|
|
34
|
-
}));
|
|
35
|
-
expect(result.current).toBeDefined();
|
|
36
|
-
expect(typeof result.current).toBe("function");
|
|
37
|
-
});
|
|
38
|
-
it("should handle parallax mode", () => {
|
|
39
|
-
const props = { ...defaultProps,
|
|
40
|
-
mode: "parallax",
|
|
41
|
-
modeConfig: {
|
|
42
|
-
parallaxScrollingScale: 0.9,
|
|
43
|
-
parallaxScrollingOffset: 50,
|
|
44
|
-
parallaxAdjacentItemScale: 0.8
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
const {
|
|
48
|
-
result
|
|
49
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...props,
|
|
50
|
-
data: [],
|
|
51
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
52
|
-
loop: false,
|
|
53
|
-
autoFillData: false,
|
|
54
|
-
defaultIndex: 0,
|
|
55
|
-
autoPlayInterval: 0,
|
|
56
|
-
scrollAnimationDuration: 0,
|
|
57
|
-
width: 0,
|
|
58
|
-
height: 0,
|
|
59
|
-
rawData: [],
|
|
60
|
-
dataLength: 0,
|
|
61
|
-
rawDataLength: 0
|
|
62
|
-
}));
|
|
63
|
-
const style = result.current(0); // Test with offset 0
|
|
64
|
-
|
|
65
|
-
expect(style.transform).toBeDefined();
|
|
66
|
-
expect(style.transform).toContainEqual({
|
|
67
|
-
translateX: 0
|
|
68
|
-
});
|
|
69
|
-
expect(style.transform).toContainEqual({
|
|
70
|
-
scale: 0.9
|
|
71
|
-
});
|
|
72
|
-
});
|
|
73
|
-
it("should handle horizontal-stack mode", () => {
|
|
74
|
-
const props = { ...defaultProps,
|
|
75
|
-
mode: "horizontal-stack",
|
|
76
|
-
modeConfig: {
|
|
77
|
-
snapDirection: "left",
|
|
78
|
-
showLength: 3
|
|
79
|
-
}
|
|
80
|
-
};
|
|
81
|
-
const {
|
|
82
|
-
result
|
|
83
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...props,
|
|
84
|
-
data: [],
|
|
85
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
86
|
-
loop: false,
|
|
87
|
-
autoFillData: false,
|
|
88
|
-
defaultIndex: 0,
|
|
89
|
-
autoPlayInterval: 0,
|
|
90
|
-
scrollAnimationDuration: 0,
|
|
91
|
-
width: 0,
|
|
92
|
-
height: 0,
|
|
93
|
-
rawData: [],
|
|
94
|
-
dataLength: 0,
|
|
95
|
-
rawDataLength: 0
|
|
96
|
-
}));
|
|
97
|
-
const style = result.current(0); // Test with offset 0
|
|
98
|
-
|
|
99
|
-
expect(style.transform).toBeDefined();
|
|
100
|
-
expect(style.zIndex).toBeDefined();
|
|
101
|
-
expect(style.opacity).toBeDefined();
|
|
102
|
-
});
|
|
103
|
-
it("should handle vertical-stack mode", () => {
|
|
104
|
-
const props = { ...defaultProps,
|
|
105
|
-
mode: "vertical-stack",
|
|
106
|
-
modeConfig: {
|
|
107
|
-
snapDirection: "left",
|
|
108
|
-
showLength: 3
|
|
109
|
-
}
|
|
110
|
-
};
|
|
111
|
-
const {
|
|
112
|
-
result
|
|
113
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...props,
|
|
114
|
-
data: [],
|
|
115
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
116
|
-
loop: false,
|
|
117
|
-
autoFillData: false,
|
|
118
|
-
defaultIndex: 0,
|
|
119
|
-
autoPlayInterval: 0,
|
|
120
|
-
scrollAnimationDuration: 0,
|
|
121
|
-
width: 0,
|
|
122
|
-
height: 0,
|
|
123
|
-
rawData: [],
|
|
124
|
-
dataLength: 0,
|
|
125
|
-
rawDataLength: 0
|
|
126
|
-
}));
|
|
127
|
-
const style = result.current(0); // Test with offset 0
|
|
128
|
-
|
|
129
|
-
expect(style.transform).toBeDefined();
|
|
130
|
-
expect(style.zIndex).toBeDefined();
|
|
131
|
-
expect(style.opacity).toBeDefined();
|
|
132
|
-
});
|
|
133
|
-
it("should handle vertical orientation", () => {
|
|
134
|
-
const props = { ...defaultProps,
|
|
135
|
-
vertical: true
|
|
136
|
-
};
|
|
137
|
-
const {
|
|
138
|
-
result
|
|
139
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...props,
|
|
140
|
-
data: [],
|
|
141
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
142
|
-
loop: false,
|
|
143
|
-
autoFillData: false,
|
|
144
|
-
defaultIndex: 0,
|
|
145
|
-
autoPlayInterval: 0,
|
|
146
|
-
scrollAnimationDuration: 0,
|
|
147
|
-
width: 0,
|
|
148
|
-
height: 0,
|
|
149
|
-
rawData: [],
|
|
150
|
-
dataLength: 0,
|
|
151
|
-
rawDataLength: 0
|
|
152
|
-
}));
|
|
153
|
-
const style = result.current(0); // Test with offset 0
|
|
154
|
-
|
|
155
|
-
expect(style.transform).toBeDefined();
|
|
156
|
-
expect(style.transform).toContainEqual({
|
|
157
|
-
translateY: 0
|
|
158
|
-
});
|
|
159
|
-
});
|
|
160
|
-
it("should handle different offsets", () => {
|
|
161
|
-
const {
|
|
162
|
-
result
|
|
163
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...defaultProps,
|
|
164
|
-
data: [],
|
|
165
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
166
|
-
loop: false,
|
|
167
|
-
autoFillData: false,
|
|
168
|
-
defaultIndex: 0,
|
|
169
|
-
autoPlayInterval: 0,
|
|
170
|
-
scrollAnimationDuration: 0,
|
|
171
|
-
width: 0,
|
|
172
|
-
height: 0,
|
|
173
|
-
rawData: [],
|
|
174
|
-
dataLength: 0,
|
|
175
|
-
rawDataLength: 0
|
|
176
|
-
}));
|
|
177
|
-
const style1 = result.current(-1); // Previous item
|
|
178
|
-
|
|
179
|
-
const style2 = result.current(0); // Current item
|
|
180
|
-
|
|
181
|
-
const style3 = result.current(1); // Next item
|
|
182
|
-
|
|
183
|
-
expect(style1.transform).toContainEqual({
|
|
184
|
-
translateX: -300
|
|
185
|
-
});
|
|
186
|
-
expect(style2.transform).toContainEqual({
|
|
187
|
-
translateX: 0
|
|
188
|
-
});
|
|
189
|
-
expect(style3.transform).toContainEqual({
|
|
190
|
-
translateX: 300
|
|
191
|
-
});
|
|
192
|
-
});
|
|
193
|
-
it("should memoize layout function", () => {
|
|
194
|
-
const {
|
|
195
|
-
result,
|
|
196
|
-
rerender
|
|
197
|
-
} = (0, _reactHooks.renderHook)(() => (0, _useLayoutConfig.useLayoutConfig)({ ...defaultProps,
|
|
198
|
-
data: [],
|
|
199
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
200
|
-
loop: false,
|
|
201
|
-
autoFillData: false,
|
|
202
|
-
defaultIndex: 0,
|
|
203
|
-
autoPlayInterval: 0,
|
|
204
|
-
scrollAnimationDuration: 0,
|
|
205
|
-
width: 0,
|
|
206
|
-
height: 0,
|
|
207
|
-
rawData: [],
|
|
208
|
-
dataLength: 0,
|
|
209
|
-
rawDataLength: 0
|
|
210
|
-
}));
|
|
211
|
-
const firstResult = result.current;
|
|
212
|
-
rerender();
|
|
213
|
-
expect(result.current).toBe(firstResult);
|
|
214
|
-
});
|
|
215
|
-
it("should update layout when props change", () => {
|
|
216
|
-
const {
|
|
217
|
-
result,
|
|
218
|
-
rerender
|
|
219
|
-
} = (0, _reactHooks.renderHook)(props => (0, _useLayoutConfig.useLayoutConfig)({ ...props,
|
|
220
|
-
data: [],
|
|
221
|
-
renderItem: () => /*#__PURE__*/_react.default.createElement(_reactNative.View, null),
|
|
222
|
-
loop: false,
|
|
223
|
-
autoFillData: false,
|
|
224
|
-
defaultIndex: 0,
|
|
225
|
-
autoPlayInterval: 0,
|
|
226
|
-
scrollAnimationDuration: 0,
|
|
227
|
-
width: 0,
|
|
228
|
-
height: 0,
|
|
229
|
-
rawData: [],
|
|
230
|
-
dataLength: 0,
|
|
231
|
-
rawDataLength: 0
|
|
232
|
-
}), {
|
|
233
|
-
initialProps: defaultProps
|
|
234
|
-
});
|
|
235
|
-
const firstResult = result.current;
|
|
236
|
-
rerender({ ...defaultProps,
|
|
237
|
-
size: 400
|
|
238
|
-
});
|
|
239
|
-
expect(result.current).not.toBe(firstResult);
|
|
240
|
-
});
|
|
241
|
-
});
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _react=_interopRequireDefault(require("react"));var _reactNative=require("react-native");var _reactHooks=require("@testing-library/react-hooks");var _useLayoutConfig=require("./useLayoutConfig");var _jsxRuntime=require("react/jsx-runtime");var _this=this,_jsxFileName="/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useLayoutConfig.test.tsx";describe("useLayoutConfig",function(){var defaultProps={size:300,vertical:false};it("should return normal layout by default",function(){var _renderHook=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},defaultProps,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook.result;expect(result.current).toBeDefined();expect(typeof result.current).toBe("function");});it("should handle parallax mode",function(){var props=Object.assign({},defaultProps,{mode:"parallax",modeConfig:{parallaxScrollingScale:0.9,parallaxScrollingOffset:50,parallaxAdjacentItemScale:0.8}});var _renderHook2=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook2.result;var style=result.current(0);expect(style.transform).toBeDefined();expect(style.transform).toContainEqual({translateX:0});expect(style.transform).toContainEqual({scale:0.9});});it("should handle horizontal-stack mode",function(){var props=Object.assign({},defaultProps,{mode:"horizontal-stack",modeConfig:{snapDirection:"left",showLength:3}});var _renderHook3=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook3.result;var style=result.current(0);expect(style.transform).toBeDefined();expect(style.zIndex).toBeDefined();expect(style.opacity).toBeDefined();});it("should handle vertical-stack mode",function(){var props=Object.assign({},defaultProps,{mode:"vertical-stack",modeConfig:{snapDirection:"left",showLength:3}});var _renderHook4=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook4.result;var style=result.current(0);expect(style.transform).toBeDefined();expect(style.zIndex).toBeDefined();expect(style.opacity).toBeDefined();});it("should handle vertical orientation",function(){var props=Object.assign({},defaultProps,{vertical:true});var _renderHook5=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook5.result;var style=result.current(0);expect(style.transform).toBeDefined();expect(style.transform).toContainEqual({translateY:0});});it("should handle different offsets",function(){var _renderHook6=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},defaultProps,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook6.result;var style1=result.current(-1);var style2=result.current(0);var style3=result.current(1);expect(style1.transform).toContainEqual({translateX:-300});expect(style2.transform).toContainEqual({translateX:0});expect(style3.transform).toContainEqual({translateX:300});});it("should memoize layout function",function(){var _renderHook7=(0,_reactHooks.renderHook)(function(){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},defaultProps,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));}),result=_renderHook7.result,rerender=_renderHook7.rerender;var firstResult=result.current;rerender();expect(result.current).toBe(firstResult);});it("should update layout when props change",function(){var _renderHook8=(0,_reactHooks.renderHook)(function(props){return(0,_useLayoutConfig.useLayoutConfig)(Object.assign({},props,{data:[],renderItem:function renderItem(){return(0,_jsxRuntime.jsx)(_reactNative.View,{});},loop:false,autoFillData:false,defaultIndex:0,autoPlayInterval:0,scrollAnimationDuration:0,width:0,height:0,rawData:[],dataLength:0,rawDataLength:0}));},{initialProps:defaultProps}),result=_renderHook8.result,rerender=_renderHook8.rerender;var firstResult=result.current;rerender(Object.assign({},defaultProps,{size:400}));expect(result.current).not.toBe(firstResult);});});
|
|
242
2
|
//# sourceMappingURL=useLayoutConfig.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useLayoutConfig.test.tsx"],"names":["describe","defaultProps","size","vertical","it","result","data","renderItem","loop","autoFillData","defaultIndex","autoPlayInterval","scrollAnimationDuration","width","height","rawData","dataLength","rawDataLength","expect","current","toBeDefined","toBe","props","mode","modeConfig","parallaxScrollingScale","parallaxScrollingOffset","parallaxAdjacentItemScale","style","transform","toContainEqual","translateX","scale","snapDirection","showLength","zIndex","opacity","translateY","style1","style2","style3","rerender","firstResult","initialProps","not"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { View } from \"react-native\";\n\nimport { renderHook } from \"@testing-library/react-hooks\";\n\nimport { useLayoutConfig } from \"./useLayoutConfig\";\n\ndescribe(\"useLayoutConfig\", () => {\n const defaultProps = {\n size: 300,\n vertical: false,\n };\n it(\"should return normal layout by default\", () => {\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n\n expect(result.current).toBeDefined();\n expect(typeof result.current).toBe(\"function\");\n });\n\n it(\"should handle parallax mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"parallax\" as const,\n modeConfig: {\n parallaxScrollingScale: 0.9,\n parallaxScrollingOffset: 50,\n parallaxAdjacentItemScale: 0.8,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.transform).toContainEqual({ translateX: 0 });\n expect(style.transform).toContainEqual({ scale: 0.9 });\n });\n\n it(\"should handle horizontal-stack mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"horizontal-stack\" as const,\n modeConfig: {\n snapDirection: \"left\" as const,\n showLength: 3,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.zIndex).toBeDefined();\n expect(style.opacity).toBeDefined();\n });\n\n it(\"should handle vertical-stack mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"vertical-stack\" as const,\n modeConfig: {\n snapDirection: \"left\" as const,\n showLength: 3,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.zIndex).toBeDefined();\n expect(style.opacity).toBeDefined();\n });\n\n it(\"should handle vertical orientation\", () => {\n const props = {\n ...defaultProps,\n vertical: true,\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.transform).toContainEqual({ translateY: 0 });\n });\n\n it(\"should handle different offsets\", () => {\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n\n const style1 = result.current(-1); // Previous item\n const style2 = result.current(0); // Current item\n const style3 = result.current(1); // Next item\n\n expect(style1.transform).toContainEqual({ translateX: -300 });\n expect(style2.transform).toContainEqual({ translateX: 0 });\n expect(style3.transform).toContainEqual({ translateX: 300 });\n });\n\n it(\"should memoize layout function\", () => {\n const { result, rerender } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const firstResult = result.current;\n\n rerender();\n expect(result.current).toBe(firstResult);\n });\n\n it(\"should update layout when props change\", () => {\n const { result, rerender } = renderHook(\n (props) =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n }),\n {\n initialProps: defaultProps,\n }\n );\n const firstResult = result.current;\n\n rerender({ ...defaultProps, size: 400 });\n expect(result.current).not.toBe(firstResult);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["useLayoutConfig.test.tsx"],"names":["describe","defaultProps","size","vertical","it","data","renderItem","loop","autoFillData","defaultIndex","autoPlayInterval","scrollAnimationDuration","width","height","rawData","dataLength","rawDataLength","result","expect","current","toBeDefined","toBe","props","mode","modeConfig","parallaxScrollingScale","parallaxScrollingOffset","parallaxAdjacentItemScale","style","transform","toContainEqual","translateX","scale","snapDirection","showLength","zIndex","opacity","translateY","style1","style2","style3","rerender","firstResult","initialProps","not"],"mappings":"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","sourcesContent":["import React from \"react\";\nimport { View } from \"react-native\";\n\nimport { renderHook } from \"@testing-library/react-hooks\";\n\nimport { useLayoutConfig } from \"./useLayoutConfig\";\n\ndescribe(\"useLayoutConfig\", () => {\n const defaultProps = {\n size: 300,\n vertical: false,\n };\n it(\"should return normal layout by default\", () => {\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n\n expect(result.current).toBeDefined();\n expect(typeof result.current).toBe(\"function\");\n });\n\n it(\"should handle parallax mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"parallax\" as const,\n modeConfig: {\n parallaxScrollingScale: 0.9,\n parallaxScrollingOffset: 50,\n parallaxAdjacentItemScale: 0.8,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.transform).toContainEqual({ translateX: 0 });\n expect(style.transform).toContainEqual({ scale: 0.9 });\n });\n\n it(\"should handle horizontal-stack mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"horizontal-stack\" as const,\n modeConfig: {\n snapDirection: \"left\" as const,\n showLength: 3,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.zIndex).toBeDefined();\n expect(style.opacity).toBeDefined();\n });\n\n it(\"should handle vertical-stack mode\", () => {\n const props = {\n ...defaultProps,\n mode: \"vertical-stack\" as const,\n modeConfig: {\n snapDirection: \"left\" as const,\n showLength: 3,\n },\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.zIndex).toBeDefined();\n expect(style.opacity).toBeDefined();\n });\n\n it(\"should handle vertical orientation\", () => {\n const props = {\n ...defaultProps,\n vertical: true,\n };\n\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const style = result.current(0); // Test with offset 0\n\n expect(style.transform).toBeDefined();\n expect(style.transform).toContainEqual({ translateY: 0 });\n });\n\n it(\"should handle different offsets\", () => {\n const { result } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n\n const style1 = result.current(-1); // Previous item\n const style2 = result.current(0); // Current item\n const style3 = result.current(1); // Next item\n\n expect(style1.transform).toContainEqual({ translateX: -300 });\n expect(style2.transform).toContainEqual({ translateX: 0 });\n expect(style3.transform).toContainEqual({ translateX: 300 });\n });\n\n it(\"should memoize layout function\", () => {\n const { result, rerender } = renderHook(() =>\n useLayoutConfig({\n ...defaultProps,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n })\n );\n const firstResult = result.current;\n\n rerender();\n expect(result.current).toBe(firstResult);\n });\n\n it(\"should update layout when props change\", () => {\n const { result, rerender } = renderHook(\n (props) =>\n useLayoutConfig({\n ...props,\n data: [],\n renderItem: () => <View />,\n loop: false,\n autoFillData: false,\n defaultIndex: 0,\n autoPlayInterval: 0,\n scrollAnimationDuration: 0,\n width: 0,\n height: 0,\n rawData: [],\n dataLength: 0,\n rawDataLength: 0,\n }),\n {\n initialProps: defaultProps,\n }\n );\n const firstResult = result.current;\n\n rerender({ ...defaultProps, size: 400 });\n expect(result.current).not.toBe(firstResult);\n });\n});\n"]}
|
|
@@ -1,52 +1,2 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useOffsetX = void 0;
|
|
7
|
-
|
|
8
|
-
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
-
|
|
10
|
-
const useOffsetX = (opts, visibleRanges) => {
|
|
11
|
-
const {
|
|
12
|
-
handlerOffset,
|
|
13
|
-
index,
|
|
14
|
-
size,
|
|
15
|
-
loop,
|
|
16
|
-
dataLength,
|
|
17
|
-
type = "positive",
|
|
18
|
-
viewCount: _viewCount
|
|
19
|
-
} = opts;
|
|
20
|
-
const ITEM_LENGTH = dataLength;
|
|
21
|
-
const VALID_LENGTH = ITEM_LENGTH - 1;
|
|
22
|
-
const TOTAL_WIDTH = size * ITEM_LENGTH;
|
|
23
|
-
const HALF_WIDTH = 0.5 * size;
|
|
24
|
-
const viewCount = _viewCount !== null && _viewCount !== void 0 ? _viewCount : Math.round((ITEM_LENGTH - 1) / 2);
|
|
25
|
-
const positiveCount = type === "positive" ? viewCount : VALID_LENGTH - viewCount;
|
|
26
|
-
let startPos = size * index;
|
|
27
|
-
if (index > positiveCount) startPos = (index - ITEM_LENGTH) * size;
|
|
28
|
-
const MAX = positiveCount * size;
|
|
29
|
-
const MIN = -((VALID_LENGTH - positiveCount) * size);
|
|
30
|
-
const x = (0, _reactNativeReanimated.useDerivedValue)(() => {
|
|
31
|
-
const {
|
|
32
|
-
negativeRange,
|
|
33
|
-
positiveRange
|
|
34
|
-
} = visibleRanges.value;
|
|
35
|
-
|
|
36
|
-
if (index >= negativeRange[0] && index <= negativeRange[1] || index >= positiveRange[0] && index <= positiveRange[1]) {
|
|
37
|
-
if (loop) {
|
|
38
|
-
const inputRange = [-TOTAL_WIDTH, MIN - HALF_WIDTH - startPos - Number.MIN_VALUE, MIN - HALF_WIDTH - startPos, 0, MAX + HALF_WIDTH - startPos, MAX + HALF_WIDTH - startPos + Number.MIN_VALUE, TOTAL_WIDTH];
|
|
39
|
-
const outputRange = [startPos, MAX + HALF_WIDTH - Number.MIN_VALUE, MIN - HALF_WIDTH, startPos, MAX + HALF_WIDTH, MIN - HALF_WIDTH + Number.MIN_VALUE, startPos];
|
|
40
|
-
return (0, _reactNativeReanimated.interpolate)(handlerOffset.value, inputRange, outputRange, _reactNativeReanimated.Extrapolation.CLAMP);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
return handlerOffset.value + size * index;
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
return Number.MAX_SAFE_INTEGER;
|
|
47
|
-
}, [loop, dataLength, viewCount, type, size, visibleRanges, handlerOffset]);
|
|
48
|
-
return x;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
exports.useOffsetX = useOffsetX;
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.useOffsetX=void 0;var _reactNativeReanimated=require("react-native-reanimated");var _worklet_16646991936500_init_data={code:"function anonymous(){const{visibleRanges,index,loop,TOTAL_WIDTH,MIN,HALF_WIDTH,startPos,MAX,interpolate,handlerOffset,Extrapolation,size}=this.__closure;const{negativeRange:negativeRange,positiveRange:positiveRange}=visibleRanges.value;if(index>=negativeRange[0]&&index<=negativeRange[1]||index>=positiveRange[0]&&index<=positiveRange[1]){if(loop){const inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];const outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return interpolate(handlerOffset.value,inputRange,outputRange,Extrapolation.CLAMP);}return handlerOffset.value+size*index;}return Number.MAX_SAFE_INTEGER;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts",sourceMap:"{\"version\":3,\"mappings\":\"AAwC4B,QAAAA,UAAA,EAAM,qIAC9B,KAAM,CAAEC,aAAa,CAAbA,aAAF,CAAiBC,2BAAjB,EAAmCC,aAAa,CAACC,KAAvD,wGAEA,GACGC,IADH,CACQ,CAGN,KAAAC,WAAU,GAAAC,WAAA,CAAAC,GAAA,CAAAC,UAAA,CAAAC,QAAA,CAAAC,MAAA,CAAAC,SAAA,CAAAJ,GAAA,CAAAC,UAAA,CAAAC,QAAA,GAAAG,GAAA,CAAAJ,UAAA,CAAAC,QAAA,CAAAG,GAAA,CAAAJ,UAAA,CAAAC,QAAA,CAAAC,MAAA,CAAAC,SAAA,CAAAL,WAAA,CAAV,CACE,KAAMD,YAAU,CACd,CAACC,QAAD,CAACA,GACDC,CAAGC,UADFF,CACDC,MAAmBE,UADnB,CAC8BC,GAAOC,WADrC,CAEGF,QAFH,CAEMD,GAAND,CAAmBE,UAFnB,CAIAG,GAAG,CAAGJ,UAANI,CAAmBH,gBAJnB,CAKMD,QALN,CADF,CAUA,MAAMK,YAAW,CAAAC,aAEfF,MAFe,CAETJ,UAFS,CAEIE,WAFJ,CAEWC,aACpBH,MAHS,CAAjB,CAUA,CACF,MAAAM,cAAA,CAAAX,KAAA,CAAAY,IAAA,CAAAX,KAAA,EAEA,MAAAM,OAAOI,iBAAP,CACF\",\"names\":[\"anonymous\",\"negativeRange\",\"positiveRange\",\"visibleRanges\",\"value\",\"index\",\"inputRange\",\"TOTAL_WIDTH\",\"MIN\",\"HALF_WIDTH\",\"startPos\",\"Number\",\"MIN_VALUE\",\"MAX\",\"outputRange\",\"handlerOffset\",\"size\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOffsetX.ts\"]}",version:"3.10.1"};var useOffsetX=function useOffsetX(opts,visibleRanges){var handlerOffset=opts.handlerOffset,index=opts.index,size=opts.size,loop=opts.loop,dataLength=opts.dataLength,_opts$type=opts.type,type=_opts$type===void 0?"positive":_opts$type,_viewCount=opts.viewCount;var ITEM_LENGTH=dataLength;var VALID_LENGTH=ITEM_LENGTH-1;var TOTAL_WIDTH=size*ITEM_LENGTH;var HALF_WIDTH=0.5*size;var viewCount=_viewCount!=null?_viewCount:Math.round((ITEM_LENGTH-1)/2);var positiveCount=type==="positive"?viewCount:VALID_LENGTH-viewCount;var startPos=size*index;if(index>positiveCount)startPos=(index-ITEM_LENGTH)*size;var MAX=positiveCount*size;var MIN=-((VALID_LENGTH-positiveCount)*size);var x=(0,_reactNativeReanimated.useDerivedValue)(function(){var _e=[new global.Error(),-13,-27];var anonymous=function anonymous(){var _visibleRanges$value=visibleRanges.value,negativeRange=_visibleRanges$value.negativeRange,positiveRange=_visibleRanges$value.positiveRange;if(index>=negativeRange[0]&&index<=negativeRange[1]||index>=positiveRange[0]&&index<=positiveRange[1]){if(loop){var inputRange=[-TOTAL_WIDTH,MIN-HALF_WIDTH-startPos-Number.MIN_VALUE,MIN-HALF_WIDTH-startPos,0,MAX+HALF_WIDTH-startPos,MAX+HALF_WIDTH-startPos+Number.MIN_VALUE,TOTAL_WIDTH];var outputRange=[startPos,MAX+HALF_WIDTH-Number.MIN_VALUE,MIN-HALF_WIDTH,startPos,MAX+HALF_WIDTH,MIN-HALF_WIDTH+Number.MIN_VALUE,startPos];return(0,_reactNativeReanimated.interpolate)(handlerOffset.value,inputRange,outputRange,_reactNativeReanimated.Extrapolation.CLAMP);}return handlerOffset.value+size*index;}return Number.MAX_SAFE_INTEGER;};anonymous.__closure={visibleRanges:visibleRanges,index:index,loop:loop,TOTAL_WIDTH:TOTAL_WIDTH,MIN:MIN,HALF_WIDTH:HALF_WIDTH,startPos:startPos,MAX:MAX,interpolate:_reactNativeReanimated.interpolate,handlerOffset:handlerOffset,Extrapolation:_reactNativeReanimated.Extrapolation,size:size};anonymous.__workletHash=16646991936500;anonymous.__initData=_worklet_16646991936500_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[loop,dataLength,viewCount,type,size,visibleRanges,handlerOffset]);return x;};exports.useOffsetX=useOffsetX;
|
|
52
2
|
//# sourceMappingURL=useOffsetX.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffset","index","size","loop","dataLength","type","
|
|
1
|
+
{"version":3,"sources":["useOffsetX.ts"],"names":["useOffsetX","opts","visibleRanges","handlerOffset","index","size","loop","dataLength","type","_viewCount","viewCount","ITEM_LENGTH","VALID_LENGTH","TOTAL_WIDTH","HALF_WIDTH","Math","round","positiveCount","startPos","MAX","MIN","x","value","negativeRange","positiveRange","inputRange","Number","MIN_VALUE","outputRange","Extrapolation","CLAMP","MAX_SAFE_INTEGER","interpolate"],"mappings":"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","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { Extrapolation, interpolate, useDerivedValue } from \"react-native-reanimated\";\n\nimport type { IVisibleRanges } from \"./useVisibleRanges\";\n\nexport interface IOpts {\n index: number;\n size: number;\n handlerOffset: Animated.SharedValue<number>;\n dataLength: number;\n type?: \"positive\" | \"negative\";\n viewCount?: number;\n loop?: boolean;\n}\n\nexport const useOffsetX = (opts: IOpts, visibleRanges: IVisibleRanges) => {\n const {\n handlerOffset,\n index,\n size,\n loop,\n dataLength,\n type = \"positive\",\n viewCount: _viewCount,\n } = opts;\n\n const ITEM_LENGTH = dataLength;\n const VALID_LENGTH = ITEM_LENGTH - 1;\n const TOTAL_WIDTH = size * ITEM_LENGTH;\n const HALF_WIDTH = 0.5 * size;\n\n const viewCount = _viewCount ?? Math.round((ITEM_LENGTH - 1) / 2);\n const positiveCount = type === \"positive\" ? viewCount : VALID_LENGTH - viewCount;\n\n let startPos = size * index;\n if (index > positiveCount) startPos = (index - ITEM_LENGTH) * size;\n\n const MAX = positiveCount * size;\n const MIN = -((VALID_LENGTH - positiveCount) * size);\n\n const x = useDerivedValue(() => {\n const { negativeRange, positiveRange } = visibleRanges.value;\n\n if (\n (index >= negativeRange[0] && index <= negativeRange[1]) ||\n (index >= positiveRange[0] && index <= positiveRange[1])\n ) {\n if (loop) {\n const inputRange = [\n -TOTAL_WIDTH,\n MIN - HALF_WIDTH - startPos - Number.MIN_VALUE,\n MIN - HALF_WIDTH - startPos,\n 0,\n MAX + HALF_WIDTH - startPos,\n MAX + HALF_WIDTH - startPos + Number.MIN_VALUE,\n TOTAL_WIDTH,\n ];\n\n const outputRange = [\n startPos,\n MAX + HALF_WIDTH - Number.MIN_VALUE,\n MIN - HALF_WIDTH,\n startPos,\n MAX + HALF_WIDTH,\n MIN - HALF_WIDTH + Number.MIN_VALUE,\n startPos,\n ];\n\n return interpolate(handlerOffset.value, inputRange, outputRange, Extrapolation.CLAMP);\n }\n\n return handlerOffset.value + size * index;\n }\n\n return Number.MAX_SAFE_INTEGER;\n }, [loop, dataLength, viewCount, type, size, visibleRanges, handlerOffset]);\n\n return x;\n};\n"]}
|
|
@@ -1,40 +1,4 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
var _reactNativeReanimated = require("react-native-reanimated");
|
|
4
|
-
|
|
5
|
-
var _reactHooks = require("@testing-library/react-hooks");
|
|
6
|
-
|
|
7
|
-
var _useOffsetX = require("./useOffsetX");
|
|
8
|
-
|
|
9
|
-
describe("useSharedValue", () => {
|
|
10
|
-
it("should return the correct values", async () => {
|
|
11
|
-
const hook = (0, _reactHooks.renderHook)(() => {
|
|
12
|
-
const range = (0, _reactNativeReanimated.useSharedValue)({
|
|
13
|
-
negativeRange: [7, 9],
|
|
14
|
-
positiveRange: [0, 3]
|
|
15
|
-
});
|
|
16
|
-
const inputs = Array.from({
|
|
17
|
-
length: 10
|
|
18
|
-
}).map((_, index) => ({
|
|
19
|
-
config: {
|
|
20
|
-
dataLength: 10,
|
|
21
|
-
handlerOffset: (0, _reactNativeReanimated.useSharedValue)(-0),
|
|
22
|
-
index,
|
|
23
|
-
loop: false,
|
|
24
|
-
size: 393
|
|
25
|
-
},
|
|
26
|
-
range
|
|
27
|
-
}));
|
|
28
|
-
return inputs.map(input => {
|
|
29
|
-
const {
|
|
30
|
-
config,
|
|
31
|
-
range
|
|
32
|
-
} = input;
|
|
33
|
-
return (0, _useOffsetX.useOffsetX)(config, range);
|
|
34
|
-
});
|
|
35
|
-
});
|
|
36
|
-
const expected = hook.result.current.map(v => v.value).slice();
|
|
37
|
-
expect(expected).toMatchInlineSnapshot(`
|
|
1
|
+
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _asyncToGenerator2=_interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));var _reactNativeReanimated=require("react-native-reanimated");var _reactHooks=require("@testing-library/react-hooks");var _useOffsetX=require("./useOffsetX");describe("useSharedValue",function(){it("should return the correct values",(0,_asyncToGenerator2.default)(function*(){var hook=(0,_reactHooks.renderHook)(function(){var range=(0,_reactNativeReanimated.useSharedValue)({negativeRange:[7,9],positiveRange:[0,3]});var inputs=Array.from({length:10}).map(function(_,index){return{config:{dataLength:10,handlerOffset:(0,_reactNativeReanimated.useSharedValue)(-0),index:index,loop:false,size:393},range:range};});return inputs.map(function(input){var config=input.config,range=input.range;return(0,_useOffsetX.useOffsetX)(config,range);});});var expected=hook.result.current.map(function(v){return v.value;}).slice();expect(expected).toMatchInlineSnapshot(`
|
|
38
2
|
[
|
|
39
3
|
0,
|
|
40
4
|
393,
|
|
@@ -47,7 +11,5 @@ describe("useSharedValue", () => {
|
|
|
47
11
|
3144,
|
|
48
12
|
3537,
|
|
49
13
|
]
|
|
50
|
-
`);
|
|
51
|
-
});
|
|
52
|
-
});
|
|
14
|
+
`);}));});
|
|
53
15
|
//# sourceMappingURL=useOffsetX.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useOffsetX.test.ts"],"names":["describe","it","hook","range","negativeRange","positiveRange","inputs","Array","from","length","map","_","index","config","dataLength","handlerOffset","loop","size","input","expected","result","current","v","value","slice","expect","toMatchInlineSnapshot"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["useOffsetX.test.ts"],"names":["describe","it","hook","range","negativeRange","positiveRange","inputs","Array","from","length","map","_","index","config","dataLength","handlerOffset","loop","size","input","expected","result","current","v","value","slice","expect","toMatchInlineSnapshot"],"mappings":"qLAAA,8DAEA,wDAGA,wCAGAA,QAAQ,CAAC,gBAAD,CAAmB,UAAM,CAC/BC,EAAE,CAAC,kCAAD,gCAAqC,WAAY,CACjD,GAAMC,CAAAA,IAAI,CAAG,2BAAW,UAAM,CAC5B,GAAMC,CAAAA,KAAK,CAAG,0CAAe,CAC3BC,aAAa,CAAE,CAAC,CAAD,CAAI,CAAJ,CADY,CAE3BC,aAAa,CAAE,CAAC,CAAD,CAAI,CAAJ,CAFY,CAAf,CAAd,CAIA,GAAMC,CAAAA,MAGJ,CAAGC,KAAK,CAACC,IAAN,CAAW,CAAEC,MAAM,CAAE,EAAV,CAAX,EAA2BC,GAA3B,CAA+B,SAACC,CAAD,CAAIC,KAAJ,QAAe,CACjDC,MAAM,CAAE,CACNC,UAAU,CAAE,EADN,CAENC,aAAa,CAAE,0CAAe,CAAC,CAAhB,CAFT,CAGNH,KAAK,CAALA,KAHM,CAINI,IAAI,CAAE,KAJA,CAKNC,IAAI,CAAE,GALA,CADyC,CAQjDd,KAAK,CAALA,KARiD,CAAf,EAA/B,CAHL,CAcA,MAAOG,CAAAA,MAAM,CAACI,GAAP,CAAW,SAACQ,KAAD,CAAW,CAC3B,GAAQL,CAAAA,MAAR,CAA0BK,KAA1B,CAAQL,MAAR,CAAgBV,KAAhB,CAA0Be,KAA1B,CAAgBf,KAAhB,CAEA,MAAO,2BAAWU,MAAX,CAAmBV,KAAnB,CAAP,CACD,CAJM,CAAP,CAKD,CAxBY,CAAb,CA0BA,GAAMgB,CAAAA,QAAQ,CAAGjB,IAAI,CAACkB,MAAL,CAAYC,OAAZ,CAAoBX,GAApB,CAAwB,SAACY,CAAD,QAAOA,CAAAA,CAAC,CAACC,KAAT,EAAxB,EAAwCC,KAAxC,EAAjB,CAEAC,MAAM,CAACN,QAAD,CAAN,CAAiBO,qBAAjB,CAAwC;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAbI,EAcD,CA3CC,EAAF,CA4CD,CA7CO,CAAR","sourcesContent":["import { useSharedValue } from \"react-native-reanimated\";\n\nimport { renderHook } from \"@testing-library/react-hooks\";\n\nimport type { IOpts } from \"./useOffsetX\";\nimport { useOffsetX } from \"./useOffsetX\";\nimport type { IVisibleRanges } from \"./useVisibleRanges\";\n\ndescribe(\"useSharedValue\", () => {\n it(\"should return the correct values\", async () => {\n const hook = renderHook(() => {\n const range = useSharedValue({\n negativeRange: [7, 9],\n positiveRange: [0, 3],\n }) as IVisibleRanges;\n const inputs: Array<{\n config: IOpts;\n range: IVisibleRanges;\n }> = Array.from({ length: 10 }).map((_, index) => ({\n config: {\n dataLength: 10,\n handlerOffset: useSharedValue(-0),\n index,\n loop: false,\n size: 393,\n },\n range,\n }));\n\n return inputs.map((input) => {\n const { config, range } = input;\n\n return useOffsetX(config, range);\n });\n });\n\n const expected = hook.result.current.map((v) => v.value).slice();\n\n expect(expected).toMatchInlineSnapshot(`\n [\n 0,\n 393,\n 786,\n 1179,\n 9007199254740991,\n 9007199254740991,\n 9007199254740991,\n 2751,\n 3144,\n 3537,\n ]\n `);\n });\n});\n"]}
|
|
@@ -1,47 +1,2 @@
|
|
|
1
|
-
"
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.useOnProgressChange = useOnProgressChange;
|
|
7
|
-
|
|
8
|
-
var _reactNativeReanimated = require("react-native-reanimated");
|
|
9
|
-
|
|
10
|
-
var _computedWithAutoFillData = require("../utils/computed-with-auto-fill-data");
|
|
11
|
-
|
|
12
|
-
function useOnProgressChange(opts) {
|
|
13
|
-
const {
|
|
14
|
-
autoFillData,
|
|
15
|
-
loop,
|
|
16
|
-
offsetX,
|
|
17
|
-
size,
|
|
18
|
-
rawDataLength,
|
|
19
|
-
onProgressChange
|
|
20
|
-
} = opts; // remember `isFunc` here because we can't accurately check typeof
|
|
21
|
-
// from within useAnimatedReaction because its code has been workletized;
|
|
22
|
-
// the `onProgressChange` value will be typeof "object" from within
|
|
23
|
-
// the worklet code even if it's a function.
|
|
24
|
-
|
|
25
|
-
const isFunc = typeof onProgressChange === "function";
|
|
26
|
-
(0, _reactNativeReanimated.useAnimatedReaction)(() => offsetX.value, _value => {
|
|
27
|
-
let value = (0, _computedWithAutoFillData.computedOffsetXValueWithAutoFillData)({
|
|
28
|
-
value: _value,
|
|
29
|
-
rawDataLength,
|
|
30
|
-
size,
|
|
31
|
-
autoFillData,
|
|
32
|
-
loop
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
if (!loop) {
|
|
36
|
-
value = Math.max(-((rawDataLength - 1) * size), Math.min(value, 0));
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
let absoluteProgress = Math.abs(value / size);
|
|
40
|
-
if (value > 0) absoluteProgress = rawDataLength - absoluteProgress;
|
|
41
|
-
|
|
42
|
-
if (onProgressChange) {
|
|
43
|
-
if (isFunc) (0, _reactNativeReanimated.runOnJS)(onProgressChange)(value, absoluteProgress);else onProgressChange.value = absoluteProgress;
|
|
44
|
-
}
|
|
45
|
-
}, [loop, autoFillData, rawDataLength, onProgressChange]);
|
|
46
|
-
}
|
|
1
|
+
Object.defineProperty(exports,"__esModule",{value:true});exports.useOnProgressChange=useOnProgressChange;var _reactNativeReanimated=require("react-native-reanimated");var _computedWithAutoFillData=require("../utils/computed-with-auto-fill-data");var _worklet_14598947245081_init_data={code:"function anonymous(){const{offsetX}=this.__closure;return offsetX.value;}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts",sourceMap:"{\"version\":3,\"mappings\":\"AAwBI,QAAAA,UAAA,uCAAMC,QAAQC,MAAd\",\"names\":[\"anonymous\",\"offsetX\",\"value\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts\"]}",version:"3.10.1"};var _worklet_9525472487100_init_data={code:"function anonymous(_value){const{computedOffsetXValueWithAutoFillData,rawDataLength,size,autoFillData,loop,onProgressChange,isFunc,runOnJS}=this.__closure;let value=computedOffsetXValueWithAutoFillData({value:_value,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop});if(!loop){value=Math.max(-((rawDataLength-1)*size),Math.min(value,0));}let absoluteProgress=Math.abs(value/size);if(value>0)absoluteProgress=rawDataLength-absoluteProgress;if(onProgressChange){if(isFunc)runOnJS(onProgressChange)(value,absoluteProgress);else onProgressChange.value=absoluteProgress;}}",location:"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts",sourceMap:"{\"version\":3,\"mappings\":\"AAyBKA,mBAAWA,MAAXA,CAAW,iIACV,GAAIC,MAAK,CAAGC,oCAAoC,CAAC,CAC/CD,KAAK,CAAED,MADwC,CAE/CG,aAAa,CAAbA,aAF+C,CAG/CC,IAAI,CAAJA,IAH+C,CAI/CC,YAAY,CAAZA,YAJ+C,CAK/CC,SAL+C,CAAD,CAAhD,WAQAL,KAAKK,CAALC,IAAW,CAAAC,GAAX,CAAW,GAAAL,aAAA,IAAAC,IAAA,CAAX,CAAWG,IAAA,CAAAE,GAAA,CAAAR,KAAA,GAAX,EACEA,CACF,GAAAS,iBAAA,CAAAH,IAAA,CAAAI,GAAA,CAAAV,KAAA,CAAAG,IAAA,6DAEA,GAAIM,gBAAJ,CAAoB,CAEpB,GAAIT,MAAJ,CAAAW,OAAeF,kBAAf,CAAkCP,KAAlC,CAA+CO,gBAA/C,MAAeA,0CAEf\",\"names\":[\"_value\",\"value\",\"computedOffsetXValueWithAutoFillData\",\"rawDataLength\",\"size\",\"autoFillData\",\"loop\",\"Math\",\"max\",\"min\",\"absoluteProgress\",\"abs\",\"runOnJS\"],\"sources\":[\"/home/runner/work/react-native-reanimated-carousel/react-native-reanimated-carousel/src/hooks/useOnProgressChange.ts\"]}",version:"3.10.1"};function useOnProgressChange(opts){var autoFillData=opts.autoFillData,loop=opts.loop,offsetX=opts.offsetX,size=opts.size,rawDataLength=opts.rawDataLength,onProgressChange=opts.onProgressChange;var isFunc=typeof onProgressChange==="function";(0,_reactNativeReanimated.useAnimatedReaction)(function(){var _e=[new global.Error(),-2,-27];var anonymous=function anonymous(){return offsetX.value;};anonymous.__closure={offsetX:offsetX};anonymous.__workletHash=14598947245081;anonymous.__initData=_worklet_14598947245081_init_data;anonymous.__stackDetails=_e;return anonymous;}(),function(){var _e=[new global.Error(),-9,-27];var anonymous=function anonymous(_value){var value=(0,_computedWithAutoFillData.computedOffsetXValueWithAutoFillData)({value:_value,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop});if(!loop){value=Math.max(-((rawDataLength-1)*size),Math.min(value,0));}var absoluteProgress=Math.abs(value/size);if(value>0)absoluteProgress=rawDataLength-absoluteProgress;if(onProgressChange){if(isFunc)(0,_reactNativeReanimated.runOnJS)(onProgressChange)(value,absoluteProgress);else onProgressChange.value=absoluteProgress;}};anonymous.__closure={computedOffsetXValueWithAutoFillData:_computedWithAutoFillData.computedOffsetXValueWithAutoFillData,rawDataLength:rawDataLength,size:size,autoFillData:autoFillData,loop:loop,onProgressChange:onProgressChange,isFunc:isFunc,runOnJS:_reactNativeReanimated.runOnJS};anonymous.__workletHash=9525472487100;anonymous.__initData=_worklet_9525472487100_init_data;anonymous.__stackDetails=_e;return anonymous;}(),[loop,autoFillData,rawDataLength,onProgressChange,size]);}
|
|
47
2
|
//# sourceMappingURL=useOnProgressChange.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","autoFillData","loop","offsetX","size","rawDataLength","onProgressChange","isFunc","value","_value","Math","max","min","absoluteProgress","abs"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["useOnProgressChange.ts"],"names":["useOnProgressChange","opts","autoFillData","loop","offsetX","size","rawDataLength","onProgressChange","isFunc","value","_value","Math","max","min","absoluteProgress","abs","computedOffsetXValueWithAutoFillData","runOnJS"],"mappings":"yGACA,8DAGA,+E,ulEAEO,QAASA,CAAAA,mBAAT,CACLC,IADK,CAQL,CACA,GAAQC,CAAAA,YAAR,CAA+ED,IAA/E,CAAQC,YAAR,CAAsBC,IAAtB,CAA+EF,IAA/E,CAAsBE,IAAtB,CAA4BC,OAA5B,CAA+EH,IAA/E,CAA4BG,OAA5B,CAAqCC,IAArC,CAA+EJ,IAA/E,CAAqCI,IAArC,CAA2CC,aAA3C,CAA+EL,IAA/E,CAA2CK,aAA3C,CAA0DC,gBAA1D,CAA+EN,IAA/E,CAA0DM,gBAA1D,CAMA,GAAMC,CAAAA,MAAM,CAAG,MAAOD,CAAAA,gBAAP,GAA4B,UAA3C,CAEA,+CACE,uFAAMH,CAAAA,OAAO,CAACK,KAAd,gCAAML,OAAN,8IADF,GAEE,+EAACM,MAAD,CAAY,CACV,GAAID,CAAAA,KAAK,CAAG,mEAAqC,CAC/CA,KAAK,CAAEC,MADwC,CAE/CJ,aAAa,CAAbA,aAF+C,CAG/CD,IAAI,CAAJA,IAH+C,CAI/CH,YAAY,CAAZA,YAJ+C,CAK/CC,IAAI,CAAJA,IAL+C,CAArC,CAAZ,CAQA,GAAI,CAACA,IAAL,CAAW,CACTM,KAAK,CAAGE,IAAI,CAACC,GAAL,CAAS,EAAE,CAACN,aAAa,CAAG,CAAjB,EAAsBD,IAAxB,CAAT,CAAwCM,IAAI,CAACE,GAAL,CAASJ,KAAT,CAAgB,CAAhB,CAAxC,CAAR,CACD,CAED,GAAIK,CAAAA,gBAAgB,CAAGH,IAAI,CAACI,GAAL,CAASN,KAAK,CAAGJ,IAAjB,CAAvB,CAEA,GAAII,KAAK,CAAG,CAAZ,CAAeK,gBAAgB,CAAGR,aAAa,CAAGQ,gBAAnC,CAEf,GAAIP,gBAAJ,CAAsB,CACpB,GAAIC,MAAJ,CAAY,mCAAQD,gBAAR,EAA0BE,KAA1B,CAAiCK,gBAAjC,EAAZ,IACKP,CAAAA,gBAAgB,CAACE,KAAjB,CAAyBK,gBAAzB,CACN,CACF,CArBD,2DACcE,8DADd,eAGIV,aAHJ,MAIID,IAJJ,cAKIH,YALJ,MAMIC,IANJ,kBAiBMI,gBAjBN,QAkBQC,MAlBR,SAkBgBS,8BAlBhB,4IAFF,GAwBE,CAACd,IAAD,CAAOD,YAAP,CAAqBI,aAArB,CAAoCC,gBAApC,CAAsDF,IAAtD,CAxBF,EA0BD","sourcesContent":["import type Animated from \"react-native-reanimated\";\nimport { runOnJS, useAnimatedReaction } from \"react-native-reanimated\";\n\nimport type { TCarouselProps } from \"../types\";\nimport { computedOffsetXValueWithAutoFillData } from \"../utils/computed-with-auto-fill-data\";\n\nexport function useOnProgressChange(\n opts: {\n size: number;\n autoFillData: boolean;\n loop: boolean;\n offsetX: Animated.SharedValue<number>;\n rawDataLength: number;\n } & Pick<TCarouselProps, \"onProgressChange\">\n) {\n const { autoFillData, loop, offsetX, size, rawDataLength, onProgressChange } = opts;\n\n // remember `isFunc` here because we can't accurately check typeof\n // from within useAnimatedReaction because its code has been workletized;\n // the `onProgressChange` value will be typeof \"object\" from within\n // the worklet code even if it's a function.\n const isFunc = typeof onProgressChange === \"function\";\n\n useAnimatedReaction(\n () => offsetX.value,\n (_value) => {\n let value = computedOffsetXValueWithAutoFillData({\n value: _value,\n rawDataLength,\n size,\n autoFillData,\n loop,\n });\n\n if (!loop) {\n value = Math.max(-((rawDataLength - 1) * size), Math.min(value, 0));\n }\n\n let absoluteProgress = Math.abs(value / size);\n\n if (value > 0) absoluteProgress = rawDataLength - absoluteProgress;\n\n if (onProgressChange) {\n if (isFunc) runOnJS(onProgressChange)(value, absoluteProgress);\n else onProgressChange.value = absoluteProgress;\n }\n },\n [loop, autoFillData, rawDataLength, onProgressChange, size]\n );\n}\n"]}
|