react-native-dates-picker 0.1.5 → 0.1.6

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.
@@ -27,8 +27,8 @@ const WheelPicker = ({
27
27
  const {
28
28
  theme
29
29
  } = (0, _CalendarContext.useCalendarContext)();
30
+ const momentumStarted = (0, _react.useRef)(false);
30
31
  const selectedIndex = options.findIndex(item => item.value === value);
31
- const timerRef = (0, _react.useRef)();
32
32
  const flatListRef = (0, _react.useRef)(null);
33
33
  const [scrollY] = (0, _react.useState)(new _reactNative.Animated.Value(selectedIndex * itemHeight));
34
34
  const containerHeight = (1 + visibleRest * 2) * itemHeight;
@@ -44,7 +44,6 @@ const WheelPicker = ({
44
44
  const currentScrollIndex = (0, _react.useMemo)(() => _reactNative.Animated.add(_reactNative.Animated.divide(scrollY, itemHeight), visibleRest), [visibleRest, scrollY, itemHeight]);
45
45
  const handleScrollEnd = event => {
46
46
  var _options$index;
47
- if (timerRef.current) clearTimeout(timerRef.current);
48
47
  const offsetY = Math.min(itemHeight * (options.length - 1), Math.max(event.nativeEvent.contentOffset.y, 0));
49
48
  let index = Math.floor(offsetY / itemHeight);
50
49
  const remainder = offsetY % itemHeight;
@@ -53,13 +52,38 @@ const WheelPicker = ({
53
52
  }
54
53
  const value = ((_options$index = options[index]) === null || _options$index === void 0 ? void 0 : _options$index.value) || 0;
55
54
  if (index !== selectedIndex) {
56
- timerRef.current = setTimeout(() => {
57
- onChange(value);
58
- clearTimeout(timerRef.current);
59
- timerRef.current = undefined;
60
- }, 50);
55
+ onChange(value);
61
56
  }
62
57
  };
58
+ const handleMomentumScrollBegin = () => {
59
+ momentumStarted.current = true;
60
+ };
61
+ const handleMomentumScrollEnd = event => {
62
+ momentumStarted.current = false;
63
+ handleScrollEnd(event);
64
+ };
65
+ const handleScrollEndDrag = event => {
66
+ var _event$nativeEvent$co;
67
+ // Capture the offset value immediately
68
+ const offsetY = (_event$nativeEvent$co = event.nativeEvent.contentOffset) === null || _event$nativeEvent$co === void 0 ? void 0 : _event$nativeEvent$co.y;
69
+
70
+ // We'll start a short timer to see if momentum scroll begins
71
+ setTimeout(() => {
72
+ // If momentum scroll hasn't started within the timeout,
73
+ // then it was a slow scroll that won't trigger momentum
74
+ if (!momentumStarted.current && offsetY !== undefined) {
75
+ // Create a synthetic event with just the data we need
76
+ const syntheticEvent = {
77
+ nativeEvent: {
78
+ contentOffset: {
79
+ y: offsetY
80
+ }
81
+ }
82
+ };
83
+ handleScrollEnd(syntheticEvent);
84
+ }
85
+ }, 50);
86
+ };
63
87
  const scrollEvent = (0, _react.useMemo)(() => _reactNative.Animated.event([{
64
88
  nativeEvent: {
65
89
  contentOffset: {
@@ -67,8 +91,7 @@ const WheelPicker = ({
67
91
  }
68
92
  }
69
93
  }], {
70
- useNativeDriver: true,
71
- listener: handleScrollEnd
94
+ useNativeDriver: true
72
95
  }),
73
96
  // eslint-disable-next-line react-hooks/exhaustive-deps
74
97
  []);
@@ -108,7 +131,9 @@ const WheelPicker = ({
108
131
  scrollEventThrottle: 16,
109
132
  onScroll: scrollEvent,
110
133
  snapToOffsets: offsets,
111
- onMomentumScrollEnd: handleScrollEnd,
134
+ onScrollEndDrag: handleScrollEndDrag,
135
+ onMomentumScrollBegin: handleMomentumScrollBegin,
136
+ onMomentumScrollEnd: handleMomentumScrollEnd,
112
137
  decelerationRate: decelerationRate,
113
138
  initialScrollIndex: selectedIndex,
114
139
  getItemLayout: (_, index) => ({
@@ -116,6 +141,7 @@ const WheelPicker = ({
116
141
  offset: itemHeight * index,
117
142
  index
118
143
  }),
144
+ maxToRenderPerBatch: 20,
119
145
  data: paddedOptions,
120
146
  keyExtractor: (item, index) => item ? `${item.value}-${item.text}-${index}` : `-${index}`,
121
147
  renderItem: ({
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_wheelPickerItem","_interopRequireDefault","_CalendarContext","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","WheelPicker","value","options","onChange","itemHeight","scaleFunction","x","rotationFunction","Math","pow","opacityFunction","visibleRest","decelerationRate","containerProps","theme","useCalendarContext","selectedIndex","findIndex","item","timerRef","useRef","flatListRef","scrollY","useState","Animated","Value","containerHeight","paddedOptions","useMemo","array","unshift","push","offsets","Array","map","_","currentScrollIndex","add","divide","handleScrollEnd","event","_options$index","current","clearTimeout","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","remainder","setTimeout","undefined","scrollEvent","useNativeDriver","listener","useEffect","Error","_flatListRef$current","scrollToIndex","animated","Platform","OS","createElement","View","style","styles","container","height","wheelPickerContainerStyle","selectedIndicator","transform","translateY","wheelPickerSelectedIndicatorStyle","FlatList","ref","nestedScrollEnabled","scrollView","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","snapToOffsets","onMomentumScrollEnd","initialScrollIndex","getItemLayout","offset","data","keyExtractor","text","renderItem","option","StyleSheet","create","display","position","width","top","overflow","flex","_default","exports","memo"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_wheelPickerItem","_interopRequireDefault","_CalendarContext","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","WheelPicker","value","options","onChange","itemHeight","scaleFunction","x","rotationFunction","Math","pow","opacityFunction","visibleRest","decelerationRate","containerProps","theme","useCalendarContext","momentumStarted","useRef","selectedIndex","findIndex","item","flatListRef","scrollY","useState","Animated","Value","containerHeight","paddedOptions","useMemo","array","unshift","push","offsets","Array","map","_","currentScrollIndex","add","divide","handleScrollEnd","event","_options$index","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","remainder","handleMomentumScrollBegin","current","handleMomentumScrollEnd","handleScrollEndDrag","_event$nativeEvent$co","setTimeout","undefined","syntheticEvent","scrollEvent","useNativeDriver","useEffect","Error","_flatListRef$current","scrollToIndex","animated","Platform","OS","createElement","View","style","styles","container","height","wheelPickerContainerStyle","selectedIndicator","transform","translateY","wheelPickerSelectedIndicatorStyle","FlatList","ref","nestedScrollEnabled","scrollView","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","snapToOffsets","onScrollEndDrag","onMomentumScrollBegin","onMomentumScrollEnd","initialScrollIndex","getItemLayout","offset","maxToRenderPerBatch","data","keyExtractor","text","renderItem","option","StyleSheet","create","display","position","width","top","overflow","flex","_default","exports","memo"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"mappings":"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"}
@@ -18,8 +18,8 @@ const WheelPicker = ({
18
18
  const {
19
19
  theme
20
20
  } = useCalendarContext();
21
+ const momentumStarted = useRef(false);
21
22
  const selectedIndex = options.findIndex(item => item.value === value);
22
- const timerRef = useRef();
23
23
  const flatListRef = useRef(null);
24
24
  const [scrollY] = useState(new Animated.Value(selectedIndex * itemHeight));
25
25
  const containerHeight = (1 + visibleRest * 2) * itemHeight;
@@ -35,7 +35,6 @@ const WheelPicker = ({
35
35
  const currentScrollIndex = useMemo(() => Animated.add(Animated.divide(scrollY, itemHeight), visibleRest), [visibleRest, scrollY, itemHeight]);
36
36
  const handleScrollEnd = event => {
37
37
  var _options$index;
38
- if (timerRef.current) clearTimeout(timerRef.current);
39
38
  const offsetY = Math.min(itemHeight * (options.length - 1), Math.max(event.nativeEvent.contentOffset.y, 0));
40
39
  let index = Math.floor(offsetY / itemHeight);
41
40
  const remainder = offsetY % itemHeight;
@@ -44,13 +43,38 @@ const WheelPicker = ({
44
43
  }
45
44
  const value = ((_options$index = options[index]) === null || _options$index === void 0 ? void 0 : _options$index.value) || 0;
46
45
  if (index !== selectedIndex) {
47
- timerRef.current = setTimeout(() => {
48
- onChange(value);
49
- clearTimeout(timerRef.current);
50
- timerRef.current = undefined;
51
- }, 50);
46
+ onChange(value);
52
47
  }
53
48
  };
49
+ const handleMomentumScrollBegin = () => {
50
+ momentumStarted.current = true;
51
+ };
52
+ const handleMomentumScrollEnd = event => {
53
+ momentumStarted.current = false;
54
+ handleScrollEnd(event);
55
+ };
56
+ const handleScrollEndDrag = event => {
57
+ var _event$nativeEvent$co;
58
+ // Capture the offset value immediately
59
+ const offsetY = (_event$nativeEvent$co = event.nativeEvent.contentOffset) === null || _event$nativeEvent$co === void 0 ? void 0 : _event$nativeEvent$co.y;
60
+
61
+ // We'll start a short timer to see if momentum scroll begins
62
+ setTimeout(() => {
63
+ // If momentum scroll hasn't started within the timeout,
64
+ // then it was a slow scroll that won't trigger momentum
65
+ if (!momentumStarted.current && offsetY !== undefined) {
66
+ // Create a synthetic event with just the data we need
67
+ const syntheticEvent = {
68
+ nativeEvent: {
69
+ contentOffset: {
70
+ y: offsetY
71
+ }
72
+ }
73
+ };
74
+ handleScrollEnd(syntheticEvent);
75
+ }
76
+ }, 50);
77
+ };
54
78
  const scrollEvent = useMemo(() => Animated.event([{
55
79
  nativeEvent: {
56
80
  contentOffset: {
@@ -58,8 +82,7 @@ const WheelPicker = ({
58
82
  }
59
83
  }
60
84
  }], {
61
- useNativeDriver: true,
62
- listener: handleScrollEnd
85
+ useNativeDriver: true
63
86
  }),
64
87
  // eslint-disable-next-line react-hooks/exhaustive-deps
65
88
  []);
@@ -99,7 +122,9 @@ const WheelPicker = ({
99
122
  scrollEventThrottle: 16,
100
123
  onScroll: scrollEvent,
101
124
  snapToOffsets: offsets,
102
- onMomentumScrollEnd: handleScrollEnd,
125
+ onScrollEndDrag: handleScrollEndDrag,
126
+ onMomentumScrollBegin: handleMomentumScrollBegin,
127
+ onMomentumScrollEnd: handleMomentumScrollEnd,
103
128
  decelerationRate: decelerationRate,
104
129
  initialScrollIndex: selectedIndex,
105
130
  getItemLayout: (_, index) => ({
@@ -107,6 +132,7 @@ const WheelPicker = ({
107
132
  offset: itemHeight * index,
108
133
  index
109
134
  }),
135
+ maxToRenderPerBatch: 20,
110
136
  data: paddedOptions,
111
137
  keyExtractor: (item, index) => item ? `${item.value}-${item.text}-${index}` : `-${index}`,
112
138
  renderItem: ({
@@ -1 +1 @@
1
- {"version":3,"names":["React","useEffect","useMemo","useRef","useState","memo","Animated","View","Platform","StyleSheet","WheelPickerItem","useCalendarContext","WheelPicker","value","options","onChange","itemHeight","scaleFunction","x","rotationFunction","Math","pow","opacityFunction","visibleRest","decelerationRate","containerProps","theme","selectedIndex","findIndex","item","timerRef","flatListRef","scrollY","Value","containerHeight","paddedOptions","array","i","unshift","push","offsets","Array","length","map","_","currentScrollIndex","add","divide","handleScrollEnd","event","_options$index","current","clearTimeout","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","remainder","setTimeout","undefined","scrollEvent","useNativeDriver","listener","Error","_flatListRef$current","scrollToIndex","animated","OS","createElement","_extends","style","styles","container","height","wheelPickerContainerStyle","selectedIndicator","transform","translateY","wheelPickerSelectedIndicatorStyle","FlatList","ref","nestedScrollEnabled","scrollView","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","snapToOffsets","onMomentumScrollEnd","initialScrollIndex","getItemLayout","offset","data","keyExtractor","text","renderItem","option","key","create","display","position","width","top","overflow","flex"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"mappings":"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"}
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","useState","memo","Animated","View","Platform","StyleSheet","WheelPickerItem","useCalendarContext","WheelPicker","value","options","onChange","itemHeight","scaleFunction","x","rotationFunction","Math","pow","opacityFunction","visibleRest","decelerationRate","containerProps","theme","momentumStarted","selectedIndex","findIndex","item","flatListRef","scrollY","Value","containerHeight","paddedOptions","array","i","unshift","push","offsets","Array","length","map","_","currentScrollIndex","add","divide","handleScrollEnd","event","_options$index","offsetY","min","max","nativeEvent","contentOffset","y","index","floor","remainder","handleMomentumScrollBegin","current","handleMomentumScrollEnd","handleScrollEndDrag","_event$nativeEvent$co","setTimeout","undefined","syntheticEvent","scrollEvent","useNativeDriver","Error","_flatListRef$current","scrollToIndex","animated","OS","createElement","_extends","style","styles","container","height","wheelPickerContainerStyle","selectedIndicator","transform","translateY","wheelPickerSelectedIndicatorStyle","FlatList","ref","nestedScrollEnabled","scrollView","showsVerticalScrollIndicator","scrollEventThrottle","onScroll","snapToOffsets","onScrollEndDrag","onMomentumScrollBegin","onMomentumScrollEnd","initialScrollIndex","getItemLayout","offset","maxToRenderPerBatch","data","keyExtractor","text","renderItem","option","key","create","display","position","width","top","overflow","flex"],"sourceRoot":"../../../../../src","sources":["components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"wheel-picker.d.ts","sourceRoot":"","sources":["../../../../../src/components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,EAKL,SAAS,EAIV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/C;;AAsKD,wBAAiC"}
1
+ {"version":3,"file":"wheel-picker.d.ts","sourceRoot":"","sources":["../../../../../src/components/WheelPicker/WheelNativePicker/wheel-picker.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAqD,MAAM,OAAO,CAAC;AAC1E,OAAO,EAKL,SAAS,EAIV,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,UAAU,KAAK;IACb,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC3C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C,aAAa,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACtC,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACzC,eAAe,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,CAAC;CAC/C;;AAoMD,wBAAiC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-dates-picker",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
4
4
  "description": "Customizable date picker for React Native",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -39,8 +39,8 @@ const WheelPicker: React.FC<Props> = ({
39
39
  containerProps = {},
40
40
  }) => {
41
41
  const { theme } = useCalendarContext();
42
+ const momentumStarted = useRef(false);
42
43
  const selectedIndex = options.findIndex((item) => item.value === value);
43
- const timerRef = useRef<NodeJS.Timeout>();
44
44
 
45
45
  const flatListRef = useRef<FlatList>(null);
46
46
  const [scrollY] = useState(new Animated.Value(selectedIndex * itemHeight));
@@ -66,7 +66,6 @@ const WheelPicker: React.FC<Props> = ({
66
66
  );
67
67
 
68
68
  const handleScrollEnd = (event: NativeSyntheticEvent<NativeScrollEvent>) => {
69
- if (timerRef.current) clearTimeout(timerRef.current);
70
69
  const offsetY = Math.min(
71
70
  itemHeight * (options.length - 1),
72
71
  Math.max(event.nativeEvent.contentOffset.y, 0)
@@ -78,19 +77,47 @@ const WheelPicker: React.FC<Props> = ({
78
77
  }
79
78
  const value = options[index]?.value || 0;
80
79
  if (index !== selectedIndex) {
81
- timerRef.current = setTimeout(() => {
82
- onChange(value);
83
- clearTimeout(timerRef.current!);
84
- timerRef.current = undefined;
85
- }, 50);
80
+ onChange(value);
86
81
  }
87
82
  };
88
83
 
84
+ const handleMomentumScrollBegin = () => {
85
+ momentumStarted.current = true;
86
+ };
87
+
88
+ const handleMomentumScrollEnd = (
89
+ event: NativeSyntheticEvent<NativeScrollEvent>
90
+ ) => {
91
+ momentumStarted.current = false;
92
+ handleScrollEnd(event);
93
+ };
94
+
95
+ const handleScrollEndDrag = (
96
+ event: NativeSyntheticEvent<NativeScrollEvent>
97
+ ) => {
98
+ // Capture the offset value immediately
99
+ const offsetY = event.nativeEvent.contentOffset?.y;
100
+
101
+ // We'll start a short timer to see if momentum scroll begins
102
+ setTimeout(() => {
103
+ // If momentum scroll hasn't started within the timeout,
104
+ // then it was a slow scroll that won't trigger momentum
105
+ if (!momentumStarted.current && offsetY !== undefined) {
106
+ // Create a synthetic event with just the data we need
107
+ const syntheticEvent = {
108
+ nativeEvent: {
109
+ contentOffset: { y: offsetY },
110
+ },
111
+ };
112
+ handleScrollEnd(syntheticEvent as any);
113
+ }
114
+ }, 50);
115
+ };
116
+
89
117
  const scrollEvent = useMemo(
90
118
  () =>
91
119
  Animated.event([{ nativeEvent: { contentOffset: { y: scrollY } } }], {
92
120
  useNativeDriver: true,
93
- listener: handleScrollEnd,
94
121
  }),
95
122
  // eslint-disable-next-line react-hooks/exhaustive-deps
96
123
  []
@@ -144,7 +171,9 @@ const WheelPicker: React.FC<Props> = ({
144
171
  scrollEventThrottle={16}
145
172
  onScroll={scrollEvent}
146
173
  snapToOffsets={offsets}
147
- onMomentumScrollEnd={handleScrollEnd}
174
+ onScrollEndDrag={handleScrollEndDrag}
175
+ onMomentumScrollBegin={handleMomentumScrollBegin}
176
+ onMomentumScrollEnd={handleMomentumScrollEnd}
148
177
  decelerationRate={decelerationRate}
149
178
  initialScrollIndex={selectedIndex}
150
179
  getItemLayout={(_, index) => ({
@@ -152,6 +181,7 @@ const WheelPicker: React.FC<Props> = ({
152
181
  offset: itemHeight * index,
153
182
  index,
154
183
  })}
184
+ maxToRenderPerBatch={20}
155
185
  data={paddedOptions}
156
186
  keyExtractor={(item, index) =>
157
187
  item ? `${item.value}-${item.text}-${index}` : `-${index}`