react-native-timer-picker 2.1.0 → 2.2.0
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 +227 -152
- package/dist/commonjs/components/DurationScroll/DurationScroll.js +417 -0
- package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -0
- package/dist/commonjs/components/DurationScroll/index.js +20 -392
- package/dist/commonjs/components/DurationScroll/index.js.map +1 -1
- package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
- package/dist/commonjs/components/Modal/Modal.js +107 -0
- package/dist/commonjs/components/Modal/Modal.js.map +1 -0
- package/dist/commonjs/components/Modal/index.js +20 -101
- package/dist/commonjs/components/Modal/index.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/TimerPicker.js +225 -0
- package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -0
- package/dist/commonjs/components/TimerPicker/index.js +29 -166
- package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/styles.js +1 -1
- package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js +143 -0
- package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
- package/dist/commonjs/components/TimerPickerModal/index.js +30 -131
- package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -1
- package/dist/commonjs/index.js +9 -13
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/tests/TimerPicker.test.js +4 -1
- package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
- package/dist/commonjs/utils/colorToRgba.js +35 -4
- package/dist/commonjs/utils/colorToRgba.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js +67 -0
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/getAdjustedLimit.js +25 -0
- package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
- package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js +38 -0
- package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
- package/dist/commonjs/utils/getInitialScrollIndex.js +38 -0
- package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
- package/dist/commonjs/utils/getSafeInitialValue.js +28 -0
- package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -1
- package/dist/commonjs/utils/padNumber.js +25 -0
- package/dist/commonjs/utils/padNumber.js.map +1 -1
- package/dist/module/components/DurationScroll/DurationScroll.js +410 -0
- package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -0
- package/dist/module/components/DurationScroll/index.js +2 -390
- package/dist/module/components/DurationScroll/index.js.map +1 -1
- package/dist/module/components/DurationScroll/types.js.map +1 -1
- package/dist/module/components/Modal/Modal.js +99 -0
- package/dist/module/components/Modal/Modal.js.map +1 -0
- package/dist/module/components/Modal/index.js +2 -98
- package/dist/module/components/Modal/index.js.map +1 -1
- package/dist/module/components/TimerPicker/TimerPicker.js +217 -0
- package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -0
- package/dist/module/components/TimerPicker/index.js +3 -166
- package/dist/module/components/TimerPicker/index.js.map +1 -1
- package/dist/module/components/TimerPicker/styles.js +1 -1
- package/dist/module/components/TimerPicker/styles.js.map +1 -1
- package/dist/module/components/TimerPicker/types.js.map +1 -1
- package/dist/module/components/TimerPickerModal/TimerPickerModal.js +135 -0
- package/dist/module/components/TimerPickerModal/TimerPickerModal.js.map +1 -0
- package/dist/module/components/TimerPickerModal/index.js +3 -130
- package/dist/module/components/TimerPickerModal/index.js.map +1 -1
- package/dist/module/components/TimerPickerModal/types.js.map +1 -1
- package/dist/module/index.js +2 -6
- package/dist/module/index.js.map +1 -1
- package/dist/module/tests/TimerPicker.test.js +4 -1
- package/dist/module/tests/TimerPicker.test.js.map +1 -1
- package/dist/module/utils/colorToRgba.js +35 -4
- package/dist/module/utils/colorToRgba.js.map +1 -1
- package/dist/module/utils/generateNumbers.js +68 -0
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/getAdjustedLimit.js +25 -0
- package/dist/module/utils/getAdjustedLimit.js.map +1 -1
- package/dist/module/utils/getDurationAndIndexFromScrollOffset.js +38 -0
- package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
- package/dist/module/utils/getInitialScrollIndex.js +38 -0
- package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
- package/dist/module/utils/getSafeInitialValue.js +28 -0
- package/dist/module/utils/getSafeInitialValue.js.map +1 -1
- package/dist/module/utils/padNumber.js +25 -0
- package/dist/module/utils/padNumber.js.map +1 -1
- package/dist/typescript/components/DurationScroll/DurationScroll.d.ts +4 -0
- package/dist/typescript/components/DurationScroll/index.d.ts +2 -4
- package/dist/typescript/components/DurationScroll/types.d.ts +13 -9
- package/dist/typescript/components/Modal/Modal.d.ts +5 -0
- package/dist/typescript/components/Modal/index.d.ts +2 -5
- package/dist/typescript/components/TimerPicker/TimerPicker.d.ts +4 -0
- package/dist/typescript/components/TimerPicker/index.d.ts +3 -4
- package/dist/typescript/components/TimerPicker/styles.d.ts +1169 -771
- package/dist/typescript/components/TimerPicker/types.d.ts +26 -10
- package/dist/typescript/components/TimerPickerModal/TimerPickerModal.d.ts +4 -0
- package/dist/typescript/components/TimerPickerModal/index.d.ts +3 -4
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +722 -474
- package/dist/typescript/components/TimerPickerModal/types.d.ts +8 -5
- package/dist/typescript/index.d.ts +2 -6
- package/dist/typescript/utils/colorToRgba.d.ts +34 -0
- package/dist/typescript/utils/generateNumbers.d.ts +66 -0
- package/dist/typescript/utils/getAdjustedLimit.d.ts +27 -2
- package/dist/typescript/utils/getDurationAndIndexFromScrollOffset.d.ts +38 -0
- package/dist/typescript/utils/getInitialScrollIndex.d.ts +38 -0
- package/dist/typescript/utils/getSafeInitialValue.d.ts +29 -0
- package/dist/typescript/utils/padNumber.d.ts +25 -0
- package/package.json +10 -27
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React, { useCallback, useEffect, useRef } from "react";
|
|
3
|
+
import { Animated, Easing, Modal as ReactNativeModal, TouchableWithoutFeedback, useWindowDimensions } from "react-native";
|
|
4
|
+
import { styles } from "./styles";
|
|
5
|
+
export const Modal = props => {
|
|
6
|
+
const {
|
|
7
|
+
animationDuration = 300,
|
|
8
|
+
children,
|
|
9
|
+
contentStyle,
|
|
10
|
+
isVisible = false,
|
|
11
|
+
modalProps,
|
|
12
|
+
onHide,
|
|
13
|
+
onOverlayPress,
|
|
14
|
+
overlayOpacity = 0.4,
|
|
15
|
+
overlayStyle,
|
|
16
|
+
testID = "modal"
|
|
17
|
+
} = props;
|
|
18
|
+
const {
|
|
19
|
+
height: screenHeight,
|
|
20
|
+
width: screenWidth
|
|
21
|
+
} = useWindowDimensions();
|
|
22
|
+
const isMounted = useRef(false);
|
|
23
|
+
const animatedOpacity = useRef(new Animated.Value(0));
|
|
24
|
+
useEffect(() => {
|
|
25
|
+
isMounted.current = true;
|
|
26
|
+
if (isVisible) {
|
|
27
|
+
show();
|
|
28
|
+
}
|
|
29
|
+
return () => {
|
|
30
|
+
isMounted.current = false;
|
|
31
|
+
};
|
|
32
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
+
}, []);
|
|
34
|
+
const backdropAnimatedStyle = {
|
|
35
|
+
opacity: animatedOpacity.current.interpolate({
|
|
36
|
+
inputRange: [0, 1],
|
|
37
|
+
outputRange: [0, overlayOpacity]
|
|
38
|
+
})
|
|
39
|
+
};
|
|
40
|
+
const contentAnimatedStyle = {
|
|
41
|
+
transform: [{
|
|
42
|
+
translateY: animatedOpacity.current.interpolate({
|
|
43
|
+
inputRange: [0, 1],
|
|
44
|
+
outputRange: [screenHeight, 0],
|
|
45
|
+
extrapolate: "clamp"
|
|
46
|
+
})
|
|
47
|
+
}]
|
|
48
|
+
};
|
|
49
|
+
const show = useCallback(() => {
|
|
50
|
+
Animated.timing(animatedOpacity.current, {
|
|
51
|
+
easing: Easing.inOut(Easing.quad),
|
|
52
|
+
// Using native driver in the modal makes the content flash
|
|
53
|
+
useNativeDriver: true,
|
|
54
|
+
duration: animationDuration,
|
|
55
|
+
toValue: 1
|
|
56
|
+
}).start();
|
|
57
|
+
}, [animationDuration]);
|
|
58
|
+
const hide = useCallback(() => {
|
|
59
|
+
Animated.timing(animatedOpacity.current, {
|
|
60
|
+
easing: Easing.inOut(Easing.quad),
|
|
61
|
+
// Using native driver in the modal makes the content flash
|
|
62
|
+
useNativeDriver: true,
|
|
63
|
+
duration: animationDuration,
|
|
64
|
+
toValue: 0
|
|
65
|
+
}).start(() => {
|
|
66
|
+
if (isMounted.current) {
|
|
67
|
+
onHide === null || onHide === void 0 || onHide();
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
}, [animationDuration, onHide]);
|
|
71
|
+
useEffect(() => {
|
|
72
|
+
if (isVisible) {
|
|
73
|
+
show();
|
|
74
|
+
} else {
|
|
75
|
+
hide();
|
|
76
|
+
}
|
|
77
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
|
+
}, [isVisible]);
|
|
79
|
+
return /*#__PURE__*/React.createElement(ReactNativeModal, _extends({
|
|
80
|
+
animationType: "fade",
|
|
81
|
+
transparent: true,
|
|
82
|
+
visible: isVisible
|
|
83
|
+
}, modalProps, {
|
|
84
|
+
testID: testID
|
|
85
|
+
}), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
|
|
86
|
+
onPress: onOverlayPress,
|
|
87
|
+
testID: "modal-backdrop"
|
|
88
|
+
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
89
|
+
style: [styles.backdrop, backdropAnimatedStyle, {
|
|
90
|
+
width: screenWidth,
|
|
91
|
+
height: screenHeight
|
|
92
|
+
}, overlayStyle]
|
|
93
|
+
})), /*#__PURE__*/React.createElement(Animated.View, {
|
|
94
|
+
pointerEvents: "box-none",
|
|
95
|
+
style: [styles.content, contentAnimatedStyle, contentStyle]
|
|
96
|
+
}, children));
|
|
97
|
+
};
|
|
98
|
+
export default /*#__PURE__*/React.memo(Modal);
|
|
99
|
+
//# sourceMappingURL=Modal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useRef","Animated","Easing","Modal","ReactNativeModal","TouchableWithoutFeedback","useWindowDimensions","styles","props","animationDuration","children","contentStyle","isVisible","modalProps","onHide","onOverlayPress","overlayOpacity","overlayStyle","testID","height","screenHeight","width","screenWidth","isMounted","animatedOpacity","Value","current","show","backdropAnimatedStyle","opacity","interpolate","inputRange","outputRange","contentAnimatedStyle","transform","translateY","extrapolate","timing","easing","inOut","quad","useNativeDriver","duration","toValue","start","hide","createElement","_extends","animationType","transparent","visible","onPress","View","style","backdrop","pointerEvents","content","memo"],"sources":["Modal.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef } from \"react\";\n\nimport {\n Animated,\n Easing,\n Modal as ReactNativeModal,\n TouchableWithoutFeedback,\n useWindowDimensions,\n} from \"react-native\";\n\nimport { styles } from \"./styles\";\nimport type { ModalProps } from \"./types\";\n\nexport const Modal = (props: ModalProps) => {\n const {\n animationDuration = 300,\n children,\n contentStyle,\n isVisible = false,\n modalProps,\n onHide,\n onOverlayPress,\n overlayOpacity = 0.4,\n overlayStyle,\n testID = \"modal\",\n } = props;\n\n const { height: screenHeight, width: screenWidth } = useWindowDimensions();\n\n const isMounted = useRef(false);\n const animatedOpacity = useRef(new Animated.Value(0));\n\n useEffect(() => {\n isMounted.current = true;\n if (isVisible) {\n show();\n }\n\n return () => {\n isMounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const backdropAnimatedStyle = {\n opacity: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0, overlayOpacity],\n }),\n };\n const contentAnimatedStyle = {\n transform: [\n {\n translateY: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [screenHeight, 0],\n extrapolate: \"clamp\",\n }),\n },\n ],\n };\n\n const show = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 1,\n }).start();\n }, [animationDuration]);\n\n const hide = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 0,\n }).start(() => {\n if (isMounted.current) {\n onHide?.();\n }\n });\n }, [animationDuration, onHide]);\n\n useEffect(() => {\n if (isVisible) {\n show();\n } else {\n hide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <ReactNativeModal\n animationType=\"fade\"\n transparent\n visible={isVisible}\n {...modalProps}\n testID={testID}>\n <TouchableWithoutFeedback\n onPress={onOverlayPress}\n testID=\"modal-backdrop\">\n <Animated.View\n style={[\n styles.backdrop,\n backdropAnimatedStyle,\n { width: screenWidth, height: screenHeight },\n overlayStyle,\n ]}\n />\n </TouchableWithoutFeedback>\n <Animated.View\n pointerEvents=\"box-none\"\n style={[styles.content, contentAnimatedStyle, contentStyle]}>\n {children}\n </Animated.View>\n </ReactNativeModal>\n );\n};\n\nexport default React.memo(Modal);\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,99 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
import { Animated, Easing, Modal as ReactNativeModal, TouchableWithoutFeedback, useWindowDimensions } from "react-native";
|
|
4
|
-
import { styles } from "./styles";
|
|
5
|
-
export const Modal = props => {
|
|
6
|
-
const {
|
|
7
|
-
animationDuration = 300,
|
|
8
|
-
children,
|
|
9
|
-
contentStyle,
|
|
10
|
-
isVisible = false,
|
|
11
|
-
modalProps,
|
|
12
|
-
onHide,
|
|
13
|
-
onOverlayPress,
|
|
14
|
-
overlayOpacity = 0.4,
|
|
15
|
-
overlayStyle,
|
|
16
|
-
testID = "modal"
|
|
17
|
-
} = props;
|
|
18
|
-
const {
|
|
19
|
-
height: screenHeight,
|
|
20
|
-
width: screenWidth
|
|
21
|
-
} = useWindowDimensions();
|
|
22
|
-
const isMounted = useRef(false);
|
|
23
|
-
const animatedOpacity = useRef(new Animated.Value(0));
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
isMounted.current = true;
|
|
26
|
-
if (isVisible) {
|
|
27
|
-
show();
|
|
28
|
-
}
|
|
29
|
-
return () => {
|
|
30
|
-
isMounted.current = false;
|
|
31
|
-
};
|
|
32
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
33
|
-
}, []);
|
|
34
|
-
const backdropAnimatedStyle = {
|
|
35
|
-
opacity: animatedOpacity.current.interpolate({
|
|
36
|
-
inputRange: [0, 1],
|
|
37
|
-
outputRange: [0, overlayOpacity]
|
|
38
|
-
})
|
|
39
|
-
};
|
|
40
|
-
const contentAnimatedStyle = {
|
|
41
|
-
transform: [{
|
|
42
|
-
translateY: animatedOpacity.current.interpolate({
|
|
43
|
-
inputRange: [0, 1],
|
|
44
|
-
outputRange: [screenHeight, 0],
|
|
45
|
-
extrapolate: "clamp"
|
|
46
|
-
})
|
|
47
|
-
}]
|
|
48
|
-
};
|
|
49
|
-
const show = useCallback(() => {
|
|
50
|
-
Animated.timing(animatedOpacity.current, {
|
|
51
|
-
easing: Easing.inOut(Easing.quad),
|
|
52
|
-
// Using native driver in the modal makes the content flash
|
|
53
|
-
useNativeDriver: true,
|
|
54
|
-
duration: animationDuration,
|
|
55
|
-
toValue: 1
|
|
56
|
-
}).start();
|
|
57
|
-
}, [animationDuration]);
|
|
58
|
-
const hide = useCallback(() => {
|
|
59
|
-
Animated.timing(animatedOpacity.current, {
|
|
60
|
-
easing: Easing.inOut(Easing.quad),
|
|
61
|
-
// Using native driver in the modal makes the content flash
|
|
62
|
-
useNativeDriver: true,
|
|
63
|
-
duration: animationDuration,
|
|
64
|
-
toValue: 0
|
|
65
|
-
}).start(() => {
|
|
66
|
-
if (isMounted.current) {
|
|
67
|
-
onHide === null || onHide === void 0 || onHide();
|
|
68
|
-
}
|
|
69
|
-
});
|
|
70
|
-
}, [animationDuration, onHide]);
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
if (isVisible) {
|
|
73
|
-
show();
|
|
74
|
-
} else {
|
|
75
|
-
hide();
|
|
76
|
-
}
|
|
77
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
78
|
-
}, [isVisible]);
|
|
79
|
-
return /*#__PURE__*/React.createElement(ReactNativeModal, _extends({
|
|
80
|
-
animationType: "fade",
|
|
81
|
-
transparent: true,
|
|
82
|
-
visible: isVisible
|
|
83
|
-
}, modalProps, {
|
|
84
|
-
testID: testID
|
|
85
|
-
}), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
|
|
86
|
-
onPress: onOverlayPress,
|
|
87
|
-
testID: "modal-backdrop"
|
|
88
|
-
}, /*#__PURE__*/React.createElement(Animated.View, {
|
|
89
|
-
style: [styles.backdrop, backdropAnimatedStyle, {
|
|
90
|
-
width: screenWidth,
|
|
91
|
-
height: screenHeight
|
|
92
|
-
}, overlayStyle]
|
|
93
|
-
})), /*#__PURE__*/React.createElement(Animated.View, {
|
|
94
|
-
pointerEvents: "box-none",
|
|
95
|
-
style: [styles.content, contentAnimatedStyle, contentStyle]
|
|
96
|
-
}, children));
|
|
97
|
-
};
|
|
98
|
-
export default /*#__PURE__*/React.memo(Modal);
|
|
1
|
+
export { default } from "./Modal";
|
|
2
|
+
export * from "./types";
|
|
99
3
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["default"],"sources":["index.ts"],"sourcesContent":["export { default } from \"./Modal\";\n\nexport * from \"./types\";\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,SAAS;AAEjC,cAAc,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
|
|
2
|
+
import React, { forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react";
|
|
3
|
+
import { View } from "react-native";
|
|
4
|
+
import { getSafeInitialValue } from "../../utils/getSafeInitialValue";
|
|
5
|
+
import DurationScroll from "../DurationScroll";
|
|
6
|
+
import { generateStyles } from "./styles";
|
|
7
|
+
const TimerPicker = /*#__PURE__*/forwardRef((props, ref) => {
|
|
8
|
+
const {
|
|
9
|
+
aggressivelyGetLatestDuration = false,
|
|
10
|
+
allowFontScaling = false,
|
|
11
|
+
amLabel = "am",
|
|
12
|
+
dayInterval = 1,
|
|
13
|
+
dayLabel,
|
|
14
|
+
dayLimit,
|
|
15
|
+
daysPickerIsDisabled = false,
|
|
16
|
+
decelerationRate = 0.88,
|
|
17
|
+
disableInfiniteScroll = false,
|
|
18
|
+
hideDays = true,
|
|
19
|
+
hideHours = false,
|
|
20
|
+
hideMinutes = false,
|
|
21
|
+
hideSeconds = false,
|
|
22
|
+
hourInterval = 1,
|
|
23
|
+
hourLabel,
|
|
24
|
+
hourLimit,
|
|
25
|
+
hoursPickerIsDisabled = false,
|
|
26
|
+
initialValue,
|
|
27
|
+
maximumDays = 30,
|
|
28
|
+
maximumHours = 23,
|
|
29
|
+
maximumMinutes = 59,
|
|
30
|
+
maximumSeconds = 59,
|
|
31
|
+
minuteInterval = 1,
|
|
32
|
+
minuteLabel,
|
|
33
|
+
minuteLimit,
|
|
34
|
+
minutesPickerIsDisabled = false,
|
|
35
|
+
onDurationChange,
|
|
36
|
+
padDaysWithZero = false,
|
|
37
|
+
padHoursWithZero = false,
|
|
38
|
+
padMinutesWithZero = true,
|
|
39
|
+
padSecondsWithZero = true,
|
|
40
|
+
padWithNItems = 1,
|
|
41
|
+
pickerContainerProps,
|
|
42
|
+
pmLabel = "pm",
|
|
43
|
+
repeatDayNumbersNTimes = 3,
|
|
44
|
+
repeatHourNumbersNTimes = 8,
|
|
45
|
+
repeatMinuteNumbersNTimes = 3,
|
|
46
|
+
repeatSecondNumbersNTimes = 3,
|
|
47
|
+
secondInterval = 1,
|
|
48
|
+
secondLabel,
|
|
49
|
+
secondLimit,
|
|
50
|
+
secondsPickerIsDisabled = false,
|
|
51
|
+
styles: customStyles,
|
|
52
|
+
use12HourPicker = false,
|
|
53
|
+
...otherProps
|
|
54
|
+
} = props;
|
|
55
|
+
useEffect(() => {
|
|
56
|
+
if (otherProps.Audio) {
|
|
57
|
+
console.warn("The \"Audio\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
|
|
58
|
+
}
|
|
59
|
+
if (otherProps.Haptics) {
|
|
60
|
+
console.warn("The \"Haptics\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
|
|
61
|
+
}
|
|
62
|
+
if (otherProps.clickSoundAsset) {
|
|
63
|
+
console.warn("The \"clickSoundAsset\" prop is deprecated and will be removed in a future version. Please use the \"pickerFeedback\" prop instead.");
|
|
64
|
+
}
|
|
65
|
+
}, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);
|
|
66
|
+
const safePadWithNItems = useMemo(() => {
|
|
67
|
+
if (padWithNItems < 0 || isNaN(padWithNItems)) {
|
|
68
|
+
return 0;
|
|
69
|
+
}
|
|
70
|
+
const maxPadWithNItems = hideHours ? 15 : 6;
|
|
71
|
+
if (padWithNItems > maxPadWithNItems) {
|
|
72
|
+
return maxPadWithNItems;
|
|
73
|
+
}
|
|
74
|
+
return Math.round(padWithNItems);
|
|
75
|
+
}, [hideHours, padWithNItems]);
|
|
76
|
+
const safeInitialValue = useMemo(() => getSafeInitialValue({
|
|
77
|
+
days: initialValue === null || initialValue === void 0 ? void 0 : initialValue.days,
|
|
78
|
+
hours: initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours,
|
|
79
|
+
minutes: initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes,
|
|
80
|
+
seconds: initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds
|
|
81
|
+
}), [initialValue === null || initialValue === void 0 ? void 0 : initialValue.days, initialValue === null || initialValue === void 0 ? void 0 : initialValue.hours, initialValue === null || initialValue === void 0 ? void 0 : initialValue.minutes, initialValue === null || initialValue === void 0 ? void 0 : initialValue.seconds]);
|
|
82
|
+
const styles = useMemo(() => generateStyles(customStyles), [customStyles]);
|
|
83
|
+
const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);
|
|
84
|
+
const [selectedHours, setSelectedHours] = useState(safeInitialValue.hours);
|
|
85
|
+
const [selectedMinutes, setSelectedMinutes] = useState(safeInitialValue.minutes);
|
|
86
|
+
const [selectedSeconds, setSelectedSeconds] = useState(safeInitialValue.seconds);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
onDurationChange === null || onDurationChange === void 0 || onDurationChange({
|
|
89
|
+
days: selectedDays,
|
|
90
|
+
hours: selectedHours,
|
|
91
|
+
minutes: selectedMinutes,
|
|
92
|
+
seconds: selectedSeconds
|
|
93
|
+
});
|
|
94
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
95
|
+
}, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);
|
|
96
|
+
const daysDurationScrollRef = useRef(null);
|
|
97
|
+
const hoursDurationScrollRef = useRef(null);
|
|
98
|
+
const minutesDurationScrollRef = useRef(null);
|
|
99
|
+
const secondsDurationScrollRef = useRef(null);
|
|
100
|
+
useImperativeHandle(ref, () => {
|
|
101
|
+
var _daysDurationScrollRe3, _hoursDurationScrollR3, _minutesDurationScrol3, _secondsDurationScrol3;
|
|
102
|
+
return {
|
|
103
|
+
reset: options => {
|
|
104
|
+
var _daysDurationScrollRe, _hoursDurationScrollR, _minutesDurationScrol, _secondsDurationScrol;
|
|
105
|
+
setSelectedDays(safeInitialValue.days);
|
|
106
|
+
setSelectedHours(safeInitialValue.hours);
|
|
107
|
+
setSelectedMinutes(safeInitialValue.minutes);
|
|
108
|
+
setSelectedSeconds(safeInitialValue.seconds);
|
|
109
|
+
(_daysDurationScrollRe = daysDurationScrollRef.current) === null || _daysDurationScrollRe === void 0 || _daysDurationScrollRe.reset(options);
|
|
110
|
+
(_hoursDurationScrollR = hoursDurationScrollRef.current) === null || _hoursDurationScrollR === void 0 || _hoursDurationScrollR.reset(options);
|
|
111
|
+
(_minutesDurationScrol = minutesDurationScrollRef.current) === null || _minutesDurationScrol === void 0 || _minutesDurationScrol.reset(options);
|
|
112
|
+
(_secondsDurationScrol = secondsDurationScrollRef.current) === null || _secondsDurationScrol === void 0 || _secondsDurationScrol.reset(options);
|
|
113
|
+
},
|
|
114
|
+
setValue: (value, options) => {
|
|
115
|
+
var _daysDurationScrollRe2, _hoursDurationScrollR2, _minutesDurationScrol2, _secondsDurationScrol2;
|
|
116
|
+
setSelectedDays(value.days);
|
|
117
|
+
setSelectedHours(value.hours);
|
|
118
|
+
setSelectedMinutes(value.minutes);
|
|
119
|
+
setSelectedSeconds(value.seconds);
|
|
120
|
+
(_daysDurationScrollRe2 = daysDurationScrollRef.current) === null || _daysDurationScrollRe2 === void 0 || _daysDurationScrollRe2.setValue(value.days, options);
|
|
121
|
+
(_hoursDurationScrollR2 = hoursDurationScrollRef.current) === null || _hoursDurationScrollR2 === void 0 || _hoursDurationScrollR2.setValue(value.hours, options);
|
|
122
|
+
(_minutesDurationScrol2 = minutesDurationScrollRef.current) === null || _minutesDurationScrol2 === void 0 || _minutesDurationScrol2.setValue(value.minutes, options);
|
|
123
|
+
(_secondsDurationScrol2 = secondsDurationScrollRef.current) === null || _secondsDurationScrol2 === void 0 || _secondsDurationScrol2.setValue(value.seconds, options);
|
|
124
|
+
},
|
|
125
|
+
latestDuration: {
|
|
126
|
+
days: (_daysDurationScrollRe3 = daysDurationScrollRef.current) === null || _daysDurationScrollRe3 === void 0 ? void 0 : _daysDurationScrollRe3.latestDuration,
|
|
127
|
+
hours: (_hoursDurationScrollR3 = hoursDurationScrollRef.current) === null || _hoursDurationScrollR3 === void 0 ? void 0 : _hoursDurationScrollR3.latestDuration,
|
|
128
|
+
minutes: (_minutesDurationScrol3 = minutesDurationScrollRef.current) === null || _minutesDurationScrol3 === void 0 ? void 0 : _minutesDurationScrol3.latestDuration,
|
|
129
|
+
seconds: (_secondsDurationScrol3 = secondsDurationScrollRef.current) === null || _secondsDurationScrol3 === void 0 ? void 0 : _secondsDurationScrol3.latestDuration
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
return /*#__PURE__*/React.createElement(View, _extends({}, pickerContainerProps, {
|
|
134
|
+
style: styles.pickerContainer,
|
|
135
|
+
testID: "timer-picker"
|
|
136
|
+
}), !hideDays ? /*#__PURE__*/React.createElement(DurationScroll, _extends({
|
|
137
|
+
ref: daysDurationScrollRef,
|
|
138
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
139
|
+
allowFontScaling: allowFontScaling,
|
|
140
|
+
disableInfiniteScroll: disableInfiniteScroll,
|
|
141
|
+
initialValue: safeInitialValue.days,
|
|
142
|
+
interval: dayInterval,
|
|
143
|
+
isDisabled: daysPickerIsDisabled,
|
|
144
|
+
label: dayLabel ?? "d",
|
|
145
|
+
limit: dayLimit,
|
|
146
|
+
maximumValue: maximumDays,
|
|
147
|
+
onDurationChange: setSelectedDays,
|
|
148
|
+
padNumbersWithZero: padDaysWithZero,
|
|
149
|
+
padWithNItems: safePadWithNItems,
|
|
150
|
+
repeatNumbersNTimes: repeatDayNumbersNTimes,
|
|
151
|
+
repeatNumbersNTimesNotExplicitlySet: (props === null || props === void 0 ? void 0 : props.repeatDayNumbersNTimes) === undefined,
|
|
152
|
+
styles: styles,
|
|
153
|
+
testID: "duration-scroll-day"
|
|
154
|
+
}, otherProps)) : null, !hideHours ? /*#__PURE__*/React.createElement(DurationScroll, _extends({
|
|
155
|
+
ref: hoursDurationScrollRef,
|
|
156
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
157
|
+
allowFontScaling: allowFontScaling,
|
|
158
|
+
amLabel: amLabel,
|
|
159
|
+
decelerationRate: decelerationRate,
|
|
160
|
+
disableInfiniteScroll: disableInfiniteScroll,
|
|
161
|
+
initialValue: safeInitialValue.hours,
|
|
162
|
+
interval: hourInterval,
|
|
163
|
+
is12HourPicker: use12HourPicker,
|
|
164
|
+
isDisabled: hoursPickerIsDisabled,
|
|
165
|
+
label: hourLabel ?? (!use12HourPicker ? "h" : undefined),
|
|
166
|
+
limit: hourLimit,
|
|
167
|
+
maximumValue: maximumHours,
|
|
168
|
+
onDurationChange: setSelectedHours,
|
|
169
|
+
padNumbersWithZero: padHoursWithZero,
|
|
170
|
+
padWithNItems: safePadWithNItems,
|
|
171
|
+
pmLabel: pmLabel,
|
|
172
|
+
repeatNumbersNTimes: repeatHourNumbersNTimes,
|
|
173
|
+
repeatNumbersNTimesNotExplicitlySet: (props === null || props === void 0 ? void 0 : props.repeatHourNumbersNTimes) === undefined,
|
|
174
|
+
styles: styles,
|
|
175
|
+
testID: "duration-scroll-hour"
|
|
176
|
+
}, otherProps)) : null, !hideMinutes ? /*#__PURE__*/React.createElement(DurationScroll, _extends({
|
|
177
|
+
ref: minutesDurationScrollRef,
|
|
178
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
179
|
+
allowFontScaling: allowFontScaling,
|
|
180
|
+
decelerationRate: decelerationRate,
|
|
181
|
+
disableInfiniteScroll: disableInfiniteScroll,
|
|
182
|
+
initialValue: safeInitialValue.minutes,
|
|
183
|
+
interval: minuteInterval,
|
|
184
|
+
isDisabled: minutesPickerIsDisabled,
|
|
185
|
+
label: minuteLabel ?? "m",
|
|
186
|
+
limit: minuteLimit,
|
|
187
|
+
maximumValue: maximumMinutes,
|
|
188
|
+
onDurationChange: setSelectedMinutes,
|
|
189
|
+
padNumbersWithZero: padMinutesWithZero,
|
|
190
|
+
padWithNItems: safePadWithNItems,
|
|
191
|
+
repeatNumbersNTimes: repeatMinuteNumbersNTimes,
|
|
192
|
+
repeatNumbersNTimesNotExplicitlySet: (props === null || props === void 0 ? void 0 : props.repeatMinuteNumbersNTimes) === undefined,
|
|
193
|
+
styles: styles,
|
|
194
|
+
testID: "duration-scroll-minute"
|
|
195
|
+
}, otherProps)) : null, !hideSeconds ? /*#__PURE__*/React.createElement(DurationScroll, _extends({
|
|
196
|
+
ref: secondsDurationScrollRef,
|
|
197
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
198
|
+
allowFontScaling: allowFontScaling,
|
|
199
|
+
decelerationRate: decelerationRate,
|
|
200
|
+
disableInfiniteScroll: disableInfiniteScroll,
|
|
201
|
+
initialValue: safeInitialValue.seconds,
|
|
202
|
+
interval: secondInterval,
|
|
203
|
+
isDisabled: secondsPickerIsDisabled,
|
|
204
|
+
label: secondLabel ?? "s",
|
|
205
|
+
limit: secondLimit,
|
|
206
|
+
maximumValue: maximumSeconds,
|
|
207
|
+
onDurationChange: setSelectedSeconds,
|
|
208
|
+
padNumbersWithZero: padSecondsWithZero,
|
|
209
|
+
padWithNItems: safePadWithNItems,
|
|
210
|
+
repeatNumbersNTimes: repeatSecondNumbersNTimes,
|
|
211
|
+
repeatNumbersNTimesNotExplicitlySet: (props === null || props === void 0 ? void 0 : props.repeatSecondNumbersNTimes) === undefined,
|
|
212
|
+
styles: styles,
|
|
213
|
+
testID: "duration-scroll-second"
|
|
214
|
+
}, otherProps)) : null);
|
|
215
|
+
});
|
|
216
|
+
export default /*#__PURE__*/React.memo(TimerPicker);
|
|
217
|
+
//# sourceMappingURL=TimerPicker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useEffect","useImperativeHandle","useMemo","useRef","useState","View","getSafeInitialValue","DurationScroll","generateStyles","TimerPicker","props","ref","aggressivelyGetLatestDuration","allowFontScaling","amLabel","dayInterval","dayLabel","dayLimit","daysPickerIsDisabled","decelerationRate","disableInfiniteScroll","hideDays","hideHours","hideMinutes","hideSeconds","hourInterval","hourLabel","hourLimit","hoursPickerIsDisabled","initialValue","maximumDays","maximumHours","maximumMinutes","maximumSeconds","minuteInterval","minuteLabel","minuteLimit","minutesPickerIsDisabled","onDurationChange","padDaysWithZero","padHoursWithZero","padMinutesWithZero","padSecondsWithZero","padWithNItems","pickerContainerProps","pmLabel","repeatDayNumbersNTimes","repeatHourNumbersNTimes","repeatMinuteNumbersNTimes","repeatSecondNumbersNTimes","secondInterval","secondLabel","secondLimit","secondsPickerIsDisabled","styles","customStyles","use12HourPicker","otherProps","Audio","console","warn","Haptics","clickSoundAsset","safePadWithNItems","isNaN","maxPadWithNItems","Math","round","safeInitialValue","days","hours","minutes","seconds","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","daysDurationScrollRef","hoursDurationScrollRef","minutesDurationScrollRef","secondsDurationScrollRef","_daysDurationScrollRe3","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_daysDurationScrollRe","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_daysDurationScrollRe2","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","_extends","style","pickerContainer","testID","interval","isDisabled","label","limit","maximumValue","padNumbersWithZero","repeatNumbersNTimes","repeatNumbersNTimesNotExplicitlySet","undefined","is12HourPicker","memo"],"sources":["TimerPicker.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport { View } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport DurationScroll from \"../DurationScroll\";\nimport type { DurationScrollRef } from \"../DurationScroll\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerProps, TimerPickerRef } from \"./types\";\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (props, ref) => {\n const {\n aggressivelyGetLatestDuration = false,\n allowFontScaling = false,\n amLabel = \"am\",\n dayInterval = 1,\n dayLabel,\n dayLimit,\n daysPickerIsDisabled = false,\n decelerationRate = 0.88,\n disableInfiniteScroll = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourInterval = 1,\n hourLabel,\n hourLimit,\n hoursPickerIsDisabled = false,\n initialValue,\n maximumDays = 30,\n maximumHours = 23,\n maximumMinutes = 59,\n maximumSeconds = 59,\n minuteInterval = 1,\n minuteLabel,\n minuteLimit,\n minutesPickerIsDisabled = false,\n onDurationChange,\n padDaysWithZero = false,\n padHoursWithZero = false,\n padMinutesWithZero = true,\n padSecondsWithZero = true,\n padWithNItems = 1,\n pickerContainerProps,\n pmLabel = \"pm\",\n repeatDayNumbersNTimes = 3,\n repeatHourNumbersNTimes = 8,\n repeatMinuteNumbersNTimes = 3,\n repeatSecondNumbersNTimes = 3,\n secondInterval = 1,\n secondLabel,\n secondLimit,\n secondsPickerIsDisabled = false,\n styles: customStyles,\n use12HourPicker = false,\n ...otherProps\n } = props;\n\n useEffect(() => {\n if (otherProps.Audio) {\n console.warn(\n \"The \\\"Audio\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.Haptics) {\n console.warn(\n \"The \\\"Haptics\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n if (otherProps.clickSoundAsset) {\n console.warn(\n \"The \\\"clickSoundAsset\\\" prop is deprecated and will be removed in a future version. Please use the \\\"pickerFeedback\\\" prop instead.\"\n );\n }\n }, [otherProps.Audio, otherProps.Haptics, otherProps.clickSoundAsset]);\n\n const safePadWithNItems = useMemo(() => {\n if (padWithNItems < 0 || isNaN(padWithNItems)) {\n return 0;\n }\n\n const maxPadWithNItems = hideHours ? 15 : 6;\n\n if (padWithNItems > maxPadWithNItems) {\n return maxPadWithNItems;\n }\n\n return Math.round(padWithNItems);\n }, [hideHours, padWithNItems]);\n\n const safeInitialValue = useMemo(\n () =>\n getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n }),\n [\n initialValue?.days,\n initialValue?.hours,\n initialValue?.minutes,\n initialValue?.seconds,\n ]\n );\n\n const styles = useMemo(\n () => generateStyles(customStyles),\n\n [customStyles]\n );\n\n const [selectedDays, setSelectedDays] = useState(safeInitialValue.days);\n const [selectedHours, setSelectedHours] = useState(\n safeInitialValue.hours\n );\n const [selectedMinutes, setSelectedMinutes] = useState(\n safeInitialValue.minutes\n );\n const [selectedSeconds, setSelectedSeconds] = useState(\n safeInitialValue.seconds\n );\n\n useEffect(() => {\n onDurationChange?.({\n days: selectedDays,\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedDays, selectedHours, selectedMinutes, selectedSeconds]);\n\n const daysDurationScrollRef = useRef<DurationScrollRef>(null);\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedDays(safeInitialValue.days);\n setSelectedHours(safeInitialValue.hours);\n setSelectedMinutes(safeInitialValue.minutes);\n setSelectedSeconds(safeInitialValue.seconds);\n daysDurationScrollRef.current?.reset(options);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDays(value.days);\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n daysDurationScrollRef.current?.setValue(value.days, options);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n latestDuration: {\n days: daysDurationScrollRef.current?.latestDuration,\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideDays ? (\n <DurationScroll\n ref={daysDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.days}\n interval={dayInterval}\n isDisabled={daysPickerIsDisabled}\n label={dayLabel ?? \"d\"}\n limit={dayLimit}\n maximumValue={maximumDays}\n onDurationChange={setSelectedDays}\n padNumbersWithZero={padDaysWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatDayNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatDayNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-day\"\n {...otherProps}\n />\n ) : null}\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n amLabel={amLabel}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.hours}\n interval={hourInterval}\n is12HourPicker={use12HourPicker}\n isDisabled={hoursPickerIsDisabled}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n limit={hourLimit}\n maximumValue={maximumHours}\n onDurationChange={setSelectedHours}\n padNumbersWithZero={padHoursWithZero}\n padWithNItems={safePadWithNItems}\n pmLabel={pmLabel}\n repeatNumbersNTimes={repeatHourNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatHourNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-hour\"\n {...otherProps}\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.minutes}\n interval={minuteInterval}\n isDisabled={minutesPickerIsDisabled}\n label={minuteLabel ?? \"m\"}\n limit={minuteLimit}\n maximumValue={maximumMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero={padMinutesWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatMinuteNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatMinuteNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-minute\"\n {...otherProps}\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n allowFontScaling={allowFontScaling}\n decelerationRate={decelerationRate}\n disableInfiniteScroll={disableInfiniteScroll}\n initialValue={safeInitialValue.seconds}\n interval={secondInterval}\n isDisabled={secondsPickerIsDisabled}\n label={secondLabel ?? \"s\"}\n limit={secondLimit}\n maximumValue={maximumSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero={padSecondsWithZero}\n padWithNItems={safePadWithNItems}\n repeatNumbersNTimes={repeatSecondNumbersNTimes}\n repeatNumbersNTimesNotExplicitlySet={\n props?.repeatSecondNumbersNTimes === undefined\n }\n styles={styles}\n testID=\"duration-scroll-second\"\n {...otherProps}\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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","ignoreList":[]}
|