react-native-timer-picker 2.5.0 → 2.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (122) hide show
  1. package/README.md +22 -13
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +39 -18
  3. package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -1
  4. package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
  5. package/dist/commonjs/components/Modal/Modal.js +10 -10
  6. package/dist/commonjs/components/Modal/Modal.js.map +1 -1
  7. package/dist/commonjs/components/Modal/styles.js +5 -5
  8. package/dist/commonjs/components/Modal/styles.js.map +1 -1
  9. package/dist/commonjs/components/Modal/types.js.map +1 -1
  10. package/dist/commonjs/components/PickerItem/PickerItem.js +2 -1
  11. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -1
  12. package/dist/commonjs/components/TimerPicker/TimerPicker.js +47 -21
  13. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
  14. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  15. package/dist/commonjs/components/TimerPicker/styles.js +79 -69
  16. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  17. package/dist/commonjs/components/TimerPicker/types.js.map +1 -1
  18. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js +34 -14
  19. package/dist/commonjs/components/TimerPickerModal/TimerPickerModal.js.map +1 -1
  20. package/dist/commonjs/components/TimerPickerModal/styles.js +34 -28
  21. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  22. package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -1
  23. package/dist/commonjs/index.js +3 -39
  24. package/dist/commonjs/index.js.map +1 -1
  25. package/dist/commonjs/tests/DurationScroll.test.js +8 -8
  26. package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
  27. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  28. package/dist/commonjs/tests/TimerPicker.test.js +1 -9
  29. package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
  30. package/dist/commonjs/tests/TimerPickerModal.test.js +3 -3
  31. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  32. package/dist/commonjs/tests/colorToRgba.test.js.map +1 -1
  33. package/dist/commonjs/tests/generateNumbers.test.js +63 -63
  34. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
  35. package/dist/commonjs/tests/getAdjustedLimit.test.js +38 -38
  36. package/dist/commonjs/tests/getAdjustedLimit.test.js.map +1 -1
  37. package/dist/commonjs/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -1
  38. package/dist/commonjs/tests/getInitialScrollIndex.test.js.map +1 -1
  39. package/dist/commonjs/tests/getSafeInitialValue.test.js +2 -0
  40. package/dist/commonjs/tests/getSafeInitialValue.test.js.map +1 -1
  41. package/dist/commonjs/tests/padNumber.test.js.map +1 -1
  42. package/dist/commonjs/utils/colorToRgba.js +4 -4
  43. package/dist/commonjs/utils/colorToRgba.js.map +1 -1
  44. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  45. package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
  46. package/dist/commonjs/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  47. package/dist/commonjs/utils/getInitialScrollIndex.js +4 -4
  48. package/dist/commonjs/utils/getInitialScrollIndex.js.map +1 -1
  49. package/dist/commonjs/utils/getSafeInitialValue.js +5 -5
  50. package/dist/commonjs/utils/getSafeInitialValue.js.map +1 -1
  51. package/dist/commonjs/utils/padNumber.js.map +1 -1
  52. package/dist/module/components/DurationScroll/DurationScroll.js +39 -18
  53. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
  54. package/dist/module/components/DurationScroll/types.js.map +1 -1
  55. package/dist/module/components/Modal/Modal.js +10 -10
  56. package/dist/module/components/Modal/Modal.js.map +1 -1
  57. package/dist/module/components/Modal/styles.js +5 -5
  58. package/dist/module/components/Modal/styles.js.map +1 -1
  59. package/dist/module/components/Modal/types.js.map +1 -1
  60. package/dist/module/components/PickerItem/PickerItem.js +2 -1
  61. package/dist/module/components/PickerItem/PickerItem.js.map +1 -1
  62. package/dist/module/components/TimerPicker/TimerPicker.js +47 -21
  63. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
  64. package/dist/module/components/TimerPicker/index.js.map +1 -1
  65. package/dist/module/components/TimerPicker/styles.js +79 -69
  66. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  67. package/dist/module/components/TimerPicker/types.js.map +1 -1
  68. package/dist/module/components/TimerPickerModal/TimerPickerModal.js +35 -15
  69. package/dist/module/components/TimerPickerModal/TimerPickerModal.js.map +1 -1
  70. package/dist/module/components/TimerPickerModal/styles.js +33 -27
  71. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  72. package/dist/module/components/TimerPickerModal/types.js.map +1 -1
  73. package/dist/module/index.js +2 -2
  74. package/dist/module/index.js.map +1 -1
  75. package/dist/module/tests/DurationScroll.test.js +8 -8
  76. package/dist/module/tests/DurationScroll.test.js.map +1 -1
  77. package/dist/module/tests/Modal.test.js.map +1 -1
  78. package/dist/module/tests/TimerPicker.test.js +1 -8
  79. package/dist/module/tests/TimerPicker.test.js.map +1 -1
  80. package/dist/module/tests/TimerPickerModal.test.js +3 -3
  81. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  82. package/dist/module/tests/colorToRgba.test.js.map +1 -1
  83. package/dist/module/tests/generateNumbers.test.js +63 -63
  84. package/dist/module/tests/generateNumbers.test.js.map +1 -1
  85. package/dist/module/tests/getAdjustedLimit.test.js +38 -38
  86. package/dist/module/tests/getAdjustedLimit.test.js.map +1 -1
  87. package/dist/module/tests/getDurationAndIndexFromScrollOffset.test.js.map +1 -1
  88. package/dist/module/tests/getInitialScrollIndex.test.js.map +1 -1
  89. package/dist/module/tests/getSafeInitialValue.test.js +1 -0
  90. package/dist/module/tests/getSafeInitialValue.test.js.map +1 -1
  91. package/dist/module/tests/padNumber.test.js.map +1 -1
  92. package/dist/module/utils/colorToRgba.js +4 -4
  93. package/dist/module/utils/colorToRgba.js.map +1 -1
  94. package/dist/module/utils/generateNumbers.js.map +1 -1
  95. package/dist/module/utils/getAdjustedLimit.js.map +1 -1
  96. package/dist/module/utils/getDurationAndIndexFromScrollOffset.js.map +1 -1
  97. package/dist/module/utils/getInitialScrollIndex.js +4 -4
  98. package/dist/module/utils/getInitialScrollIndex.js.map +1 -1
  99. package/dist/module/utils/getSafeInitialValue.js +5 -5
  100. package/dist/module/utils/getSafeInitialValue.js.map +1 -1
  101. package/dist/module/utils/padNumber.js.map +1 -1
  102. package/dist/typescript/components/DurationScroll/types.d.ts +9 -6
  103. package/dist/typescript/components/Modal/styles.d.ts +5 -5
  104. package/dist/typescript/components/Modal/types.d.ts +2 -1
  105. package/dist/typescript/components/PickerItem/PickerItem.d.ts +4 -0
  106. package/dist/typescript/components/TimerPicker/styles.d.ts +230 -225
  107. package/dist/typescript/components/TimerPicker/types.d.ts +9 -8
  108. package/dist/typescript/components/TimerPickerModal/styles.d.ts +158 -154
  109. package/dist/typescript/components/TimerPickerModal/types.d.ts +2 -1
  110. package/dist/typescript/index.d.ts +4 -2
  111. package/dist/typescript/tests/DurationScroll.test.d.ts +1 -0
  112. package/dist/typescript/tests/Modal.test.d.ts +1 -0
  113. package/dist/typescript/tests/TimerPicker.test.d.ts +1 -0
  114. package/dist/typescript/tests/TimerPickerModal.test.d.ts +1 -0
  115. package/dist/typescript/tests/colorToRgba.test.d.ts +1 -0
  116. package/dist/typescript/tests/generateNumbers.test.d.ts +1 -0
  117. package/dist/typescript/tests/getAdjustedLimit.test.d.ts +1 -0
  118. package/dist/typescript/tests/getDurationAndIndexFromScrollOffset.test.d.ts +1 -0
  119. package/dist/typescript/tests/getInitialScrollIndex.test.d.ts +1 -0
  120. package/dist/typescript/tests/getSafeInitialValue.test.d.ts +1 -0
  121. package/dist/typescript/tests/padNumber.test.d.ts +1 -0
  122. package/package.json +144 -126
