react-native-timer-picker 1.2.11 → 1.4.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 +22 -2
- package/dist/commonjs/components/Modal/index.js +13 -14
- package/dist/commonjs/components/Modal/index.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/DurationScroll.js +72 -34
- package/dist/commonjs/components/TimerPicker/DurationScroll.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js +23 -3
- package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/index.js +64 -47
- package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
- package/dist/commonjs/components/index.js +90 -69
- package/dist/commonjs/components/index.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +3 -1
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js +33 -10
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/padNumber.js +15 -0
- package/dist/commonjs/utils/padNumber.js.map +1 -0
- package/dist/module/components/Modal/index.js +13 -14
- package/dist/module/components/Modal/index.js.map +1 -1
- package/dist/module/components/TimerPicker/DurationScroll.js +73 -35
- package/dist/module/components/TimerPicker/DurationScroll.js.map +1 -1
- package/dist/module/components/TimerPicker/TimerPicker.styles.js +23 -3
- package/dist/module/components/TimerPicker/TimerPicker.styles.js.map +1 -1
- package/dist/module/components/TimerPicker/index.js +64 -47
- package/dist/module/components/TimerPicker/index.js.map +1 -1
- package/dist/module/components/index.js +90 -69
- package/dist/module/components/index.js.map +1 -1
- package/dist/module/tests/Modal.test.js +3 -1
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/utils/generateNumbers.js +31 -9
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/padNumber.js +8 -0
- package/dist/module/utils/padNumber.js.map +1 -0
- package/dist/typescript/components/TimerPicker/DurationScroll.d.ts +6 -1
- package/dist/typescript/components/TimerPicker/TimerPicker.styles.d.ts +4 -0
- package/dist/typescript/components/TimerPicker/index.d.ts +10 -1
- package/dist/typescript/components/index.d.ts +6 -1
- package/dist/typescript/utils/generateNumbers.d.ts +7 -2
- package/dist/typescript/utils/padNumber.d.ts +3 -0
- package/package.json +2 -2
- package/src/components/Modal/index.tsx +2 -2
- package/src/components/TimerPicker/DurationScroll.tsx +95 -12
- package/src/components/TimerPicker/TimerPicker.styles.ts +32 -1
- package/src/components/TimerPicker/index.tsx +39 -6
- package/src/components/index.tsx +45 -15
- package/src/tests/Modal.test.tsx +1 -1
- package/src/utils/generateNumbers.ts +40 -10
- package/src/utils/padNumber.ts +10 -0
- package/dist/commonjs/utils/padWithZero.js +0 -15
- package/dist/commonjs/utils/padWithZero.js.map +0 -1
- package/dist/module/utils/padWithZero.js +0 -8
- package/dist/module/utils/padWithZero.js.map +0 -1
- package/dist/typescript/utils/padWithZero.d.ts +0 -1
- package/src/utils/padWithZero.ts +0 -7
|
@@ -12,30 +12,33 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
12
12
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
13
13
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
14
14
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
15
|
-
const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
15
|
+
const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
16
|
+
onDurationChange,
|
|
17
|
+
initialHours = 0,
|
|
18
|
+
initialMinutes = 0,
|
|
19
|
+
initialSeconds = 0,
|
|
20
|
+
hideHours = false,
|
|
21
|
+
hideMinutes = false,
|
|
22
|
+
hideSeconds = false,
|
|
23
|
+
hourLimit,
|
|
24
|
+
minuteLimit,
|
|
25
|
+
secondLimit,
|
|
26
|
+
hourLabel,
|
|
27
|
+
minuteLabel,
|
|
28
|
+
secondLabel,
|
|
29
|
+
padWithNItems = 1,
|
|
30
|
+
disableInfiniteScroll = false,
|
|
31
|
+
aggressivelyGetLatestDuration = false,
|
|
32
|
+
use12HourPicker = false,
|
|
33
|
+
amLabel = "am",
|
|
34
|
+
pmLabel = "pm",
|
|
35
|
+
LinearGradient,
|
|
36
|
+
pickerContainerProps,
|
|
37
|
+
pickerGradientOverlayProps,
|
|
38
|
+
topPickerGradientOverlayProps,
|
|
39
|
+
bottomPickerGradientOverlayProps,
|
|
40
|
+
styles: customStyles
|
|
41
|
+
}, ref) => {
|
|
39
42
|
const checkedPadWithNItems = padWithNItems >= 0 ? Math.round(padWithNItems) : 0;
|
|
40
43
|
const styles = (0, _react.useMemo)(() => (0, _TimerPicker.generateStyles)(customStyles, {
|
|
41
44
|
padWithNItems: checkedPadWithNItems
|
|
@@ -54,34 +57,43 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
54
57
|
const hoursDurationScrollRef = (0, _react.useRef)(null);
|
|
55
58
|
const minutesDurationScrollRef = (0, _react.useRef)(null);
|
|
56
59
|
const secondsDurationScrollRef = (0, _react.useRef)(null);
|
|
57
|
-
(0, _react.useImperativeHandle)(ref, () =>
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
60
|
+
(0, _react.useImperativeHandle)(ref, () => {
|
|
61
|
+
var _hoursDurationScrollR3, _minutesDurationScrol3, _secondsDurationScrol3;
|
|
62
|
+
return {
|
|
63
|
+
reset: options => {
|
|
64
|
+
var _hoursDurationScrollR, _minutesDurationScrol, _secondsDurationScrol;
|
|
65
|
+
setSelectedHours(initialHours);
|
|
66
|
+
setSelectedMinutes(initialMinutes);
|
|
67
|
+
setSelectedSeconds(initialSeconds);
|
|
68
|
+
(_hoursDurationScrollR = hoursDurationScrollRef.current) === null || _hoursDurationScrollR === void 0 || _hoursDurationScrollR.reset(options);
|
|
69
|
+
(_minutesDurationScrol = minutesDurationScrollRef.current) === null || _minutesDurationScrol === void 0 || _minutesDurationScrol.reset(options);
|
|
70
|
+
(_secondsDurationScrol = secondsDurationScrollRef.current) === null || _secondsDurationScrol === void 0 || _secondsDurationScrol.reset(options);
|
|
71
|
+
},
|
|
72
|
+
setValue: (value, options) => {
|
|
73
|
+
var _hoursDurationScrollR2, _minutesDurationScrol2, _secondsDurationScrol2;
|
|
74
|
+
setSelectedHours(value.hours);
|
|
75
|
+
setSelectedMinutes(value.minutes);
|
|
76
|
+
setSelectedSeconds(value.seconds);
|
|
77
|
+
(_hoursDurationScrollR2 = hoursDurationScrollRef.current) === null || _hoursDurationScrollR2 === void 0 || _hoursDurationScrollR2.setValue(value.hours, options);
|
|
78
|
+
(_minutesDurationScrol2 = minutesDurationScrollRef.current) === null || _minutesDurationScrol2 === void 0 || _minutesDurationScrol2.setValue(value.minutes, options);
|
|
79
|
+
(_secondsDurationScrol2 = secondsDurationScrollRef.current) === null || _secondsDurationScrol2 === void 0 || _secondsDurationScrol2.setValue(value.seconds, options);
|
|
80
|
+
},
|
|
81
|
+
latestDuration: {
|
|
82
|
+
hours: (_hoursDurationScrollR3 = hoursDurationScrollRef.current) === null || _hoursDurationScrollR3 === void 0 ? void 0 : _hoursDurationScrollR3.latestDuration,
|
|
83
|
+
minutes: (_minutesDurationScrol3 = minutesDurationScrollRef.current) === null || _minutesDurationScrol3 === void 0 ? void 0 : _minutesDurationScrol3.latestDuration,
|
|
84
|
+
seconds: (_secondsDurationScrol3 = secondsDurationScrollRef.current) === null || _secondsDurationScrol3 === void 0 ? void 0 : _secondsDurationScrol3.latestDuration
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
});
|
|
77
88
|
return /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({}, pickerContainerProps, {
|
|
78
89
|
style: styles.pickerContainer,
|
|
79
90
|
testID: "timer-picker"
|
|
80
91
|
}), !hideHours ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
|
|
81
92
|
ref: hoursDurationScrollRef,
|
|
82
93
|
numberOfItems: 23,
|
|
83
|
-
label: hourLabel,
|
|
94
|
+
label: hourLabel ?? (!use12HourPicker ? "h" : undefined),
|
|
84
95
|
initialValue: initialHours,
|
|
96
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
85
97
|
onDurationChange: setSelectedHours,
|
|
86
98
|
pickerGradientOverlayProps: pickerGradientOverlayProps,
|
|
87
99
|
topPickerGradientOverlayProps: topPickerGradientOverlayProps,
|
|
@@ -90,13 +102,17 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
90
102
|
padWithNItems: checkedPadWithNItems,
|
|
91
103
|
limit: hourLimit,
|
|
92
104
|
LinearGradient: LinearGradient,
|
|
105
|
+
is12HourPicker: use12HourPicker,
|
|
106
|
+
amLabel: amLabel,
|
|
107
|
+
pmLabel: pmLabel,
|
|
93
108
|
styles: styles,
|
|
94
109
|
testID: "duration-scroll-hour"
|
|
95
110
|
}) : null, !hideMinutes ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
|
|
96
111
|
ref: minutesDurationScrollRef,
|
|
97
112
|
numberOfItems: 59,
|
|
98
|
-
label: minuteLabel,
|
|
113
|
+
label: minuteLabel ?? "m",
|
|
99
114
|
initialValue: initialMinutes,
|
|
115
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
100
116
|
onDurationChange: setSelectedMinutes,
|
|
101
117
|
padNumbersWithZero: true,
|
|
102
118
|
pickerGradientOverlayProps: pickerGradientOverlayProps,
|
|
@@ -111,8 +127,9 @@ const TimerPicker = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
111
127
|
}) : null, !hideSeconds ? /*#__PURE__*/_react.default.createElement(_DurationScroll.default, {
|
|
112
128
|
ref: secondsDurationScrollRef,
|
|
113
129
|
numberOfItems: 59,
|
|
114
|
-
label: secondLabel,
|
|
130
|
+
label: secondLabel ?? "s",
|
|
115
131
|
initialValue: initialSeconds,
|
|
132
|
+
aggressivelyGetLatestDuration: aggressivelyGetLatestDuration,
|
|
116
133
|
onDurationChange: setSelectedSeconds,
|
|
117
134
|
padNumbersWithZero: true,
|
|
118
135
|
pickerGradientOverlayProps: pickerGradientOverlayProps,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DurationScroll","_interopRequireDefault","_TimerPicker","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","TimerPicker","forwardRef","_ref","ref","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","checkedPadWithNItems","Math","round","useMemo","generateStyles","selectedHours","setSelectedHours","useState","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","useEffect","hours","minutes","seconds","hoursDurationScrollRef","useRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","createElement","View","style","pickerContainer","testID","numberOfItems","label","initialValue","limit","padNumbersWithZero","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n}\n\nexport interface TimerPickerProps {\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel = \"h\",\n minuteLabel = \"m\",\n secondLabel = \"s\",\n padWithNItems = 1,\n disableInfiniteScroll = false,\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\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 setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\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 }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={hourLabel}\n initialValue={initialHours}\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel}\n initialValue={initialMinutes}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel}\n initialValue={initialSeconds}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DurationScroll","_interopRequireDefault","_TimerPicker","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","TimerPicker","forwardRef","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","aggressivelyGetLatestDuration","use12HourPicker","amLabel","pmLabel","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","checkedPadWithNItems","Math","round","useMemo","generateStyles","selectedHours","setSelectedHours","useState","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","useEffect","hours","minutes","seconds","hoursDurationScrollRef","useRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","View","style","pickerContainer","testID","numberOfItems","label","undefined","initialValue","limit","is12HourPicker","padNumbersWithZero","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerProps {\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n aggressivelyGetLatestDuration?: boolean;\n use12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n aggressivelyGetLatestDuration = false,\n use12HourPicker = false,\n amLabel = \"am\",\n pmLabel = \"pm\",\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\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 setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\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 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 {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n initialValue={initialHours}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n is12HourPicker={use12HourPicker}\n amLabel={amLabel}\n pmLabel={pmLabel}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel ?? \"m\"}\n initialValue={initialMinutes}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel ?? \"s\"}\n initialValue={initialSeconds}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
|
|
@@ -13,46 +13,49 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
13
13
|
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
|
|
14
14
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
15
15
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
16
|
-
const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
16
|
+
const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
17
|
+
visible,
|
|
18
|
+
setIsVisible,
|
|
19
|
+
onConfirm,
|
|
20
|
+
onCancel,
|
|
21
|
+
onDurationChange,
|
|
22
|
+
closeOnOverlayPress,
|
|
23
|
+
initialHours = 0,
|
|
24
|
+
initialMinutes = 0,
|
|
25
|
+
initialSeconds = 0,
|
|
26
|
+
hideHours = false,
|
|
27
|
+
hideMinutes = false,
|
|
28
|
+
hideSeconds = false,
|
|
29
|
+
hourLimit,
|
|
30
|
+
minuteLimit,
|
|
31
|
+
secondLimit,
|
|
32
|
+
hourLabel,
|
|
33
|
+
minuteLabel,
|
|
34
|
+
secondLabel,
|
|
35
|
+
padWithNItems = 1,
|
|
36
|
+
disableInfiniteScroll = false,
|
|
37
|
+
use12HourPicker,
|
|
38
|
+
amLabel,
|
|
39
|
+
pmLabel,
|
|
40
|
+
hideCancelButton = false,
|
|
41
|
+
confirmButtonText = "Confirm",
|
|
42
|
+
cancelButtonText = "Cancel",
|
|
43
|
+
modalTitle,
|
|
44
|
+
LinearGradient,
|
|
45
|
+
modalProps,
|
|
46
|
+
containerProps,
|
|
47
|
+
contentContainerProps,
|
|
48
|
+
pickerContainerProps,
|
|
49
|
+
buttonContainerProps,
|
|
50
|
+
buttonTouchableOpacityProps,
|
|
51
|
+
modalTitleProps,
|
|
52
|
+
pickerGradientOverlayProps,
|
|
53
|
+
topPickerGradientOverlayProps,
|
|
54
|
+
bottomPickerGradientOverlayProps,
|
|
55
|
+
styles: customStyles
|
|
56
|
+
}, ref) => {
|
|
55
57
|
const styles = (0, _TimerPickerModal.generateStyles)(customStyles);
|
|
58
|
+
const timerPickerRef = (0, _react.useRef)(null);
|
|
56
59
|
const [selectedDuration, setSelectedDuration] = (0, _react.useState)({
|
|
57
60
|
hours: initialHours,
|
|
58
61
|
minutes: initialMinutes,
|
|
@@ -63,7 +66,7 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
63
66
|
minutes: initialMinutes,
|
|
64
67
|
seconds: initialSeconds
|
|
65
68
|
});
|
|
66
|
-
const
|
|
69
|
+
const hideModalHandler = () => {
|
|
67
70
|
setSelectedDuration({
|
|
68
71
|
hours: confirmedDuration.hours,
|
|
69
72
|
minutes: confirmedDuration.minutes,
|
|
@@ -71,44 +74,58 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
71
74
|
});
|
|
72
75
|
setIsVisible(false);
|
|
73
76
|
};
|
|
74
|
-
const
|
|
75
|
-
|
|
76
|
-
|
|
77
|
+
const confirmHandler = () => {
|
|
78
|
+
var _timerPickerRef$curre, _latestDuration$hours, _latestDuration$minut, _latestDuration$secon;
|
|
79
|
+
const latestDuration = (_timerPickerRef$curre = timerPickerRef.current) === null || _timerPickerRef$curre === void 0 ? void 0 : _timerPickerRef$curre.latestDuration;
|
|
80
|
+
const newDuration = {
|
|
81
|
+
hours: (latestDuration === null || latestDuration === void 0 || (_latestDuration$hours = latestDuration.hours) === null || _latestDuration$hours === void 0 ? void 0 : _latestDuration$hours.current) ?? selectedDuration.hours,
|
|
82
|
+
minutes: (latestDuration === null || latestDuration === void 0 || (_latestDuration$minut = latestDuration.minutes) === null || _latestDuration$minut === void 0 ? void 0 : _latestDuration$minut.current) ?? selectedDuration.minutes,
|
|
83
|
+
seconds: (latestDuration === null || latestDuration === void 0 || (_latestDuration$secon = latestDuration.seconds) === null || _latestDuration$secon === void 0 ? void 0 : _latestDuration$secon.current) ?? selectedDuration.seconds
|
|
84
|
+
};
|
|
85
|
+
setConfirmedDuration(newDuration);
|
|
86
|
+
onConfirm(newDuration);
|
|
77
87
|
};
|
|
78
|
-
const
|
|
88
|
+
const cancelHandler = () => {
|
|
79
89
|
setIsVisible(false);
|
|
80
90
|
setSelectedDuration(confirmedDuration);
|
|
81
91
|
onCancel === null || onCancel === void 0 || onCancel();
|
|
82
92
|
};
|
|
83
93
|
|
|
84
94
|
// wrapped in useCallback to avoid unnecessary re-renders of TimerPicker
|
|
85
|
-
const
|
|
95
|
+
const durationChangeHandler = (0, _react.useCallback)(duration => {
|
|
86
96
|
setSelectedDuration(duration);
|
|
87
97
|
onDurationChange === null || onDurationChange === void 0 || onDurationChange(duration);
|
|
88
98
|
}, [onDurationChange]);
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
99
|
+
(0, _react.useImperativeHandle)(ref, () => {
|
|
100
|
+
var _timerPickerRef$curre4, _timerPickerRef$curre5, _timerPickerRef$curre6;
|
|
101
|
+
return {
|
|
102
|
+
reset: options => {
|
|
103
|
+
var _timerPickerRef$curre2;
|
|
104
|
+
const initialDuration = {
|
|
105
|
+
hours: initialHours,
|
|
106
|
+
minutes: initialMinutes,
|
|
107
|
+
seconds: initialSeconds
|
|
108
|
+
};
|
|
109
|
+
setSelectedDuration(initialDuration);
|
|
110
|
+
setConfirmedDuration(initialDuration);
|
|
111
|
+
(_timerPickerRef$curre2 = timerPickerRef.current) === null || _timerPickerRef$curre2 === void 0 || _timerPickerRef$curre2.reset(options);
|
|
112
|
+
},
|
|
113
|
+
setValue: (value, options) => {
|
|
114
|
+
var _timerPickerRef$curre3;
|
|
115
|
+
setSelectedDuration(value);
|
|
116
|
+
setConfirmedDuration(value);
|
|
117
|
+
(_timerPickerRef$curre3 = timerPickerRef.current) === null || _timerPickerRef$curre3 === void 0 || _timerPickerRef$curre3.setValue(value, options);
|
|
118
|
+
},
|
|
119
|
+
latestDuration: {
|
|
120
|
+
hours: (_timerPickerRef$curre4 = timerPickerRef.current) === null || _timerPickerRef$curre4 === void 0 || (_timerPickerRef$curre4 = _timerPickerRef$curre4.latestDuration) === null || _timerPickerRef$curre4 === void 0 ? void 0 : _timerPickerRef$curre4.hours,
|
|
121
|
+
minutes: (_timerPickerRef$curre5 = timerPickerRef.current) === null || _timerPickerRef$curre5 === void 0 || (_timerPickerRef$curre5 = _timerPickerRef$curre5.latestDuration) === null || _timerPickerRef$curre5 === void 0 ? void 0 : _timerPickerRef$curre5.minutes,
|
|
122
|
+
seconds: (_timerPickerRef$curre6 = timerPickerRef.current) === null || _timerPickerRef$curre6 === void 0 || (_timerPickerRef$curre6 = _timerPickerRef$curre6.latestDuration) === null || _timerPickerRef$curre6 === void 0 ? void 0 : _timerPickerRef$curre6.seconds
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
});
|
|
109
126
|
return /*#__PURE__*/_react.default.createElement(_Modal.default, _extends({
|
|
110
127
|
isVisible: visible,
|
|
111
|
-
onOverlayPress: closeOnOverlayPress ?
|
|
128
|
+
onOverlayPress: closeOnOverlayPress ? hideModalHandler : undefined
|
|
112
129
|
}, modalProps, {
|
|
113
130
|
testID: "timer-picker-modal"
|
|
114
131
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({}, containerProps, {
|
|
@@ -119,10 +136,11 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
119
136
|
style: styles.modalTitle
|
|
120
137
|
}), modalTitle) : null, /*#__PURE__*/_react.default.createElement(_TimerPicker.default, {
|
|
121
138
|
ref: timerPickerRef,
|
|
122
|
-
onDurationChange:
|
|
139
|
+
onDurationChange: durationChangeHandler,
|
|
123
140
|
initialHours: confirmedDuration.hours,
|
|
124
141
|
initialMinutes: confirmedDuration.minutes,
|
|
125
142
|
initialSeconds: confirmedDuration.seconds,
|
|
143
|
+
aggressivelyGetLatestDuration: true,
|
|
126
144
|
hideHours: hideHours,
|
|
127
145
|
hideMinutes: hideMinutes,
|
|
128
146
|
hideSeconds: hideSeconds,
|
|
@@ -134,6 +152,9 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
134
152
|
secondLabel: secondLabel,
|
|
135
153
|
padWithNItems: padWithNItems,
|
|
136
154
|
disableInfiniteScroll: disableInfiniteScroll,
|
|
155
|
+
use12HourPicker: use12HourPicker,
|
|
156
|
+
amLabel: amLabel,
|
|
157
|
+
pmLabel: pmLabel,
|
|
137
158
|
LinearGradient: LinearGradient,
|
|
138
159
|
pickerContainerProps: pickerContainerProps,
|
|
139
160
|
pickerGradientOverlayProps: pickerGradientOverlayProps,
|
|
@@ -143,11 +164,11 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
|
|
|
143
164
|
}), /*#__PURE__*/_react.default.createElement(_reactNative.View, _extends({}, buttonContainerProps, {
|
|
144
165
|
style: styles.buttonContainer
|
|
145
166
|
}), !hideCancelButton ? /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, _extends({
|
|
146
|
-
onPress:
|
|
167
|
+
onPress: cancelHandler
|
|
147
168
|
}, buttonTouchableOpacityProps), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
148
169
|
style: [styles.button, styles.cancelButton]
|
|
149
170
|
}, cancelButtonText)) : null, /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, _extends({
|
|
150
|
-
onPress:
|
|
171
|
+
onPress: confirmHandler
|
|
151
172
|
}, buttonTouchableOpacityProps), /*#__PURE__*/_react.default.createElement(_reactNative.Text, {
|
|
152
173
|
style: [styles.button, styles.confirmButton]
|
|
153
174
|
}, confirmButtonText))))));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TimerPicker","_interopRequireDefault","_Modal","_TimerPickerModal","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","TimerPickerModal","forwardRef","_ref","ref","visible","setIsVisible","onConfirm","onCancel","onDurationChange","closeOnOverlayPress","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","hideCancelButton","confirmButtonText","cancelButtonText","modalTitle","LinearGradient","modalProps","containerProps","contentContainerProps","pickerContainerProps","buttonContainerProps","buttonTouchableOpacityProps","modalTitleProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","generateStyles","selectedDuration","setSelectedDuration","useState","hours","minutes","seconds","confirmedDuration","setConfirmedDuration","hideModal","confirm","cancel","durationChange","useCallback","duration","timerPickerRef","useRef","useImperativeHandle","reset","options","_timerPickerRef$curre","initialDuration","current","setValue","value","_timerPickerRef$curre2","createElement","isVisible","onOverlayPress","undefined","testID","View","style","container","contentContainer","Text","buttonContainer","TouchableOpacity","onPress","button","cancelButton","confirmButton","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport TimerPicker, { TimerPickerProps, TimerPickerRef } from \"./TimerPicker\";\nimport Modal from \"./Modal\";\n\nimport {\n generateStyles,\n CustomTimerPickerModalStyles,\n} from \"./TimerPickerModal.styles\";\n\nexport interface TimerPickerModalRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n visible: boolean;\n setIsVisible: (isVisible: boolean) => void;\n onConfirm: ({\n hours,\n minutes,\n seconds,\n }: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n onCancel?: () => void;\n closeOnOverlayPress?: boolean;\n hideCancelButton?: boolean;\n confirmButtonText?: string;\n cancelButtonText?: string;\n modalTitle?: string;\n modalProps?: React.ComponentProps<typeof Modal>;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n styles?: CustomTimerPickerModalStyles;\n}\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (\n {\n visible,\n setIsVisible,\n onConfirm,\n onCancel,\n onDurationChange,\n closeOnOverlayPress,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel = \"h\",\n minuteLabel = \"m\",\n secondLabel = \"s\",\n padWithNItems = 1,\n disableInfiniteScroll = false,\n hideCancelButton = false,\n confirmButtonText = \"Confirm\",\n cancelButtonText = \"Cancel\",\n modalTitle,\n LinearGradient,\n modalProps,\n containerProps,\n contentContainerProps,\n pickerContainerProps,\n buttonContainerProps,\n buttonTouchableOpacityProps,\n modalTitleProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const styles = generateStyles(customStyles);\n\n const [selectedDuration, setSelectedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n const [confirmedDuration, setConfirmedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n\n const hideModal = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirm = () => {\n setConfirmedDuration(selectedDuration);\n onConfirm(selectedDuration);\n };\n\n const cancel = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChange = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n const initialDuration = {\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n };\n setSelectedDuration(initialDuration);\n setConfirmedDuration(initialDuration);\n timerPickerRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={closeOnOverlayPress ? hideModal : undefined}\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n onDurationChange={durationChange}\n initialHours={confirmedDuration.hours}\n initialMinutes={confirmedDuration.minutes}\n initialSeconds={confirmedDuration.seconds}\n hideHours={hideHours}\n hideMinutes={hideMinutes}\n hideSeconds={hideSeconds}\n hourLimit={hourLimit}\n minuteLimit={minuteLimit}\n secondLimit={secondLimit}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n secondLabel={secondLabel}\n padWithNItems={padWithNItems}\n disableInfiniteScroll={disableInfiniteScroll}\n LinearGradient={LinearGradient}\n pickerContainerProps={pickerContainerProps}\n pickerGradientOverlayProps={\n pickerGradientOverlayProps\n }\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n styles={customStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n onPress={cancel}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n onPress={confirm}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TimerPicker","_interopRequireDefault","_Modal","_TimerPickerModal","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","TimerPickerModal","forwardRef","visible","setIsVisible","onConfirm","onCancel","onDurationChange","closeOnOverlayPress","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","use12HourPicker","amLabel","pmLabel","hideCancelButton","confirmButtonText","cancelButtonText","modalTitle","LinearGradient","modalProps","containerProps","contentContainerProps","pickerContainerProps","buttonContainerProps","buttonTouchableOpacityProps","modalTitleProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","generateStyles","timerPickerRef","useRef","selectedDuration","setSelectedDuration","useState","hours","minutes","seconds","confirmedDuration","setConfirmedDuration","hideModalHandler","confirmHandler","_timerPickerRef$curre","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","current","newDuration","cancelHandler","durationChangeHandler","useCallback","duration","useImperativeHandle","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","reset","options","_timerPickerRef$curre2","initialDuration","setValue","value","_timerPickerRef$curre3","createElement","isVisible","onOverlayPress","undefined","testID","View","style","container","contentContainer","Text","aggressivelyGetLatestDuration","buttonContainer","TouchableOpacity","onPress","button","cancelButton","confirmButton","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport TimerPicker, { TimerPickerProps, TimerPickerRef } from \"./TimerPicker\";\nimport Modal from \"./Modal\";\n\nimport {\n generateStyles,\n CustomTimerPickerModalStyles,\n} from \"./TimerPickerModal.styles\";\n\nexport interface TimerPickerModalRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n visible: boolean;\n setIsVisible: (isVisible: boolean) => void;\n onConfirm: ({\n hours,\n minutes,\n seconds,\n }: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n onCancel?: () => void;\n closeOnOverlayPress?: boolean;\n hideCancelButton?: boolean;\n confirmButtonText?: string;\n cancelButtonText?: string;\n modalTitle?: string;\n modalProps?: React.ComponentProps<typeof Modal>;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n styles?: CustomTimerPickerModalStyles;\n}\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (\n {\n visible,\n setIsVisible,\n onConfirm,\n onCancel,\n onDurationChange,\n closeOnOverlayPress,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n use12HourPicker,\n amLabel,\n pmLabel,\n hideCancelButton = false,\n confirmButtonText = \"Confirm\",\n cancelButtonText = \"Cancel\",\n modalTitle,\n LinearGradient,\n modalProps,\n containerProps,\n contentContainerProps,\n pickerContainerProps,\n buttonContainerProps,\n buttonTouchableOpacityProps,\n modalTitleProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const styles = generateStyles(customStyles);\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const [selectedDuration, setSelectedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n const [confirmedDuration, setConfirmedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n\n const hideModalHandler = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirmHandler = () => {\n const latestDuration = timerPickerRef.current?.latestDuration;\n const newDuration = {\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes:\n latestDuration?.minutes?.current ??\n selectedDuration.minutes,\n seconds:\n latestDuration?.seconds?.current ??\n selectedDuration.seconds,\n };\n setConfirmedDuration(newDuration);\n onConfirm(newDuration);\n };\n\n const cancelHandler = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChangeHandler = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n const initialDuration = {\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n };\n setSelectedDuration(initialDuration);\n setConfirmedDuration(initialDuration);\n timerPickerRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={\n closeOnOverlayPress ? hideModalHandler : undefined\n }\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n onDurationChange={durationChangeHandler}\n initialHours={confirmedDuration.hours}\n initialMinutes={confirmedDuration.minutes}\n initialSeconds={confirmedDuration.seconds}\n aggressivelyGetLatestDuration={true}\n hideHours={hideHours}\n hideMinutes={hideMinutes}\n hideSeconds={hideSeconds}\n hourLimit={hourLimit}\n minuteLimit={minuteLimit}\n secondLimit={secondLimit}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n secondLabel={secondLabel}\n padWithNItems={padWithNItems}\n disableInfiniteScroll={disableInfiniteScroll}\n use12HourPicker={use12HourPicker}\n amLabel={amLabel}\n pmLabel={pmLabel}\n LinearGradient={LinearGradient}\n pickerContainerProps={pickerContainerProps}\n pickerGradientOverlayProps={\n pickerGradientOverlayProps\n }\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n styles={customStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n onPress={cancelHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n onPress={confirmHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAD,OAAA;AAEA,IAAAE,YAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,MAAA,GAAAD,sBAAA,CAAAH,OAAA;AAEA,IAAAK,iBAAA,GAAAL,OAAA;AAGmC,SAAAG,uBAAAG,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAAA,SAAAG,yBAAAC,CAAA,6BAAAC,OAAA,mBAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAX,wBAAAW,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAH,UAAA,SAAAG,CAAA,eAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,WAAAF,OAAA,EAAAE,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAC,GAAA,CAAAJ,CAAA,UAAAG,CAAA,CAAAE,GAAA,CAAAL,CAAA,OAAAM,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,CAAA,IAAAZ,CAAA,oBAAAY,CAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAY,CAAA,SAAAI,CAAA,GAAAR,CAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAX,CAAA,EAAAY,CAAA,UAAAI,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,MAAA,CAAAC,cAAA,CAAAJ,CAAA,EAAAM,CAAA,EAAAI,CAAA,IAAAV,CAAA,CAAAM,CAAA,IAAAZ,CAAA,CAAAY,CAAA,YAAAN,CAAA,CAAAR,OAAA,GAAAE,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAc,GAAA,CAAAjB,CAAA,EAAAM,CAAA,GAAAA,CAAA;AAAA,SAAAY,SAAA,IAAAA,QAAA,GAAAT,MAAA,CAAAU,MAAA,GAAAV,MAAA,CAAAU,MAAA,CAAAC,IAAA,eAAAC,MAAA,aAAAL,CAAA,MAAAA,CAAA,GAAAM,SAAA,CAAAC,MAAA,EAAAP,CAAA,UAAAQ,MAAA,GAAAF,SAAA,CAAAN,CAAA,YAAAS,GAAA,IAAAD,MAAA,QAAAf,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAS,MAAA,EAAAC,GAAA,KAAAJ,MAAA,CAAAI,GAAA,IAAAD,MAAA,CAAAC,GAAA,gBAAAJ,MAAA,YAAAH,QAAA,CAAAQ,KAAA,OAAAJ,SAAA;AA8CnC,MAAMK,gBAAgB,gBAAG,IAAAC,iBAAU,EAC/B,CACI;EACIC,OAAO;EACPC,YAAY;EACZC,SAAS;EACTC,QAAQ;EACRC,gBAAgB;EAChBC,mBAAmB;EACnBC,YAAY,GAAG,CAAC;EAChBC,cAAc,GAAG,CAAC;EAClBC,cAAc,GAAG,CAAC;EAClBC,SAAS,GAAG,KAAK;EACjBC,WAAW,GAAG,KAAK;EACnBC,WAAW,GAAG,KAAK;EACnBC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,SAAS;EACTC,WAAW;EACXC,WAAW;EACXC,aAAa,GAAG,CAAC;EACjBC,qBAAqB,GAAG,KAAK;EAC7BC,eAAe;EACfC,OAAO;EACPC,OAAO;EACPC,gBAAgB,GAAG,KAAK;EACxBC,iBAAiB,GAAG,SAAS;EAC7BC,gBAAgB,GAAG,QAAQ;EAC3BC,UAAU;EACVC,cAAc;EACdC,UAAU;EACVC,cAAc;EACdC,qBAAqB;EACrBC,oBAAoB;EACpBC,oBAAoB;EACpBC,2BAA2B;EAC3BC,eAAe;EACfC,0BAA0B;EAC1BC,6BAA6B;EAC7BC,gCAAgC;EAChCC,MAAM,EAAEC;AACZ,CAAC,EACDC,GAAG,KACkB;EACrB,MAAMF,MAAM,GAAG,IAAAG,gCAAc,EAACF,YAAY,CAAC;EAE3C,MAAMG,cAAc,GAAG,IAAAC,aAAM,EAAiB,IAAI,CAAC;EAEnD,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAC,eAAQ,EAAC;IACrDC,KAAK,EAAEzC,YAAY;IACnB0C,OAAO,EAAEzC,cAAc;IACvB0C,OAAO,EAAEzC;EACb,CAAC,CAAC;EACF,MAAM,CAAC0C,iBAAiB,EAAEC,oBAAoB,CAAC,GAAG,IAAAL,eAAQ,EAAC;IACvDC,KAAK,EAAEzC,YAAY;IACnB0C,OAAO,EAAEzC,cAAc;IACvB0C,OAAO,EAAEzC;EACb,CAAC,CAAC;EAEF,MAAM4C,gBAAgB,GAAGA,CAAA,KAAM;IAC3BP,mBAAmB,CAAC;MAChBE,KAAK,EAAEG,iBAAiB,CAACH,KAAK;MAC9BC,OAAO,EAAEE,iBAAiB,CAACF,OAAO;MAClCC,OAAO,EAAEC,iBAAiB,CAACD;IAC/B,CAAC,CAAC;IACFhD,YAAY,CAAC,KAAK,CAAC;EACvB,CAAC;EAED,MAAMoD,cAAc,GAAGA,CAAA,KAAM;IAAA,IAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA,EAAAC,qBAAA;IACzB,MAAMC,cAAc,IAAAJ,qBAAA,GAAGZ,cAAc,CAACiB,OAAO,cAAAL,qBAAA,uBAAtBA,qBAAA,CAAwBI,cAAc;IAC7D,MAAME,WAAW,GAAG;MAChBb,KAAK,EAAE,CAAAW,cAAc,aAAdA,cAAc,gBAAAH,qBAAA,GAAdG,cAAc,CAAEX,KAAK,cAAAQ,qBAAA,uBAArBA,qBAAA,CAAuBI,OAAO,KAAIf,gBAAgB,CAACG,KAAK;MAC/DC,OAAO,EACH,CAAAU,cAAc,aAAdA,cAAc,gBAAAF,qBAAA,GAAdE,cAAc,CAAEV,OAAO,cAAAQ,qBAAA,uBAAvBA,qBAAA,CAAyBG,OAAO,KAChCf,gBAAgB,CAACI,OAAO;MAC5BC,OAAO,EACH,CAAAS,cAAc,aAAdA,cAAc,gBAAAD,qBAAA,GAAdC,cAAc,CAAET,OAAO,cAAAQ,qBAAA,uBAAvBA,qBAAA,CAAyBE,OAAO,KAChCf,gBAAgB,CAACK;IACzB,CAAC;IACDE,oBAAoB,CAACS,WAAW,CAAC;IACjC1D,SAAS,CAAC0D,WAAW,CAAC;EAC1B,CAAC;EAED,MAAMC,aAAa,GAAGA,CAAA,KAAM;IACxB5D,YAAY,CAAC,KAAK,CAAC;IACnB4C,mBAAmB,CAACK,iBAAiB,CAAC;IACtC/C,QAAQ,aAARA,QAAQ,eAARA,QAAQ,CAAG,CAAC;EAChB,CAAC;;EAED;EACA,MAAM2D,qBAAqB,GAAG,IAAAC,kBAAW,EACpCC,QAA6D,IAAK;IAC/DnB,mBAAmB,CAACmB,QAAQ,CAAC;IAC7B5D,gBAAgB,aAAhBA,gBAAgB,eAAhBA,gBAAgB,CAAG4D,QAAQ,CAAC;EAChC,CAAC,EACD,CAAC5D,gBAAgB,CACrB,CAAC;EAED,IAAA6D,0BAAmB,EAACzB,GAAG,EAAE;IAAA,IAAA0B,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAAA,OAAO;MAC5BC,KAAK,EAAGC,OAAO,IAAK;QAAA,IAAAC,sBAAA;QAChB,MAAMC,eAAe,GAAG;UACpBzB,KAAK,EAAEzC,YAAY;UACnB0C,OAAO,EAAEzC,cAAc;UACvB0C,OAAO,EAAEzC;QACb,CAAC;QACDqC,mBAAmB,CAAC2B,eAAe,CAAC;QACpCrB,oBAAoB,CAACqB,eAAe,CAAC;QACrC,CAAAD,sBAAA,GAAA7B,cAAc,CAACiB,OAAO,cAAAY,sBAAA,eAAtBA,sBAAA,CAAwBF,KAAK,CAACC,OAAO,CAAC;MAC1C,CAAC;MACDG,QAAQ,EAAEA,CAACC,KAAK,EAAEJ,OAAO,KAAK;QAAA,IAAAK,sBAAA;QAC1B9B,mBAAmB,CAAC6B,KAAK,CAAC;QAC1BvB,oBAAoB,CAACuB,KAAK,CAAC;QAC3B,CAAAC,sBAAA,GAAAjC,cAAc,CAACiB,OAAO,cAAAgB,sBAAA,eAAtBA,sBAAA,CAAwBF,QAAQ,CAACC,KAAK,EAAEJ,OAAO,CAAC;MACpD,CAAC;MACDZ,cAAc,EAAE;QACZX,KAAK,GAAAmB,sBAAA,GAAExB,cAAc,CAACiB,OAAO,cAAAO,sBAAA,gBAAAA,sBAAA,GAAtBA,sBAAA,CAAwBR,cAAc,cAAAQ,sBAAA,uBAAtCA,sBAAA,CAAwCnB,KAAK;QACpDC,OAAO,GAAAmB,sBAAA,GAAEzB,cAAc,CAACiB,OAAO,cAAAQ,sBAAA,gBAAAA,sBAAA,GAAtBA,sBAAA,CAAwBT,cAAc,cAAAS,sBAAA,uBAAtCA,sBAAA,CAAwCnB,OAAO;QACxDC,OAAO,GAAAmB,sBAAA,GAAE1B,cAAc,CAACiB,OAAO,cAAAS,sBAAA,gBAAAA,sBAAA,GAAtBA,sBAAA,CAAwBV,cAAc,cAAAU,sBAAA,uBAAtCA,sBAAA,CAAwCnB;MACrD;IACJ,CAAC;EAAA,CAAC,CAAC;EAEH,oBACI1F,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAC/G,MAAA,CAAAI,OAAK,EAAAoB,QAAA;IACFwF,SAAS,EAAE7E,OAAQ;IACnB8E,cAAc,EACVzE,mBAAmB,GAAG+C,gBAAgB,GAAG2B;EAC5C,GACGnD,UAAU;IACdoD,MAAM,EAAC;EAAoB,iBAC3BzH,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAAuH,IAAI,EAAA5F,QAAA,KAAKwC,cAAc;IAAEqD,KAAK,EAAE5C,MAAM,CAAC6C;EAAU,iBAC9C5H,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAAuH,IAAI,EAAA5F,QAAA,KACGyC,qBAAqB;IACzBoD,KAAK,EAAE5C,MAAM,CAAC8C;EAAiB,IAC9B1D,UAAU,gBACPnE,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAA2H,IAAI,EAAAhG,QAAA,KACG6C,eAAe;IACnBgD,KAAK,EAAE5C,MAAM,CAACZ;EAAW,IACxBA,UACC,CAAC,GACP,IAAI,eACRnE,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAACjH,YAAA,CAAAM,OAAW;IACRuE,GAAG,EAAEE,cAAe;IACpBtC,gBAAgB,EAAE0D,qBAAsB;IACxCxD,YAAY,EAAE4C,iBAAiB,CAACH,KAAM;IACtCxC,cAAc,EAAE2C,iBAAiB,CAACF,OAAQ;IAC1CxC,cAAc,EAAE0C,iBAAiB,CAACD,OAAQ;IAC1CqC,6BAA6B,EAAE,IAAK;IACpC7E,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,WAAW,EAAEA,WAAY;IACzBC,SAAS,EAAEA,SAAU;IACrBC,WAAW,EAAEA,WAAY;IACzBC,WAAW,EAAEA,WAAY;IACzBC,aAAa,EAAEA,aAAc;IAC7BC,qBAAqB,EAAEA,qBAAsB;IAC7CC,eAAe,EAAEA,eAAgB;IACjCC,OAAO,EAAEA,OAAQ;IACjBC,OAAO,EAAEA,OAAQ;IACjBK,cAAc,EAAEA,cAAe;IAC/BI,oBAAoB,EAAEA,oBAAqB;IAC3CI,0BAA0B,EACtBA,0BACH;IACDC,6BAA6B,EACzBA,6BACH;IACDC,gCAAgC,EAC5BA,gCACH;IACDC,MAAM,EAAEC;EAAa,CACxB,CAAC,eACFhF,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAAuH,IAAI,EAAA5F,QAAA,KACG2C,oBAAoB;IACxBkD,KAAK,EAAE5C,MAAM,CAACiD;EAAgB,IAC7B,CAAChE,gBAAgB,gBACdhE,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAA8H,gBAAgB,EAAAnG,QAAA;IACboG,OAAO,EAAE5B;EAAc,GACnB5B,2BAA2B,gBAC/B1E,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAA2H,IAAI;IACDH,KAAK,EAAE,CACH5C,MAAM,CAACoD,MAAM,EACbpD,MAAM,CAACqD,YAAY;EACrB,GACDlE,gBACC,CACQ,CAAC,GACnB,IAAI,eACRlE,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAA8H,gBAAgB,EAAAnG,QAAA;IACboG,OAAO,EAAEpC;EAAe,GACpBpB,2BAA2B,gBAC/B1E,MAAA,CAAAU,OAAA,CAAA2G,aAAA,CAAClH,YAAA,CAAA2H,IAAI;IACDH,KAAK,EAAE,CACH5C,MAAM,CAACoD,MAAM,EACbpD,MAAM,CAACsD,aAAa;EACtB,GACDpE,iBACC,CACQ,CAChB,CACJ,CACJ,CACH,CAAC;AAEhB,CACJ,CAAC;AAAC,IAAAqE,QAAA,GAAAC,OAAA,CAAA7H,OAAA,gBAEa8H,cAAK,CAACC,IAAI,CAAClG,gBAAgB,CAAC"}
|
|
@@ -9,7 +9,9 @@ describe("Modal", () => {
|
|
|
9
9
|
it("renders without crashing", () => {
|
|
10
10
|
const {
|
|
11
11
|
getByTestId
|
|
12
|
-
} = (0, _reactNative2.render)( /*#__PURE__*/_react.default.createElement(_Modal.default,
|
|
12
|
+
} = (0, _reactNative2.render)( /*#__PURE__*/_react.default.createElement(_Modal.default, {
|
|
13
|
+
isVisible: true
|
|
14
|
+
}));
|
|
13
15
|
const component = getByTestId("modal");
|
|
14
16
|
expect(component).toBeDefined();
|
|
15
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","obj","__esModule","default","describe","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","obj","__esModule","default","describe","it","getByTestId","render","createElement","isVisible","component","expect","toBeDefined","getByText","Text","content","onOverlayPressMock","jest","fn","onOverlayPress","overlay","fireEvent","press","toHaveBeenCalled"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from \"react-native\";\nimport { render, fireEvent } from \"@testing-library/react-native\";\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal isVisible/>);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(\n <Modal isVisible onOverlayPress={onOverlayPressMock} />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n // Add more test cases to cover different interactions, scenarios, and edge cases\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExCG,QAAQ,CAAC,OAAO,EAAE,MAAM;EACpBC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAACZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;IAAA,CAAC,CAAC,CAAC;IAClD,MAAMC,SAAS,GAAGJ,WAAW,CAAC,OAAO,CAAC;IACtCK,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFP,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEQ;IAAU,CAAC,GAAG,IAAAN,oBAAM,gBACxBZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;IAAA,gBACZd,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACV,YAAA,CAAAgB,IAAI,QAAE,eAAsB,CAC1B,CACX,CAAC;IACD,MAAMC,OAAO,GAAGF,SAAS,CAAC,eAAe,CAAC;IAC1CF,MAAM,CAACI,OAAO,CAAC,CAACH,WAAW,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFP,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAMW,kBAAkB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpC,MAAM;MAAEZ;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAC1BZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;MAACU,cAAc,EAAEH;IAAmB,CAAE,CAC1D,CAAC;IACD,MAAMI,OAAO,GAAGd,WAAW,CAAC,gBAAgB,CAAC;IAC7Ce,uBAAS,CAACC,KAAK,CAACF,OAAO,CAAC;IACxBT,MAAM,CAACK,kBAAkB,CAAC,CAACO,gBAAgB,CAAC,CAAC;EACjD,CAAC,CAAC;;EAEF;AACJ,CAAC,CAAC"}
|