@@ -4,7 +4,16 @@ import { View, Text, TouchableOpacity } from "react-native";
4
4
  import { getSafeInitialValue } from "../../utils/getSafeInitialValue";
5
5
  import Modal from "../Modal";
6
6
  import TimerPicker from "../TimerPicker";
7
- import { generateStyles } from "./styles";
7
+ import { DEFAULT_COLUMN_WIDTH, generateStyles } from "./styles";
8
+ const resolveColumnWidth = (pickerColumnWidth, column) => {
9
+ if (pickerColumnWidth == null) {
10
+ return DEFAULT_COLUMN_WIDTH;
11
+ }
12
+ if (typeof pickerColumnWidth === "number") {
13
+ return pickerColumnWidth;
14
+ }
15
+ return pickerColumnWidth[column] ?? DEFAULT_COLUMN_WIDTH;
16
+ };
8
17
  const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
9
18
  const {
10
19
  buttonContainerProps,
@@ -15,6 +24,10 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
15
24
  containerProps,
16
25
  contentContainerProps,
17
26
  hideCancelButton = false,
27
+ hideDays = true,
28
+ hideHours = false,
29
+ hideMinutes = false,
30
+ hideSeconds = false,
18
31
  initialValue,
19
32
  modalProps,
20
33
  modalTitle,
@@ -27,8 +40,11 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
27
40
  visible,
28
41
  ...otherProps
29
42
  } = props;
43
+ const pickerColumnWidth = customStyles === null || customStyles === void 0 ? void 0 : customStyles.pickerColumnWidth;
44
+ const totalColumnWidth = (!hideDays ? resolveColumnWidth(pickerColumnWidth, "days") : 0) + (!hideHours ? resolveColumnWidth(pickerColumnWidth, "hours") : 0) + (!hideMinutes ? resolveColumnWidth(pickerColumnWidth, "minutes") : 0) + (!hideSeconds ? resolveColumnWidth(pickerColumnWidth, "seconds") : 0);
30
45
  const styles = generateStyles(customStyles, {
31
- hasModalTitle: Boolean(modalTitle)
46
+ hasModalTitle: Boolean(modalTitle),
47
+ totalColumnWidth
32
48
  });
33
49
  const timerPickerRef = useRef(null);
34
50
  const safeInitialValue = getSafeInitialValue({
@@ -84,11 +100,17 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
84
100
  onDurationChange === null || onDurationChange === void 0 || onDurationChange(duration);
85
101
  }, [onDurationChange]);
86
102
  useImperativeHandle(ref, () => {
87
- var _timerPickerRef$curre4, _timerPickerRef$curre5, _timerPickerRef$curre6, _timerPickerRef$curre7;
103
+ var _timerPickerRef$curre3, _timerPickerRef$curre4, _timerPickerRef$curre5, _timerPickerRef$curre6;
88
104
  return {
105
+ latestDuration: {
106
+ days: (_timerPickerRef$curre3 = timerPickerRef.current) === null || _timerPickerRef$curre3 === void 0 || (_timerPickerRef$curre3 = _timerPickerRef$curre3.latestDuration) === null || _timerPickerRef$curre3 === void 0 ? void 0 : _timerPickerRef$curre3.days,
107
+ 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,
108
+ 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,
109
+ 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
110
+ },
89
111
  reset,
90
112
  setValue: (value, options) => {
91
- var _timerPickerRef$curre3;
113
+ var _timerPickerRef$curre7;
92
114
  setSelectedDuration(prev => ({
93
115
  ...prev,
94
116
  ...value
@@ -97,13 +119,7 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
97
119
  ...prev,
98
120
  ...value
99
121
  }));
100
- (_timerPickerRef$curre3 = timerPickerRef.current) === null || _timerPickerRef$curre3 === void 0 || _timerPickerRef$curre3.setValue(value, options);
101
- },
102
- latestDuration: {
103
- days: (_timerPickerRef$curre4 = timerPickerRef.current) === null || _timerPickerRef$curre4 === void 0 || (_timerPickerRef$curre4 = _timerPickerRef$curre4.latestDuration) === null || _timerPickerRef$curre4 === void 0 ? void 0 : _timerPickerRef$curre4.days,
104
- hours: (_timerPickerRef$curre5 = timerPickerRef.current) === null || _timerPickerRef$curre5 === void 0 || (_timerPickerRef$curre5 = _timerPickerRef$curre5.latestDuration) === null || _timerPickerRef$curre5 === void 0 ? void 0 : _timerPickerRef$curre5.hours,
105
- minutes: (_timerPickerRef$curre6 = timerPickerRef.current) === null || _timerPickerRef$curre6 === void 0 || (_timerPickerRef$curre6 = _timerPickerRef$curre6.latestDuration) === null || _timerPickerRef$curre6 === void 0 ? void 0 : _timerPickerRef$curre6.minutes,
106
- seconds: (_timerPickerRef$curre7 = timerPickerRef.current) === null || _timerPickerRef$curre7 === void 0 || (_timerPickerRef$curre7 = _timerPickerRef$curre7.latestDuration) === null || _timerPickerRef$curre7 === void 0 ? void 0 : _timerPickerRef$curre7.seconds
122
+ (_timerPickerRef$curre7 = timerPickerRef.current) === null || _timerPickerRef$curre7 === void 0 || _timerPickerRef$curre7.setValue(value, options);
107
123
  }
108
124
  };
109
125
  });
@@ -120,6 +136,10 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
120
136
  style: styles.modalTitle
121
137
  }), modalTitle) : null, /*#__PURE__*/React.createElement(TimerPicker, _extends({
122
138
  ref: timerPickerRef,
139
+ hideDays: hideDays,
140
+ hideHours: hideHours,
141
+ hideMinutes: hideMinutes,
142
+ hideSeconds: hideSeconds,
123
143
  initialValue: confirmedDuration
124
144
  }, otherProps, {
125
145
  aggressivelyGetLatestDuration: true,
@@ -127,15 +147,15 @@ const TimerPickerModal = /*#__PURE__*/forwardRef((props, ref) => {
127
147
  styles: styles.timerPickerStyles
128
148
  })), /*#__PURE__*/React.createElement(View, _extends({}, buttonContainerProps, {
129
149
  style: styles.buttonContainer
130
- }), !hideCancelButton ? /*#__PURE__*/React.isValidElement(props.cancelButton) ? /*#__PURE__*/React.cloneElement(props.cancelButton, {
150
+ }), !hideCancelButton ? /*#__PURE__*/React.isValidElement(props.cancelButton) ? (/*#__PURE__*/React.cloneElement(props.cancelButton, {
131
151
  onPress: cancelHandler
132
- }) : /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, buttonTouchableOpacityProps, {
152
+ })) : /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, buttonTouchableOpacityProps, {
133
153
  onPress: cancelHandler
134
154
  }), /*#__PURE__*/React.createElement(Text, {
135
155
  style: [styles.button, styles.cancelButton]
136
- }, cancelButtonText)) : null, /*#__PURE__*/React.isValidElement(props.confirmButton) ? /*#__PURE__*/React.cloneElement(props.confirmButton, {
156
+ }, cancelButtonText)) : null, /*#__PURE__*/React.isValidElement(props.confirmButton) ? (/*#__PURE__*/React.cloneElement(props.confirmButton, {
137
157
  onPress: confirmHandler
138
- }) : /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, buttonTouchableOpacityProps, {
158
+ })) : /*#__PURE__*/React.createElement(TouchableOpacity, _extends({}, buttonTouchableOpacityProps, {
139
159
  onPress: confirmHandler
140
160
  }), /*#__PURE__*/React.createElement(Text, {
141
161
  style: [styles.button, styles.confirmButton]
@@ -1 +1 @@
1
- {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","View","Text","TouchableOpacity","getSafeInitialValue","Modal","TimerPicker","generateStyles","TimerPickerModal","props","ref","buttonContainerProps","buttonTouchableOpacityProps","cancelButtonText","closeOnOverlayPress","confirmButtonText","containerProps","contentContainerProps","hideCancelButton","initialValue","modalProps","modalTitle","modalTitleProps","onCancel","onConfirm","onDurationChange","setIsVisible","styles","customStyles","visible","otherProps","hasModalTitle","Boolean","timerPickerRef","safeInitialValue","days","hours","minutes","seconds","selectedDuration","setSelectedDuration","confirmedDuration","setConfirmedDuration","reset","options","_timerPickerRef$curre","current","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$days","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","duration","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","_timerPickerRef$curre7","setValue","value","_timerPickerRef$curre3","prev","createElement","_extends","isVisible","onOverlayPress","undefined","testID","style","container","contentContainer","aggressivelyGetLatestDuration","timerPickerStyles","buttonContainer","isValidElement","cancelButton","cloneElement","onPress","button","confirmButton","memo"],"sources":["TimerPickerModal.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\n\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport Modal from \"../Modal\";\nimport TimerPicker from \"../TimerPicker\";\nimport type { TimerPickerRef } from \"../TimerPicker\";\n\nimport { generateStyles } from \"./styles\";\nimport type { TimerPickerModalRef, TimerPickerModalProps } from \"./types\";\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (props, ref) => {\n const {\n buttonContainerProps,\n buttonTouchableOpacityProps,\n cancelButtonText = \"Cancel\",\n closeOnOverlayPress,\n confirmButtonText = \"Confirm\",\n containerProps,\n contentContainerProps,\n hideCancelButton = false,\n initialValue,\n modalProps,\n modalTitle,\n modalTitleProps,\n onCancel,\n onConfirm,\n onDurationChange,\n setIsVisible,\n styles: customStyles,\n visible,\n ...otherProps\n } = props;\n\n const styles = generateStyles(customStyles, {\n hasModalTitle: Boolean(modalTitle),\n });\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const safeInitialValue = getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n });\n\n const [selectedDuration, setSelectedDuration] =\n useState(safeInitialValue);\n const [confirmedDuration, setConfirmedDuration] =\n useState(safeInitialValue);\n\n const reset = (options?: { animated?: boolean }) => {\n setSelectedDuration(safeInitialValue);\n setConfirmedDuration(safeInitialValue);\n timerPickerRef.current?.reset(options);\n };\n\n // reset state if the initial value changes\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n safeInitialValue.days,\n safeInitialValue.hours,\n safeInitialValue.minutes,\n safeInitialValue.seconds,\n ]);\n\n const hideModalHandler = () => {\n setSelectedDuration({\n days: confirmedDuration.days,\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\n const newDuration = {\n days: latestDuration?.days?.current ?? selectedDuration.days,\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: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset,\n setValue: (value, options) => {\n setSelectedDuration((prev) => ({\n ...prev,\n ...value,\n }));\n setConfirmedDuration((prev) => ({\n ...prev,\n ...value,\n }));\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n days: timerPickerRef.current?.latestDuration?.days,\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 initialValue={confirmedDuration}\n {...otherProps}\n aggressivelyGetLatestDuration\n onDurationChange={durationChangeHandler}\n styles={styles.timerPickerStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton\n ? (\n React.isValidElement(props.cancelButton)\n ? React.cloneElement(\n props.cancelButton,\n {\n onPress: cancelHandler,\n }\n )\n : (\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={cancelHandler}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n )\n )\n : null}\n {React.isValidElement(props.confirmButton)\n ? React.cloneElement(props.confirmButton, {\n onPress: confirmHandler,\n })\n : (\n <TouchableOpacity\n {...buttonTouchableOpacityProps}\n onPress={confirmHandler}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","View","Text","TouchableOpacity","getSafeInitialValue","Modal","TimerPicker","DEFAULT_COLUMN_WIDTH","generateStyles","resolveColumnWidth","pickerColumnWidth","column","TimerPickerModal","props","ref","buttonContainerProps","buttonTouchableOpacityProps","cancelButtonText","closeOnOverlayPress","confirmButtonText","containerProps","contentContainerProps","hideCancelButton","hideDays","hideHours","hideMinutes","hideSeconds","initialValue","modalProps","modalTitle","modalTitleProps","onCancel","onConfirm","onDurationChange","setIsVisible","styles","customStyles","visible","otherProps","totalColumnWidth","hasModalTitle","Boolean","timerPickerRef","safeInitialValue","days","hours","minutes","seconds","selectedDuration","setSelectedDuration","confirmedDuration","setConfirmedDuration","reset","options","_timerPickerRef$curre","current","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$days","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","duration","_timerPickerRef$curre3","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","setValue","value","_timerPickerRef$curre7","prev","createElement","_extends","isVisible","onOverlayPress","undefined","testID","style","container","contentContainer","aggressivelyGetLatestDuration","timerPickerStyles","buttonContainer","isValidElement","cancelButton","cloneElement","onPress","button","confirmButton","memo"],"sources":["TimerPickerModal.tsx"],"sourcesContent":["import React, {\n forwardRef,\n useCallback,\n useEffect,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\n\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport { getSafeInitialValue } from \"../../utils/getSafeInitialValue\";\nimport Modal from \"../Modal\";\nimport TimerPicker from \"../TimerPicker\";\nimport type { TimerPickerRef } from \"../TimerPicker\";\nimport type { PerColumnValue, PickerColumn } from \"../TimerPicker/styles\";\nimport { DEFAULT_COLUMN_WIDTH, generateStyles } from \"./styles\";\nimport type { TimerPickerModalRef, TimerPickerModalProps } from \"./types\";\n\nconst resolveColumnWidth = (\n pickerColumnWidth: PerColumnValue | undefined,\n column: PickerColumn\n): number => {\n if (pickerColumnWidth == null) {\n return DEFAULT_COLUMN_WIDTH;\n }\n\n if (typeof pickerColumnWidth === \"number\") {\n return pickerColumnWidth;\n }\n\n return pickerColumnWidth[column] ?? DEFAULT_COLUMN_WIDTH;\n};\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>((props, ref) => {\n const {\n buttonContainerProps,\n buttonTouchableOpacityProps,\n cancelButtonText = \"Cancel\",\n closeOnOverlayPress,\n confirmButtonText = \"Confirm\",\n containerProps,\n contentContainerProps,\n hideCancelButton = false,\n hideDays = true,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n initialValue,\n modalProps,\n modalTitle,\n modalTitleProps,\n onCancel,\n onConfirm,\n onDurationChange,\n setIsVisible,\n styles: customStyles,\n visible,\n ...otherProps\n } = props;\n\n const pickerColumnWidth = customStyles?.pickerColumnWidth;\n\n const totalColumnWidth =\n (!hideDays ? resolveColumnWidth(pickerColumnWidth, \"days\") : 0) +\n (!hideHours ? resolveColumnWidth(pickerColumnWidth, \"hours\") : 0) +\n (!hideMinutes ? resolveColumnWidth(pickerColumnWidth, \"minutes\") : 0) +\n (!hideSeconds ? resolveColumnWidth(pickerColumnWidth, \"seconds\") : 0);\n\n const styles = generateStyles(customStyles, {\n hasModalTitle: Boolean(modalTitle),\n totalColumnWidth,\n });\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const safeInitialValue = getSafeInitialValue({\n days: initialValue?.days,\n hours: initialValue?.hours,\n minutes: initialValue?.minutes,\n seconds: initialValue?.seconds,\n });\n\n const [selectedDuration, setSelectedDuration] = useState(safeInitialValue);\n const [confirmedDuration, setConfirmedDuration] = useState(safeInitialValue);\n\n const reset = (options?: { animated?: boolean }) => {\n setSelectedDuration(safeInitialValue);\n setConfirmedDuration(safeInitialValue);\n timerPickerRef.current?.reset(options);\n };\n\n // reset state if the initial value changes\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n safeInitialValue.days,\n safeInitialValue.hours,\n safeInitialValue.minutes,\n safeInitialValue.seconds,\n ]);\n\n const hideModalHandler = () => {\n setSelectedDuration({\n days: confirmedDuration.days,\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\n const newDuration = {\n days: latestDuration?.days?.current ?? selectedDuration.days,\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes: latestDuration?.minutes?.current ?? selectedDuration.minutes,\n seconds: latestDuration?.seconds?.current ?? 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: { days: number; hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n latestDuration: {\n days: timerPickerRef.current?.latestDuration?.days,\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n reset,\n setValue: (value, options) => {\n setSelectedDuration((prev) => ({\n ...prev,\n ...value,\n }));\n setConfirmedDuration((prev) => ({\n ...prev,\n ...value,\n }));\n timerPickerRef.current?.setValue(value, options);\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={closeOnOverlayPress ? hideModalHandler : undefined}\n {...modalProps}\n testID=\"timer-picker-modal\"\n >\n <View {...containerProps} style={styles.container}>\n <View {...contentContainerProps} style={styles.contentContainer}>\n {modalTitle ? (\n <Text {...modalTitleProps} style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n hideDays={hideDays}\n hideHours={hideHours}\n hideMinutes={hideMinutes}\n hideSeconds={hideSeconds}\n initialValue={confirmedDuration}\n {...otherProps}\n aggressivelyGetLatestDuration\n onDurationChange={durationChangeHandler}\n styles={styles.timerPickerStyles}\n />\n <View {...buttonContainerProps} style={styles.buttonContainer}>\n {!hideCancelButton ? (\n React.isValidElement(props.cancelButton) ? (\n React.cloneElement(props.cancelButton, {\n onPress: cancelHandler,\n })\n ) : (\n <TouchableOpacity {...buttonTouchableOpacityProps} onPress={cancelHandler}>\n <Text style={[styles.button, styles.cancelButton]}>{cancelButtonText}</Text>\n </TouchableOpacity>\n )\n ) : null}\n {React.isValidElement(props.confirmButton) ? (\n React.cloneElement(props.confirmButton, {\n onPress: confirmHandler,\n })\n ) : (\n <TouchableOpacity {...buttonTouchableOpacityProps} onPress={confirmHandler}>\n <Text style={[styles.button, styles.confirmButton]}>{confirmButtonText}</Text>\n </TouchableOpacity>\n )}\n </View>\n </View>\n </View>\n </Modal>\n );\n});\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
1
  import { StyleSheet } from "react-native";
2
+ export const DEFAULT_COLUMN_WIDTH = 70;
2
3
  const DARK_MODE_BACKGROUND_COLOR = "#232323";
3
4
  const DARK_MODE_TEXT_COLOR = "#E9E9E9";
4
5
  const LIGHT_MODE_BACKGROUND_COLOR = "#F1F1F1";
@@ -14,58 +15,63 @@ export const generateStyles = (customStyles, variables) => {
14
15
  modalTitle: customModalTitleStyle,
15
16
  ...customTimerPickerStyles
16
17
  } = customStyles ?? {};
18
+ const totalColumnWidth = variables.totalColumnWidth;
19
+ const modalPadding = (customContentContainerStyle === null || customContentContainerStyle === void 0 ? void 0 : customContentContainerStyle.paddingHorizontal) ?? 20;
20
+ const labelOverhang = 20;
21
+ const computedWidth = Math.max(DEFAULT_COLUMN_WIDTH * 2, totalColumnWidth + modalPadding * 2 + labelOverhang);
17
22
  return StyleSheet.create({
18
- container: {
19
- justifyContent: "center",
20
- overflow: "hidden",
21
- ...customContainerStyle
22
- },
23
- contentContainer: {
24
- backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.backgroundColor) ?? ((customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_BACKGROUND_COLOR : LIGHT_MODE_BACKGROUND_COLOR),
25
- justifyContent: "center",
26
- alignItems: "center",
27
- borderRadius: 20,
23
+ button: {
24
+ borderRadius: 10,
25
+ borderWidth: 1,
26
+ fontSize: 16,
27
+ marginHorizontal: 12,
28
28
  overflow: "hidden",
29
29
  paddingHorizontal: 20,
30
- ...customContentContainerStyle
30
+ paddingVertical: 10,
31
+ ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
32
+ ...customButtonStyle
31
33
  },
32
34
  buttonContainer: {
33
35
  flexDirection: "row",
34
- marginTop: 25,
35
36
  marginBottom: 20,
37
+ marginTop: 25,
36
38
  ...customButtonContainerStyle
37
39
  },
38
- button: {
39
- marginHorizontal: 12,
40
- paddingVertical: 10,
41
- paddingHorizontal: 20,
42
- borderWidth: 1,
43
- borderRadius: 10,
44
- fontSize: 16,
45
- overflow: "hidden",
46
- ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
47
- ...customButtonStyle
48
- },
49
40
  cancelButton: {
41
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "gray" : undefined,
50
42
  borderColor: "gray",
51
43
  color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "gray",
52
- backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "gray" : undefined,
53
44
  ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
54
45
  ...customCancelButtonStyle
55
46
  },
56
47
  confirmButton: {
48
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "green" : undefined,
57
49
  borderColor: "green",
58
50
  color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : "green",
59
- backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? "green" : undefined,
60
51
  ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
61
52
  ...customConfirmButtonStyle
62
53
  },
54
+ container: {
55
+ justifyContent: "center",
56
+ overflow: "hidden",
57
+ ...customContainerStyle
58
+ },
59
+ contentContainer: {
60
+ alignItems: "center",
61
+ backgroundColor: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.backgroundColor) ?? ((customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_BACKGROUND_COLOR : LIGHT_MODE_BACKGROUND_COLOR),
62
+ borderRadius: 20,
63
+ justifyContent: "center",
64
+ overflow: "hidden",
65
+ paddingHorizontal: 20,
66
+ width: computedWidth,
67
+ ...customContentContainerStyle
68
+ },
63
69
  modalTitle: {
70
+ color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
64
71
  fontSize: 24,
65
72
  fontWeight: "600",
66
- marginTop: 20,
67
73
  marginBottom: 15,
68
- color: (customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.theme) === "dark" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,
74
+ marginTop: 20,
69
75
  ...(customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.text),
70
76
  ...customModalTitleStyle
71
77
  },
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","variables","button","customButtonStyle","buttonContainer","customButtonContainerStyle","cancelButton","customCancelButtonStyle","confirmButton","customConfirmButtonStyle","container","customContainerStyle","contentContainer","customContentContainerStyle","modalTitle","customModalTitleStyle","customTimerPickerStyles","create","justifyContent","overflow","backgroundColor","theme","alignItems","borderRadius","paddingHorizontal","flexDirection","marginTop","marginBottom","marginHorizontal","paddingVertical","borderWidth","fontSize","text","borderColor","color","undefined","fontWeight","timerPickerStyles","pickerContainer","marginRight","paddingTop","hasModalTitle"],"sources":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { DimensionValue, TextStyle, ViewStyle } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"../TimerPicker/styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n button?: TextStyle;\n buttonContainer?: ViewStyle;\n cancelButton?: TextStyle;\n confirmButton?: TextStyle;\n container?: ViewStyle;\n contentContainer?: ViewStyle;\n modalTitle?: TextStyle;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerModalStyles | undefined,\n variables?: {\n hasModalTitle: boolean;\n }\n) => {\n const {\n button: customButtonStyle,\n buttonContainer: customButtonContainerStyle,\n cancelButton: customCancelButtonStyle,\n confirmButton: customConfirmButtonStyle,\n container: customContainerStyle,\n contentContainer: customContentContainerStyle,\n modalTitle: customModalTitleStyle,\n ...customTimerPickerStyles\n } = customStyles ?? {};\n\n return StyleSheet.create({\n container: {\n justifyContent: \"center\",\n overflow: \"hidden\",\n ...customContainerStyle,\n },\n contentContainer: {\n backgroundColor:\n customTimerPickerStyles?.backgroundColor ??\n (customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n overflow: \"hidden\",\n paddingHorizontal: 20,\n ...customContentContainerStyle,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n marginBottom: 20,\n ...customButtonContainerStyle,\n },\n button: {\n marginHorizontal: 12,\n paddingVertical: 10,\n paddingHorizontal: 20,\n borderWidth: 1,\n borderRadius: 10,\n fontSize: 16,\n overflow: \"hidden\",\n ...customTimerPickerStyles?.text,\n ...customButtonStyle,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : \"gray\",\n backgroundColor:\n customTimerPickerStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customTimerPickerStyles?.text,\n ...customCancelButtonStyle,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : \"green\",\n backgroundColor:\n customTimerPickerStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customTimerPickerStyles?.text,\n ...customConfirmButtonStyle,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"600\",\n marginTop: 20,\n marginBottom: 15,\n color:\n customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customTimerPickerStyles?.text,\n ...customModalTitleStyle,\n },\n timerPickerStyles: {\n ...customTimerPickerStyles,\n pickerContainer: {\n marginRight: \"8%\" as DimensionValue,\n paddingTop: !variables?.hasModalTitle ? 20 : 0,\n ...(customTimerPickerStyles?.pickerContainer ?? {}),\n },\n },\n });\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","DEFAULT_COLUMN_WIDTH","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","variables","button","customButtonStyle","buttonContainer","customButtonContainerStyle","cancelButton","customCancelButtonStyle","confirmButton","customConfirmButtonStyle","container","customContainerStyle","contentContainer","customContentContainerStyle","modalTitle","customModalTitleStyle","customTimerPickerStyles","totalColumnWidth","modalPadding","paddingHorizontal","labelOverhang","computedWidth","Math","max","create","borderRadius","borderWidth","fontSize","marginHorizontal","overflow","paddingVertical","text","flexDirection","marginBottom","marginTop","backgroundColor","theme","undefined","borderColor","color","justifyContent","alignItems","width","fontWeight","timerPickerStyles","pickerContainer","marginRight","paddingTop","hasModalTitle"],"sources":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { DimensionValue, TextStyle, ViewStyle } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"../TimerPicker/styles\";\n\nexport const DEFAULT_COLUMN_WIDTH = 70;\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n button?: TextStyle;\n buttonContainer?: ViewStyle;\n cancelButton?: TextStyle;\n confirmButton?: TextStyle;\n container?: ViewStyle;\n contentContainer?: ViewStyle;\n modalTitle?: TextStyle;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerModalStyles | undefined,\n variables: {\n hasModalTitle: boolean;\n totalColumnWidth: number;\n }\n) => {\n const {\n button: customButtonStyle,\n buttonContainer: customButtonContainerStyle,\n cancelButton: customCancelButtonStyle,\n confirmButton: customConfirmButtonStyle,\n container: customContainerStyle,\n contentContainer: customContentContainerStyle,\n modalTitle: customModalTitleStyle,\n ...customTimerPickerStyles\n } = customStyles ?? {};\n\n const totalColumnWidth = variables.totalColumnWidth;\n const modalPadding = (customContentContainerStyle?.paddingHorizontal as number) ?? 20;\n const labelOverhang = 20;\n const computedWidth = Math.max(\n DEFAULT_COLUMN_WIDTH * 2,\n totalColumnWidth + modalPadding * 2 + labelOverhang\n );\n\n return StyleSheet.create({\n button: {\n borderRadius: 10,\n borderWidth: 1,\n fontSize: 16,\n marginHorizontal: 12,\n overflow: \"hidden\",\n paddingHorizontal: 20,\n paddingVertical: 10,\n ...customTimerPickerStyles?.text,\n ...customButtonStyle,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginBottom: 20,\n marginTop: 25,\n ...customButtonContainerStyle,\n },\n cancelButton: {\n backgroundColor: customTimerPickerStyles?.theme === \"dark\" ? \"gray\" : undefined,\n borderColor: \"gray\",\n color: customTimerPickerStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"gray\",\n ...customTimerPickerStyles?.text,\n ...customCancelButtonStyle,\n },\n confirmButton: {\n backgroundColor: customTimerPickerStyles?.theme === \"dark\" ? \"green\" : undefined,\n borderColor: \"green\",\n color: customTimerPickerStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"green\",\n ...customTimerPickerStyles?.text,\n ...customConfirmButtonStyle,\n },\n container: {\n justifyContent: \"center\",\n overflow: \"hidden\",\n ...customContainerStyle,\n },\n contentContainer: {\n alignItems: \"center\",\n backgroundColor:\n customTimerPickerStyles?.backgroundColor ??\n (customTimerPickerStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n borderRadius: 20,\n justifyContent: \"center\",\n overflow: \"hidden\",\n paddingHorizontal: 20,\n width: computedWidth,\n ...customContentContainerStyle,\n },\n modalTitle: {\n color:\n customTimerPickerStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : LIGHT_MODE_TEXT_COLOR,\n fontSize: 24,\n fontWeight: \"600\",\n marginBottom: 15,\n marginTop: 20,\n ...customTimerPickerStyles?.text,\n ...customModalTitleStyle,\n },\n timerPickerStyles: {\n ...customTimerPickerStyles,\n pickerContainer: {\n marginRight: \"8%\" as DimensionValue,\n paddingTop: !variables?.hasModalTitle ? 20 : 0,\n ...(customTimerPickerStyles?.pickerContainer ?? {}),\n },\n },\n });\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type { RefObject, ReactElement } from \"react\";\n\nimport type { View, TouchableOpacity, Text } from \"react-native\";\n\nimport type Modal from \"../Modal\";\nimport type { TimerPickerProps } from \"../TimerPicker/types\";\n\nimport type { CustomTimerPickerModalStyles } from \"./styles\";\n\nexport interface TimerPickerModalRef {\n latestDuration: {\n days: RefObject<number> | undefined;\n hours: RefObject<number> | undefined;\n minutes: RefObject<number> | undefined;\n seconds: RefObject<number> | undefined;\n };\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n },\n options?: { animated?: boolean }\n ) => void;\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n /** Custom cancel button component. If provided, replaces the default cancel button. */\n cancelButton?: ReactElement<{ onPress?: () => void }>;\n cancelButtonText?: string;\n closeOnOverlayPress?: boolean;\n /** Custom confirm button component. If provided, replaces the default confirm button. */\n confirmButton?: ReactElement<{ onPress?: () => void }>;\n confirmButtonText?: string;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n hideCancelButton?: boolean;\n modalProps?: React.ComponentProps<typeof Modal>;\n modalTitle?: string;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n onCancel?: () => void;\n onConfirm: ({\n days,\n hours,\n minutes,\n seconds,\n }: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n setIsVisible: (isVisible: boolean) => void;\n styles?: CustomTimerPickerModalStyles;\n visible: boolean;\n}\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sources":["types.ts"],"sourcesContent":["import type React from \"react\";\nimport { type RefObject, type ReactElement } from \"react\";\n\nimport type { View, TouchableOpacity, Text } from \"react-native\";\n\nimport type Modal from \"../Modal\";\nimport type { TimerPickerProps } from \"../TimerPicker/types\";\nimport type { CustomTimerPickerModalStyles } from \"./styles\";\n\nexport interface TimerPickerModalRef {\n latestDuration: {\n days: RefObject<number> | undefined;\n hours: RefObject<number> | undefined;\n minutes: RefObject<number> | undefined;\n seconds: RefObject<number> | undefined;\n };\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n days?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n },\n options?: { animated?: boolean }\n ) => void;\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n /** Custom cancel button component. If provided, replaces the default cancel button. */\n cancelButton?: ReactElement<{ onPress?: () => void }>;\n cancelButtonText?: string;\n closeOnOverlayPress?: boolean;\n /** Custom confirm button component. If provided, replaces the default confirm button. */\n confirmButton?: ReactElement<{ onPress?: () => void }>;\n confirmButtonText?: string;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n hideCancelButton?: boolean;\n modalProps?: React.ComponentProps<typeof Modal>;\n modalTitle?: string;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n onCancel?: () => void;\n onConfirm: ({\n days,\n hours,\n minutes,\n seconds,\n }: {\n days: number;\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n setIsVisible: (isVisible: boolean) => void;\n styles?: CustomTimerPickerModalStyles;\n visible: boolean;\n}\n"],"mappings":"","ignoreList":[]}
@@ -1,3 +1,3 @@
1
- export { default as TimerPickerModal, TimerPickerModalProps, TimerPickerModalRef, CustomTimerPickerModalStyles } from "./components/TimerPickerModal";
2
- export { default as TimerPicker, TimerPickerProps, TimerPickerRef, CustomTimerPickerStyles } from "./components/TimerPicker";
1
+ export { default as TimerPickerModal } from "./components/TimerPickerModal";
2
+ export { default as TimerPicker } from "./components/TimerPicker";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["default","TimerPickerModal","TimerPickerModalProps","TimerPickerModalRef","CustomTimerPickerModalStyles","TimerPicker","TimerPickerProps","TimerPickerRef","CustomTimerPickerStyles"],"sources":["index.ts"],"sourcesContent":["export {\n default as TimerPickerModal,\n TimerPickerModalProps,\n TimerPickerModalRef,\n CustomTimerPickerModalStyles,\n} from \"./components/TimerPickerModal\";\n\nexport {\n default as TimerPicker,\n TimerPickerProps,\n TimerPickerRef,\n CustomTimerPickerStyles,\n} from \"./components/TimerPicker\";\n"],"mappings":"AAAA,SACIA,OAAO,IAAIC,gBAAgB,EAC3BC,qBAAqB,EACrBC,mBAAmB,EACnBC,4BAA4B,QACzB,+BAA+B;AAEtC,SACIJ,OAAO,IAAIK,WAAW,EACtBC,gBAAgB,EAChBC,cAAc,EACdC,uBAAuB,QACpB,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["default","TimerPickerModal","TimerPicker"],"sources":["index.ts"],"sourcesContent":["export { default as TimerPickerModal } from \"./components/TimerPickerModal\";\nexport type {\n TimerPickerModalProps,\n TimerPickerModalRef,\n CustomTimerPickerModalStyles,\n} from \"./components/TimerPickerModal\";\n\nexport { default as TimerPicker } from \"./components/TimerPicker\";\nexport type {\n TimerPickerProps,\n TimerPickerRef,\n CustomTimerPickerStyles,\n} from \"./components/TimerPicker\";\n"],"mappings":"AAAA,SAASA,OAAO,IAAIC,gBAAgB,QAAQ,+BAA+B;AAO3E,SAASD,OAAO,IAAIE,WAAW,QAAQ,0BAA0B","ignoreList":[]}
@@ -4,16 +4,16 @@ import DurationScroll from "../components/DurationScroll";
4
4
  describe("DurationScroll", () => {
5
5
  const onDurationChangeMock = jest.fn();
6
6
  const emptyStyles = {
7
- pickerContainer: {},
8
- pickerLabelContainer: {},
9
- pickerLabel: {},
10
- pickerItemContainer: {},
11
- pickerItem: {},
12
- pickerAmPmContainer: {},
13
- pickerAmPmLabel: {},
14
7
  disabledPickerContainer: {},
15
8
  disabledPickerItem: {},
16
- pickerGradientOverlay: {}
9
+ pickerAmPmContainer: {},
10
+ pickerAmPmLabel: {},
11
+ pickerContainer: {},
12
+ pickerGradientOverlay: {},
13
+ pickerItem: {},
14
+ pickerItemContainer: {},
15
+ pickerLabel: {},
16
+ pickerLabelContainer: {}
17
17
  };
18
18
  it("renders without crashing", () => {
19
19
  const {
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","DurationScroll","describe","onDurationChangeMock","jest","fn","emptyStyles","pickerContainer","pickerLabelContainer","pickerLabel","pickerItemContainer","pickerItem","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","disabledPickerItem","pickerGradientOverlay","it","getByTestId","createElement","aggressivelyGetLatestDuration","interval","maximumValue","onDurationChange","padWithNItems","repeatNumbersNTimesNotExplicitlySet","styles","testID","component","expect","toBeDefined","getAllByTestId","items","toHaveLength","getByText","label","queryByTestId","toBeNull"],"sources":["DurationScroll.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\n\nimport DurationScroll from \"../components/DurationScroll\";\nimport type { generateStyles } from \"../components/TimerPicker/styles\";\n\ndescribe(\"DurationScroll\", () => {\n const onDurationChangeMock = jest.fn();\n const emptyStyles = {\n pickerContainer: {},\n pickerLabelContainer: {},\n pickerLabel: {},\n pickerItemContainer: {},\n pickerItem: {},\n pickerAmPmContainer: {},\n pickerAmPmLabel: {},\n disabledPickerContainer: {},\n disabledPickerItem: {},\n pickerGradientOverlay: {},\n } as ReturnType<typeof generateStyles>;\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={1}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"renders the correct number of items\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={23}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toHaveLength(10);\n });\n\n it(\"renders the label if provided\", () => {\n const { getByText } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n label=\"Duration\"\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = getByText(\"Duration\");\n expect(label).toBeDefined();\n });\n\n it(\"does not render label when not provided\", () => {\n const { queryByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = queryByTestId(\"picker-label\");\n expect(label).toBeNull();\n });\n\n it(\"handles different intervals\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={5}\n maximumValue={55}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toBeDefined();\n });\n\n it(\"renders with zero padWithNItems\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles large maximumValue\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={999}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles aggressivelyGetLatestDuration set to true\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={true}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles repeatNumbersNTimesNotExplicitlySet set to false\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={false}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n});\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,MAAM,QAAQ,+BAA+B;AAEtD,OAAOC,cAAc,MAAM,8BAA8B;AAGzDC,QAAQ,CAAC,gBAAgB,EAAE,MAAM;EAC7B,MAAMC,oBAAoB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;EACtC,MAAMC,WAAW,GAAG;IAChBC,eAAe,EAAE,CAAC,CAAC;IACnBC,oBAAoB,EAAE,CAAC,CAAC;IACxBC,WAAW,EAAE,CAAC,CAAC;IACfC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,UAAU,EAAE,CAAC,CAAC;IACdC,mBAAmB,EAAE,CAAC,CAAC;IACvBC,eAAe,EAAE,CAAC,CAAC;IACnBC,uBAAuB,EAAE,CAAC,CAAC;IAC3BC,kBAAkB,EAAE,CAAC,CAAC;IACtBC,qBAAqB,EAAE,CAAC;EAC5B,CAAsC;EAEtCC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,CAAE;MAChBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB,WAAY;MACpBqB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGV,WAAW,CAAC,iBAAiB,CAAC;IAChDW,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFb,EAAE,CAAC,qCAAqC,EAAE,MAAM;IAC5C,MAAM;MAAEc;IAAe,CAAC,GAAG/B,MAAM,cAC7BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB;IAAY,CACvB,CACL,CAAC;IACD,MAAM0B,KAAK,GAAGD,cAAc,CAAC,aAAa,CAAC;IAC3CF,MAAM,CAACG,KAAK,CAAC,CAACC,YAAY,CAAC,EAAE,CAAC;EAClC,CAAC,CAAC;EAEFhB,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEiB;IAAU,CAAC,GAAGlC,MAAM,cACxBD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZc,KAAK,EAAC,UAAU;MAChBb,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB;IAAY,CACvB,CACL,CAAC;IACD,MAAM6B,KAAK,GAAGD,SAAS,CAAC,UAAU,CAAC;IACnCL,MAAM,CAACM,KAAK,CAAC,CAACL,WAAW,CAAC,CAAC;EAC/B,CAAC,CAAC;EAEFb,EAAE,CAAC,yCAAyC,EAAE,MAAM;IAChD,MAAM;MAAEmB;IAAc,CAAC,GAAGpC,MAAM,cAC5BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB;IAAY,CACvB,CACL,CAAC;IACD,MAAM6B,KAAK,GAAGC,aAAa,CAAC,cAAc,CAAC;IAC3CP,MAAM,CAACM,KAAK,CAAC,CAACE,QAAQ,CAAC,CAAC;EAC5B,CAAC,CAAC;EAEFpB,EAAE,CAAC,6BAA6B,EAAE,MAAM;IACpC,MAAM;MAAEc;IAAe,CAAC,GAAG/B,MAAM,cAC7BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB;IAAY,CACvB,CACL,CAAC;IACD,MAAM0B,KAAK,GAAGD,cAAc,CAAC,aAAa,CAAC;IAC3CF,MAAM,CAACG,KAAK,CAAC,CAACF,WAAW,CAAC,CAAC;EAC/B,CAAC,CAAC;EAEFb,EAAE,CAAC,iCAAiC,EAAE,MAAM;IACxC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB,WAAY;MACpBqB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGV,WAAW,CAAC,iBAAiB,CAAC;IAChDW,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFb,EAAE,CAAC,4BAA4B,EAAE,MAAM;IACnC,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,GAAI;MAClBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB,WAAY;MACpBqB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGV,WAAW,CAAC,iBAAiB,CAAC;IAChDW,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFb,EAAE,CAAC,mDAAmD,EAAE,MAAM;IAC1D,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,IAAK;MACpCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,IAAK;MAC1CC,MAAM,EAAEpB,WAAY;MACpBqB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGV,WAAW,CAAC,iBAAiB,CAAC;IAChDW,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFb,EAAE,CAAC,0DAA0D,EAAE,MAAM;IACjE,MAAM;MAAEC;IAAY,CAAC,GAAGlB,MAAM,cAC1BD,KAAA,CAAAoB,aAAA,CAAClB,cAAc;MACXmB,6BAA6B,EAAE,KAAM;MACrCC,QAAQ,EAAE,CAAE;MACZC,YAAY,EAAE,EAAG;MACjBC,gBAAgB,EAAEpB,oBAAqB;MACvCqB,aAAa,EAAE,CAAE;MACjBC,mCAAmC,EAAE,KAAM;MAC3CC,MAAM,EAAEpB,WAAY;MACpBqB,MAAM,EAAC;IAAiB,CAC3B,CACL,CAAC;IACD,MAAMC,SAAS,GAAGV,WAAW,CAAC,iBAAiB,CAAC;IAChDW,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;AACN,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","render","DurationScroll","describe","onDurationChangeMock","jest","fn","emptyStyles","disabledPickerContainer","disabledPickerItem","pickerAmPmContainer","pickerAmPmLabel","pickerContainer","pickerGradientOverlay","pickerItem","pickerItemContainer","pickerLabel","pickerLabelContainer","it","getByTestId","createElement","aggressivelyGetLatestDuration","interval","maximumValue","onDurationChange","padWithNItems","repeatNumbersNTimesNotExplicitlySet","styles","testID","component","expect","toBeDefined","getAllByTestId","items","toHaveLength","getByText","label","queryByTestId","toBeNull"],"sources":["DurationScroll.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\n\nimport DurationScroll from \"../components/DurationScroll\";\nimport type { generateStyles } from \"../components/TimerPicker/styles\";\n\ndescribe(\"DurationScroll\", () => {\n const onDurationChangeMock = jest.fn();\n const emptyStyles = {\n disabledPickerContainer: {},\n disabledPickerItem: {},\n pickerAmPmContainer: {},\n pickerAmPmLabel: {},\n pickerContainer: {},\n pickerGradientOverlay: {},\n pickerItem: {},\n pickerItemContainer: {},\n pickerLabel: {},\n pickerLabelContainer: {},\n } as ReturnType<typeof generateStyles>;\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={1}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"renders the correct number of items\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={23}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toHaveLength(10);\n });\n\n it(\"renders the label if provided\", () => {\n const { getByText } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n label=\"Duration\"\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = getByText(\"Duration\");\n expect(label).toBeDefined();\n });\n\n it(\"does not render label when not provided\", () => {\n const { queryByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const label = queryByTestId(\"picker-label\");\n expect(label).toBeNull();\n });\n\n it(\"handles different intervals\", () => {\n const { getAllByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={5}\n maximumValue={55}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n />\n );\n const items = getAllByTestId(\"picker-item\");\n expect(items).toBeDefined();\n });\n\n it(\"renders with zero padWithNItems\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={0}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles large maximumValue\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={999}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles aggressivelyGetLatestDuration set to true\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={true}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={true}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n\n it(\"handles repeatNumbersNTimesNotExplicitlySet set to false\", () => {\n const { getByTestId } = render(\n <DurationScroll\n aggressivelyGetLatestDuration={false}\n interval={1}\n maximumValue={59}\n onDurationChange={onDurationChangeMock}\n padWithNItems={1}\n repeatNumbersNTimesNotExplicitlySet={false}\n styles={emptyStyles}\n testID=\"duration-scroll\"\n />\n );\n const component = getByTestId(\"duration-scroll\");\n expect(component).toBeDefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","fireEvent","cleanup","Text","Modal","describe","beforeEach","jest","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","it","getByTestId","createElement","isVisible","component","expect","toBeDefined","getByText","content","onOverlayPressMock","fn","onOverlayPress","overlay","press","toHaveBeenCalled","modal","props","visible","toBe","not","toThrow","rerender","toHaveBeenCalledTimes"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\nimport { Text } from \"react-native\";\n\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\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 it(\"renders but is not visible when isVisible is false\", () => {\n const { getByTestId } = render(<Modal isVisible={false} />);\n const modal = getByTestId(\"modal\");\n expect(modal).toBeDefined();\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"does not call onOverlayPress when onOverlayPress is not provided\", () => {\n const { getByTestId } = render(<Modal isVisible />);\n const overlay = getByTestId(\"modal-backdrop\");\n expect(() => fireEvent.press(overlay)).not.toThrow();\n });\n\n it(\"handles rapid visibility changes\", () => {\n const { getByTestId, rerender } = render(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n\n rerender(<Modal isVisible={false} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(false);\n\n rerender(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n });\n\n it(\"calls onOverlayPress exactly once per press\", () => {\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).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","render","fireEvent","cleanup","Text","Modal","describe","beforeEach","jest","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","it","getByTestId","createElement","isVisible","component","expect","toBeDefined","getByText","content","onOverlayPressMock","fn","onOverlayPress","overlay","press","toHaveBeenCalled","modal","props","visible","toBe","not","toThrow","rerender","toHaveBeenCalledTimes"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\nimport { Text } from \"react-native\";\n\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\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(<Modal isVisible onOverlayPress={onOverlayPressMock} />);\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n it(\"renders but is not visible when isVisible is false\", () => {\n const { getByTestId } = render(<Modal isVisible={false} />);\n const modal = getByTestId(\"modal\");\n expect(modal).toBeDefined();\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"does not call onOverlayPress when onOverlayPress is not provided\", () => {\n const { getByTestId } = render(<Modal isVisible />);\n const overlay = getByTestId(\"modal-backdrop\");\n expect(() => fireEvent.press(overlay)).not.toThrow();\n });\n\n it(\"handles rapid visibility changes\", () => {\n const { getByTestId, rerender } = render(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n\n rerender(<Modal isVisible={false} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(false);\n\n rerender(<Modal isVisible={true} />);\n expect(getByTestId(\"modal\")).toBeDefined();\n expect(getByTestId(\"modal\").props.visible).toBe(true);\n });\n\n it(\"calls onOverlayPress exactly once per press\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(<Modal isVisible onOverlayPress={onOverlayPressMock} />);\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalledTimes(1);\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -1,4 +1,5 @@
1
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
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
3
  import React from "react";
3
4
  import { render } from "@testing-library/react-native";
4
5
  import { FlatList } from "react-native";
@@ -111,14 +112,6 @@ describe("TimerPicker", () => {
111
112
  expect(getByText("mins")).toBeDefined();
112
113
  expect(getByText("secs")).toBeDefined();
113
114
  });
114
- it("renders with disabled state", () => {
115
- const {
116
- getByTestId
117
- } = render(/*#__PURE__*/React.createElement(TimerPicker, {
118
- disabled: true
119
- }));
120
- expect(getByTestId("timer-picker")).toBeDefined();
121
- });
122
115
  it("renders LinearGradient when specified", () => {
123
116
  const {
124
117
  getByTestId
@@ -1 +1 @@
1
- {"version":3,"names":["React","render","FlatList","TimerPicker","describe","it","getByTestId","createElement","component","expect","toBeDefined","padWithNItems","queryByTestId","hideDays","hideMinutes","hideSeconds","dayPicker","minutePicker","secondPicker","toBeNull","CustomFlatList","props","_extends","testID","queryAllByTestId","customFlatList","toHaveLength","hideHours","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","getByText","hourLabel","minuteLabel","secondLabel","disabled","use12HourPicker","onDurationChangeMock","jest","fn","onDurationChange"],"sources":["TimerPicker.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\nimport { FlatList } from \"react-native\";\n\nimport TimerPicker from \"../components/TimerPicker\";\n\ndescribe(\"TimerPicker\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPicker />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"renders without crashing with negative padWithNItems\", () => {\n const { getByTestId } = render(<TimerPicker padWithNItems={-1} />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"hides days, minutes and seconds when respective hide props are provided\", () => {\n const { queryByTestId } = render(\n <TimerPicker hideDays hideMinutes hideSeconds />\n );\n const dayPicker = queryByTestId(\"duration-scroll-day\");\n const minutePicker = queryByTestId(\"duration-scroll-minute\");\n const secondPicker = queryByTestId(\"duration-scroll-second\");\n expect(dayPicker).toBeNull();\n expect(minutePicker).toBeNull();\n expect(secondPicker).toBeNull();\n });\n\n it(\"uses the custom FlatList component when provided\", () => {\n const CustomFlatList = (props) => (\n <FlatList {...props} testID=\"custom-flat-list\" />\n );\n const { queryAllByTestId } = render(\n <TimerPicker FlatList={CustomFlatList} />\n );\n const customFlatList = queryAllByTestId(\"custom-flat-list\");\n expect(customFlatList).toHaveLength(3);\n });\n\n it(\"renders all pickers by default (hours, minutes, seconds)\", () => {\n const { getByTestId } = render(<TimerPicker />);\n expect(getByTestId(\"duration-scroll-hour\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-second\")).toBeDefined();\n });\n\n it(\"hides hours when hideHours is true\", () => {\n const { queryByTestId } = render(<TimerPicker hideHours />);\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n });\n\n it(\"renders with custom initial value\", () => {\n const { getByTestId } = render(\n <TimerPicker initialValue={{ hours: 2, minutes: 30, seconds: 45 }} />\n );\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with hourInterval\", () => {\n const { getByTestId } = render(<TimerPicker hourInterval={2} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with minuteInterval\", () => {\n const { getByTestId } = render(<TimerPicker minuteInterval={15} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with secondInterval\", () => {\n const { getByTestId } = render(<TimerPicker secondInterval={5} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with custom labels\", () => {\n const { getByText } = render(\n <TimerPicker\n hourLabel=\"hrs\"\n minuteLabel=\"mins\"\n secondLabel=\"secs\"\n />\n );\n expect(getByText(\"hrs\")).toBeDefined();\n expect(getByText(\"mins\")).toBeDefined();\n expect(getByText(\"secs\")).toBeDefined();\n });\n\n it(\"renders with disabled state\", () => {\n const { getByTestId } = render(<TimerPicker disabled />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders LinearGradient when specified\", () => {\n const { getByTestId } = render(<TimerPicker use12HourPicker={false} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"handles combination of hide props\", () => {\n const { queryByTestId } = render(\n <TimerPicker hideHours hideSeconds />\n );\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n\n it(\"handles onDurationChange callback\", () => {\n const onDurationChangeMock = jest.fn();\n const { getByTestId } = render(\n <TimerPicker onDurationChange={onDurationChangeMock} />\n );\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with all hide props and days enabled\", () => {\n const { getByTestId, queryByTestId } = render(\n <TimerPicker hideDays={false} hideHours hideMinutes hideSeconds />\n );\n expect(getByTestId(\"duration-scroll-day\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","render","FlatList","TimerPicker","describe","it","getByTestId","createElement","component","expect","toBeDefined","padWithNItems","queryByTestId","hideDays","hideMinutes","hideSeconds","dayPicker","minutePicker","secondPicker","toBeNull","CustomFlatList","props","_extends","testID","queryAllByTestId","customFlatList","toHaveLength","hideHours","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","getByText","hourLabel","minuteLabel","secondLabel","use12HourPicker","onDurationChangeMock","jest","fn","onDurationChange"],"sources":["TimerPicker.test.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React from \"react\";\n\nimport { render } from \"@testing-library/react-native\";\nimport { FlatList } from \"react-native\";\n\nimport TimerPicker from \"../components/TimerPicker\";\n\ndescribe(\"TimerPicker\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPicker />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"renders without crashing with negative padWithNItems\", () => {\n const { getByTestId } = render(<TimerPicker padWithNItems={-1} />);\n const component = getByTestId(\"timer-picker\");\n expect(component).toBeDefined();\n });\n\n it(\"hides days, minutes and seconds when respective hide props are provided\", () => {\n const { queryByTestId } = render(<TimerPicker hideDays hideMinutes hideSeconds />);\n const dayPicker = queryByTestId(\"duration-scroll-day\");\n const minutePicker = queryByTestId(\"duration-scroll-minute\");\n const secondPicker = queryByTestId(\"duration-scroll-second\");\n expect(dayPicker).toBeNull();\n expect(minutePicker).toBeNull();\n expect(secondPicker).toBeNull();\n });\n\n it(\"uses the custom FlatList component when provided\", () => {\n const CustomFlatList = (props: any) => <FlatList {...props} testID=\"custom-flat-list\" />;\n const { queryAllByTestId } = render(<TimerPicker FlatList={CustomFlatList} />);\n const customFlatList = queryAllByTestId(\"custom-flat-list\");\n expect(customFlatList).toHaveLength(3);\n });\n\n it(\"renders all pickers by default (hours, minutes, seconds)\", () => {\n const { getByTestId } = render(<TimerPicker />);\n expect(getByTestId(\"duration-scroll-hour\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(getByTestId(\"duration-scroll-second\")).toBeDefined();\n });\n\n it(\"hides hours when hideHours is true\", () => {\n const { queryByTestId } = render(<TimerPicker hideHours />);\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n });\n\n it(\"renders with custom initial value\", () => {\n const { getByTestId } = render(\n <TimerPicker initialValue={{ hours: 2, minutes: 30, seconds: 45 }} />\n );\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with hourInterval\", () => {\n const { getByTestId } = render(<TimerPicker hourInterval={2} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with minuteInterval\", () => {\n const { getByTestId } = render(<TimerPicker minuteInterval={15} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with secondInterval\", () => {\n const { getByTestId } = render(<TimerPicker secondInterval={5} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with custom labels\", () => {\n const { getByText } = render(\n <TimerPicker hourLabel=\"hrs\" minuteLabel=\"mins\" secondLabel=\"secs\" />\n );\n expect(getByText(\"hrs\")).toBeDefined();\n expect(getByText(\"mins\")).toBeDefined();\n expect(getByText(\"secs\")).toBeDefined();\n });\n\n it(\"renders LinearGradient when specified\", () => {\n const { getByTestId } = render(<TimerPicker use12HourPicker={false} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"handles combination of hide props\", () => {\n const { queryByTestId } = render(<TimerPicker hideHours hideSeconds />);\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n\n it(\"handles onDurationChange callback\", () => {\n const onDurationChangeMock = jest.fn();\n const { getByTestId } = render(<TimerPicker onDurationChange={onDurationChangeMock} />);\n expect(getByTestId(\"timer-picker\")).toBeDefined();\n });\n\n it(\"renders with all hide props and days enabled\", () => {\n const { getByTestId, queryByTestId } = render(\n <TimerPicker hideDays={false} hideHours hideMinutes hideSeconds />\n );\n expect(getByTestId(\"duration-scroll-day\")).toBeDefined();\n expect(queryByTestId(\"duration-scroll-hour\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-minute\")).toBeNull();\n expect(queryByTestId(\"duration-scroll-second\")).toBeNull();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -15,10 +15,10 @@ describe("TimerPickerModal", () => {
15
15
  cleanup();
16
16
  });
17
17
  const defaultProps = {
18
- visible: true,
19
- setIsVisible: jest.fn(),
18
+ onCancel: mockOnCancel,
20
19
  onConfirm: mockOnConfirm,
21
- onCancel: mockOnCancel
20
+ setIsVisible: jest.fn(),
21
+ visible: true
22
22
  };
23
23
  it("renders without crashing", () => {
24
24
  const {