react-native-timer-picker 2.3.1 → 2.5.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.
Files changed (58) hide show
  1. package/README.md +108 -116
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +15 -27
  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/PickerItem/PickerItem.js +47 -0
  6. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
  7. package/dist/commonjs/components/PickerItem/index.js +14 -0
  8. package/dist/commonjs/components/PickerItem/index.js.map +1 -0
  9. package/dist/commonjs/components/TimerPicker/TimerPicker.js +11 -7
  10. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
  11. package/dist/commonjs/components/TimerPicker/styles.js +45 -18
  12. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  13. package/dist/commonjs/components/TimerPickerModal/styles.js +4 -15
  14. package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
  15. package/dist/commonjs/tests/Modal.test.js +2 -22
  16. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  17. package/dist/commonjs/tests/TimerPickerModal.test.js +53 -53
  18. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  19. package/dist/commonjs/tests/generateNumbers.test.js +35 -35
  20. package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
  21. package/dist/commonjs/tests/padNumber.test.js +18 -18
  22. package/dist/commonjs/tests/padNumber.test.js.map +1 -1
  23. package/dist/commonjs/utils/generateNumbers.js +4 -3
  24. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  25. package/dist/commonjs/utils/padNumber.js +7 -7
  26. package/dist/commonjs/utils/padNumber.js.map +1 -1
  27. package/dist/module/components/DurationScroll/DurationScroll.js +14 -27
  28. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
  29. package/dist/module/components/DurationScroll/types.js.map +1 -1
  30. package/dist/module/components/PickerItem/PickerItem.js +40 -0
  31. package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
  32. package/dist/module/components/PickerItem/index.js +2 -0
  33. package/dist/module/components/PickerItem/index.js.map +1 -0
  34. package/dist/module/components/TimerPicker/TimerPicker.js +11 -7
  35. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
  36. package/dist/module/components/TimerPicker/styles.js +45 -18
  37. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  38. package/dist/module/components/TimerPickerModal/styles.js +4 -15
  39. package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
  40. package/dist/module/tests/Modal.test.js +2 -22
  41. package/dist/module/tests/Modal.test.js.map +1 -1
  42. package/dist/module/tests/TimerPickerModal.test.js +9 -9
  43. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  44. package/dist/module/tests/generateNumbers.test.js +35 -35
  45. package/dist/module/tests/generateNumbers.test.js.map +1 -1
  46. package/dist/module/tests/padNumber.test.js +18 -18
  47. package/dist/module/tests/padNumber.test.js.map +1 -1
  48. package/dist/module/utils/generateNumbers.js +4 -3
  49. package/dist/module/utils/generateNumbers.js.map +1 -1
  50. package/dist/module/utils/padNumber.js +7 -7
  51. package/dist/module/utils/padNumber.js.map +1 -1
  52. package/dist/typescript/components/DurationScroll/types.d.ts +1 -0
  53. package/dist/typescript/components/PickerItem/PickerItem.d.ts +15 -0
  54. package/dist/typescript/components/PickerItem/index.d.ts +1 -0
  55. package/dist/typescript/components/TimerPicker/styles.d.ts +153 -25
  56. package/dist/typescript/components/TimerPickerModal/styles.d.ts +256 -254
  57. package/dist/typescript/utils/padNumber.d.ts +1 -1
  58. package/package.json +1 -1
@@ -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","_customStyles$pickerL","_customStyles$text","_customStyles$pickerI","_customStyles$text2","_customStyles$pickerI2","_customStyles$pickerI3","create","pickerContainer","flexDirection","marginRight","backgroundColor","theme","pickerLabelContainer","position","right","top","bottom","justifyContent","minWidth","pickerLabel","fontSize","text","fontWeight","marginTop","pickerItem","color","pickerItemContainer","height","alignItems","width","textAlignVertical","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","opacity","disabledPickerItem","maskedView","flex","pickerGradientOverlay","durationScrollFlatList","durationScrollFlatListContainer","overflow","durationScrollFlatListContentContainer"],"sources":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { TextStyle, ViewStyle } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n backgroundColor?: string;\n disabledPickerContainer?: ViewStyle;\n disabledPickerItem?: TextStyle;\n durationScrollFlatList?: ViewStyle;\n durationScrollFlatListContainer?: ViewStyle;\n durationScrollFlatListContentContainer?: ViewStyle;\n pickerAmPmContainer?: ViewStyle;\n pickerAmPmLabel?: TextStyle;\n pickerContainer?: ViewStyle & { backgroundColor?: string };\n pickerGradientOverlay?: ViewStyle;\n pickerItem?: TextStyle;\n pickerItemContainer?: ViewStyle & { height?: number };\n pickerLabel?: TextStyle;\n pickerLabelContainer?: ViewStyle;\n text?: TextStyle;\n theme?: \"light\" | \"dark\";\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: CustomTimerPickerStyles | undefined\n) =>\n StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n marginRight: \"8%\",\n backgroundColor:\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n right: 4,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n minWidth:\n (customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) * 0.65,\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop:\n (customStyles?.pickerItem?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n flexDirection: \"row\",\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n width: (customStyles?.pickerItem?.fontSize ?? 25) * 3.6,\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n pickerAmPmContainer: {\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n ...customStyles?.pickerLabelContainer,\n ...customStyles?.pickerAmPmContainer,\n },\n pickerAmPmLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop: (customStyles?.pickerItem?.fontSize ?? 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n ...customStyles?.pickerAmPmLabel,\n },\n disabledPickerContainer: {\n opacity: 0.4,\n ...customStyles?.disabledPickerContainer,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n maskedView: {\n flex: 1,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n ...customStyles?.pickerGradientOverlay,\n },\n durationScrollFlatList: {\n minWidth: 1,\n width: \"300%\",\n ...customStyles?.durationScrollFlatList,\n },\n durationScrollFlatListContainer: {\n overflow: \"visible\",\n ...customStyles?.durationScrollFlatListContainer,\n },\n durationScrollFlatListContentContainer: {\n ...customStyles?.durationScrollFlatListContentContainer,\n },\n });\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","_customStyles$pickerL","_customStyles$text","_customStyles$pickerA","_customStyles$pickerL2","_customStyles$text2","_customStyles$pickerI","_customStyles$text3","backgroundColor","theme","textColor","pickerLabelFontSize","pickerLabel","fontSize","text","pickerAmPmFontSize","pickerAmPmLabel","pickerItemFontSize","pickerItem","pickerLabelVerticalOffset","pickerAmPmVerticalOffset","extraLabelOffsetPercentage","labelOffsetPercentage","baseLeftOffsetPercentage","create","pickerContainer","flexDirection","width","pickerLabelContainer","position","top","bottom","left","justifyContent","marginTop","fontWeight","color","pickerItemContainer","height","alignItems","textAlignVertical","overflow","selectedPickerItem","pickerAmPmContainer","disabledPickerContainer","opacity","disabledPickerItem","maskedView","flex","pickerGradientOverlay","durationScrollFlatListContainer","durationScrollFlatList","paddingRight","marginRight","durationScrollFlatListContentContainer"],"sources":["styles.ts"],"sourcesContent":["\nimport { StyleSheet } from \"react-native\";\nimport type { TextStyle, ViewStyle } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n backgroundColor?: string;\n disabledPickerContainer?: ViewStyle;\n disabledPickerItem?: TextStyle;\n durationScrollFlatList?: ViewStyle;\n durationScrollFlatListContainer?: ViewStyle;\n durationScrollFlatListContentContainer?: ViewStyle;\n labelOffsetPercentage?: number;\n pickerAmPmContainer?: ViewStyle;\n pickerAmPmLabel?: TextStyle;\n pickerContainer?: ViewStyle & { backgroundColor?: string };\n pickerGradientOverlay?: ViewStyle;\n pickerItem?: TextStyle;\n pickerItemContainer?: ViewStyle & { height?: number };\n pickerLabel?: TextStyle;\n pickerLabelContainer?: ViewStyle;\n selectedPickerItem?: TextStyle;\n text?: TextStyle;\n theme?: \"light\" | \"dark\";\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: CustomTimerPickerStyles | undefined\n) => {\n const backgroundColor =\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR);\n\n const textColor =\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR;\n\n const pickerLabelFontSize =\n customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 18;\n const pickerAmPmFontSize =\n customStyles?.pickerAmPmLabel?.fontSize ??\n customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 18;\n const pickerItemFontSize =\n customStyles?.pickerItem?.fontSize ??\n customStyles?.text?.fontSize ??\n 25;\n\n // This offset makes the picker label appear to be aligned with the picker item\n // despite them having different font sizes\n const pickerLabelVerticalOffset =\n pickerItemFontSize - pickerLabelFontSize - 1;\n const pickerAmPmVerticalOffset =\n pickerItemFontSize - pickerAmPmFontSize - 1;\n\n // The label is absolutely positioned, so we need to offset it for it to appear\n // in the correct position. We offset it to the left of the container so that\n // the width of the label doesn't impact its position.\n const extraLabelOffsetPercentage = customStyles?.labelOffsetPercentage ?? 8;\n const baseLeftOffsetPercentage = 70;\n const labelOffsetPercentage =\n baseLeftOffsetPercentage + extraLabelOffsetPercentage;\n\n return StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n backgroundColor,\n width: \"100%\",\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: `${labelOffsetPercentage}%`,\n justifyContent: \"center\",\n marginTop: pickerLabelVerticalOffset,\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: textColor,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n flexDirection: \"row\",\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n overflow: \"visible\",\n color: textColor,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n selectedPickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n overflow: \"visible\",\n color: textColor,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n ...customStyles?.selectedPickerItem,\n },\n pickerAmPmContainer: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: `${labelOffsetPercentage}%`,\n justifyContent: \"center\",\n marginTop: pickerAmPmVerticalOffset,\n ...customStyles?.pickerLabelContainer,\n ...customStyles?.pickerAmPmContainer,\n },\n pickerAmPmLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: textColor,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n ...customStyles?.pickerAmPmLabel,\n },\n disabledPickerContainer: {\n opacity: 0.4,\n ...customStyles?.disabledPickerContainer,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n maskedView: {\n flex: 1,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n width: \"100%\",\n height: \"100%\",\n ...customStyles?.pickerGradientOverlay,\n },\n durationScrollFlatListContainer: {\n flex: 1,\n ...customStyles?.durationScrollFlatListContainer,\n },\n durationScrollFlatList: {\n // These paddings allow the inner am/pm label to\n // spill out of the flatlist\n paddingRight: \"25%\",\n marginRight: \"-25%\",\n ...customStyles?.durationScrollFlatList,\n },\n durationScrollFlatListContentContainer: {\n ...customStyles?.durationScrollFlatListContentContainer,\n },\n });\n};"],"mappings":"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","ignoreList":[]}
@@ -18,11 +18,7 @@ export const generateStyles = (customStyles, variables) => {
18
18
  container: {
19
19
  justifyContent: "center",
20
20
  overflow: "hidden",
21
- ...customContainerStyle,
22
- // disable setting alignItems here because it can affect
23
- // the FlatList's ability to calculate its layout, which can
24
- // stop snapToOffsets working properly
25
- alignItems: undefined
21
+ ...customContainerStyle
26
22
  },
27
23
  contentContainer: {
28
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),
@@ -30,12 +26,8 @@ export const generateStyles = (customStyles, variables) => {
30
26
  alignItems: "center",
31
27
  borderRadius: 20,
32
28
  overflow: "hidden",
33
- ...customContentContainerStyle,
34
- // disable setting padding here because it can affect
35
- // the FlatList's ability to calculate its layout, which can
36
- // stop snapToOffsets working properly
37
- paddingHorizontal: 0,
38
- paddingVertical: 0
29
+ paddingHorizontal: 20,
30
+ ...customContentContainerStyle
39
31
  },
40
32
  buttonContainer: {
41
33
  flexDirection: "row",
@@ -80,10 +72,7 @@ export const generateStyles = (customStyles, variables) => {
80
72
  timerPickerStyles: {
81
73
  ...customTimerPickerStyles,
82
74
  pickerContainer: {
83
- // set padding here instead of on modal content container because it can affect
84
- // the FlatList's ability to calculate its layout, which can
85
- // stop snapToOffsets working properly
86
- paddingHorizontal: 20,
75
+ marginRight: "8%",
87
76
  paddingTop: !(variables !== null && variables !== void 0 && variables.hasModalTitle) ? 20 : 0,
88
77
  ...((customTimerPickerStyles === null || customTimerPickerStyles === void 0 ? void 0 : customTimerPickerStyles.pickerContainer) ?? {})
89
78
  }
@@ -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","alignItems","undefined","backgroundColor","theme","borderRadius","paddingHorizontal","paddingVertical","flexDirection","marginTop","marginBottom","marginHorizontal","borderWidth","fontSize","text","borderColor","color","fontWeight","timerPickerStyles","pickerContainer","paddingTop","hasModalTitle"],"sources":["styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\nimport type { 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 // disable setting alignItems here because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n alignItems: undefined,\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 ...customContentContainerStyle,\n // disable setting padding here because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n paddingHorizontal: 0,\n paddingVertical: 0,\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 // set padding here instead of on modal content container because it can affect\n // the FlatList's ability to calculate its layout, which can\n // stop snapToOffsets working properly\n paddingHorizontal: 20,\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","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":[]}
@@ -60,21 +60,10 @@ describe("Modal", () => {
60
60
  const overlay = getByTestId("modal-backdrop");
61
61
  expect(() => fireEvent.press(overlay)).not.toThrow();
62
62
  });
63
- it("renders multiple children", () => {
64
- const {
65
- getByText
66
- } = render(/*#__PURE__*/React.createElement(Modal, {
67
- isVisible: true
68
- }, /*#__PURE__*/React.createElement(Text, null, "First Child"), /*#__PURE__*/React.createElement(Text, null, "Second Child")));
69
- const firstChild = getByText("First Child");
70
- const secondChild = getByText("Second Child");
71
- expect(firstChild).toBeDefined();
72
- expect(secondChild).toBeDefined();
73
- });
74
63
  it("handles rapid visibility changes", () => {
75
64
  const {
76
- rerender,
77
- getByTestId
65
+ getByTestId,
66
+ rerender
78
67
  } = render(/*#__PURE__*/React.createElement(Modal, {
79
68
  isVisible: true
80
69
  }));
@@ -103,14 +92,5 @@ describe("Modal", () => {
103
92
  fireEvent.press(overlay);
104
93
  expect(onOverlayPressMock).toHaveBeenCalledTimes(1);
105
94
  });
106
- it("renders children with complex structure", () => {
107
- const {
108
- getByText
109
- } = render(/*#__PURE__*/React.createElement(Modal, {
110
- isVisible: true
111
- }, /*#__PURE__*/React.createElement(Text, null, "Parent"), /*#__PURE__*/React.createElement(Text, null, "Child")));
112
- expect(getByText("Parent")).toBeDefined();
113
- expect(getByText("Child")).toBeDefined();
114
- });
115
95
  });
116
96
  //# sourceMappingURL=Modal.test.js.map
@@ -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","firstChild","secondChild","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(\"renders multiple children\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"First Child\"}</Text>\n <Text>{\"Second Child\"}</Text>\n </Modal>\n );\n const firstChild = getByText(\"First Child\");\n const secondChild = getByText(\"Second Child\");\n expect(firstChild).toBeDefined();\n expect(secondChild).toBeDefined();\n });\n\n it(\"handles rapid visibility changes\", () => {\n const { rerender, getByTestId } = render(\n <Modal isVisible={true} />\n );\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 it(\"renders children with complex structure\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Parent\"}</Text>\n <Text>{\"Child\"}</Text>\n </Modal>\n );\n expect(getByText(\"Parent\")).toBeDefined();\n expect(getByText(\"Child\")).toBeDefined();\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(\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,7 +1,7 @@
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
2
  import React from "react";
3
- import { TouchableOpacity, Text } from "react-native";
4
3
  import { render, fireEvent, cleanup } from "@testing-library/react-native";
4
+ import { TouchableOpacity, Text } from "react-native";
5
5
  import TimerPickerModal from "../components/TimerPickerModal";
6
6
  describe("TimerPickerModal", () => {
7
7
  const mockOnConfirm = jest.fn();
@@ -90,8 +90,8 @@ describe("TimerPickerModal", () => {
90
90
  const {
91
91
  getByText
92
92
  } = render(/*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
93
- confirmButtonText: "OK",
94
- cancelButtonText: "Dismiss"
93
+ cancelButtonText: "Dismiss",
94
+ confirmButtonText: "OK"
95
95
  })));
96
96
  expect(getByText("OK")).toBeDefined();
97
97
  expect(getByText("Dismiss")).toBeDefined();
@@ -174,16 +174,16 @@ describe("TimerPickerModal", () => {
174
174
  const {
175
175
  getByTestId
176
176
  } = render(/*#__PURE__*/React.createElement(TimerPickerModal, _extends({}, defaultProps, {
177
- modalTitle: "Pick Duration",
178
- confirmButtonText: "Done",
179
177
  cancelButtonText: "Close",
180
- hourLabel: "h",
181
- minuteLabel: "m",
182
- secondLabel: "s",
178
+ confirmButtonText: "Done",
179
+ hideDays: false,
183
180
  hideHours: false,
184
181
  hideMinutes: false,
185
182
  hideSeconds: false,
186
- hideDays: false
183
+ hourLabel: "h",
184
+ minuteLabel: "m",
185
+ modalTitle: "Pick Duration",
186
+ secondLabel: "s"
187
187
  })));
188
188
  expect(getByTestId("timer-picker-modal")).toBeDefined();
189
189
  });
@@ -1 +1 @@
1
- {"version":3,"names":["React","TouchableOpacity","Text","render","fireEvent","cleanup","TimerPickerModal","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","createElement","component","expect","toBeDefined","getByText","confirmButton","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","_extends","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining","modal","props","toBe","confirmButtonText","cancelButtonText","modalTitle","not","queryByText","hideCancelButton","toBeNull","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","onCancelMock","hideHours","hideSeconds","hourLabel","minuteLabel","secondLabel","hideMinutes","hideDays","CustomButton","onPress","testID","customCancelButton","customConfirmButton","CustomCancelButton","CustomConfirmButton"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { TouchableOpacity, Text } from \"react-native\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n\n it(\"renders but is not visible when visible prop is false\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} visible={false} />\n );\n const modal = getByTestId(\"timer-picker-modal\");\n expect(modal).toBeDefined();\n // Modal component still renders but with visible={false}\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"renders with custom button labels\", () => {\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButtonText=\"OK\"\n cancelButtonText=\"Dismiss\"\n />\n );\n expect(getByText(\"OK\")).toBeDefined();\n expect(getByText(\"Dismiss\")).toBeDefined();\n });\n\n it(\"renders with custom modal title\", () => {\n const { getByText } = render(\n <TimerPickerModal {...defaultProps} modalTitle=\"Select Time\" />\n );\n expect(getByText(\"Select Time\")).toBeDefined();\n });\n\n it(\"does not close on overlay press when closeOnOverlayPress is false\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress={false}\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).not.toHaveBeenCalled();\n });\n\n it(\"hides Cancel button when hideCancelButton is true\", () => {\n const { queryByText } = render(\n <TimerPickerModal {...defaultProps} hideCancelButton />\n );\n expect(queryByText(\"Cancel\")).toBeNull();\n });\n\n it(\"renders with initial value\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n initialValue={{ hours: 2, minutes: 30, seconds: 0 }}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders with custom intervals\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n hourInterval={2}\n minuteInterval={15}\n secondInterval={5}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"calls both onCancel and setIsVisible when Cancel is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const onCancelMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n onCancel={onCancelMock}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(onCancelMock).toHaveBeenCalled();\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides specific time units when respective hide props are provided\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} hideHours hideSeconds />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n // Note: The specific duration scroll test IDs would be in the TimerPicker component\n });\n\n it(\"renders without crashing with all optional props\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n modalTitle=\"Pick Duration\"\n confirmButtonText=\"Done\"\n cancelButtonText=\"Close\"\n hourLabel=\"h\"\n minuteLabel=\"m\"\n secondLabel=\"s\"\n hideHours={false}\n hideMinutes={false}\n hideSeconds={false}\n hideDays={false}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders custom cancel button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n });\n\n it(\"renders custom confirm button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n\n it(\"calls onCancel when custom cancel button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n const customCancelButton = getByTestId(\"custom-cancel-button\");\n fireEvent.press(customCancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"calls onConfirm when custom confirm button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n const customConfirmButton = getByTestId(\"custom-confirm-button\");\n fireEvent.press(customConfirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"renders both custom cancel and confirm buttons when provided\", () => {\n const CustomCancelButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n const CustomConfirmButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomCancelButton />}\n confirmButton={<CustomConfirmButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","render","fireEvent","cleanup","TouchableOpacity","Text","TimerPickerModal","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","createElement","component","expect","toBeDefined","getByText","confirmButton","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","_extends","toHaveBeenCalledWith","closeOnOverlayPress","overlay","objectContaining","modal","props","toBe","cancelButtonText","confirmButtonText","modalTitle","not","queryByText","hideCancelButton","toBeNull","initialValue","hours","minutes","seconds","hourInterval","minuteInterval","secondInterval","onCancelMock","hideHours","hideSeconds","hideDays","hideMinutes","hourLabel","minuteLabel","secondLabel","CustomButton","onPress","testID","customCancelButton","customConfirmButton","CustomCancelButton","CustomConfirmButton"],"sources":["TimerPickerModal.test.tsx"],"sourcesContent":["import React from \"react\";\n\nimport { render, fireEvent, cleanup } from \"@testing-library/react-native\";\nimport { TouchableOpacity, Text } from \"react-native\";\n\n\nimport TimerPickerModal from \"../components/TimerPickerModal\";\n\ndescribe(\"TimerPickerModal\", () => {\n const mockOnConfirm = jest.fn();\n const mockOnCancel = jest.fn();\n\n beforeEach(() => {\n jest.useFakeTimers();\n });\n\n afterEach(() => {\n jest.runOnlyPendingTimers();\n jest.useRealTimers();\n cleanup();\n });\n\n const defaultProps = {\n visible: true,\n setIsVisible: jest.fn(),\n onConfirm: mockOnConfirm,\n onCancel: mockOnCancel,\n };\n\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<TimerPickerModal {...defaultProps} />);\n const component = getByTestId(\"timer-picker-modal\");\n expect(component).toBeDefined();\n });\n\n it(\"calls onConfirm when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"calls onCancel when Cancel button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"hides the modal when Cancel button is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides the modal when overlay is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"calls onConfirm with selected duration when Confirm button is pressed\", () => {\n const { getByText } = render(<TimerPickerModal {...defaultProps} />);\n // Select duration in TimerPicker, assuming its interaction is tested separately\n const confirmButton = getByText(\"Confirm\");\n fireEvent.press(confirmButton);\n expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));\n });\n\n it(\"renders but is not visible when visible prop is false\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} visible={false} />\n );\n const modal = getByTestId(\"timer-picker-modal\");\n expect(modal).toBeDefined();\n // Modal component still renders but with visible={false}\n expect(modal.props.visible).toBe(false);\n });\n\n it(\"renders with custom button labels\", () => {\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButtonText=\"Dismiss\"\n confirmButtonText=\"OK\"\n />\n );\n expect(getByText(\"OK\")).toBeDefined();\n expect(getByText(\"Dismiss\")).toBeDefined();\n });\n\n it(\"renders with custom modal title\", () => {\n const { getByText } = render(\n <TimerPickerModal {...defaultProps} modalTitle=\"Select Time\" />\n );\n expect(getByText(\"Select Time\")).toBeDefined();\n });\n\n it(\"does not close on overlay press when closeOnOverlayPress is false\", () => {\n const setIsVisibleMock = jest.fn();\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n closeOnOverlayPress={false}\n setIsVisible={setIsVisibleMock}\n />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(setIsVisibleMock).not.toHaveBeenCalled();\n });\n\n it(\"hides Cancel button when hideCancelButton is true\", () => {\n const { queryByText } = render(\n <TimerPickerModal {...defaultProps} hideCancelButton />\n );\n expect(queryByText(\"Cancel\")).toBeNull();\n });\n\n it(\"renders with initial value\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n initialValue={{ hours: 2, minutes: 30, seconds: 0 }}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders with custom intervals\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n hourInterval={2}\n minuteInterval={15}\n secondInterval={5}\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"calls both onCancel and setIsVisible when Cancel is pressed\", () => {\n const setIsVisibleMock = jest.fn();\n const onCancelMock = jest.fn();\n const { getByText } = render(\n <TimerPickerModal\n {...defaultProps}\n onCancel={onCancelMock}\n setIsVisible={setIsVisibleMock}\n />\n );\n const cancelButton = getByText(\"Cancel\");\n fireEvent.press(cancelButton);\n expect(onCancelMock).toHaveBeenCalled();\n expect(setIsVisibleMock).toHaveBeenCalledWith(false);\n });\n\n it(\"hides specific time units when respective hide props are provided\", () => {\n const { getByTestId } = render(\n <TimerPickerModal {...defaultProps} hideHours hideSeconds />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n // Note: The specific duration scroll test IDs would be in the TimerPicker component\n });\n\n it(\"renders without crashing with all optional props\", () => {\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButtonText=\"Close\"\n confirmButtonText=\"Done\"\n hideDays={false}\n hideHours={false}\n hideMinutes={false}\n hideSeconds={false}\n hourLabel=\"h\"\n minuteLabel=\"m\"\n modalTitle=\"Pick Duration\"\n secondLabel=\"s\"\n />\n );\n expect(getByTestId(\"timer-picker-modal\")).toBeDefined();\n });\n\n it(\"renders custom cancel button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n });\n\n it(\"renders custom confirm button when provided\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n\n it(\"calls onCancel when custom cancel button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomButton />}\n />\n );\n const customCancelButton = getByTestId(\"custom-cancel-button\");\n fireEvent.press(customCancelButton);\n expect(mockOnCancel).toHaveBeenCalled();\n });\n\n it(\"calls onConfirm when custom confirm button is pressed\", () => {\n const CustomButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n confirmButton={<CustomButton />}\n />\n );\n const customConfirmButton = getByTestId(\"custom-confirm-button\");\n fireEvent.press(customConfirmButton);\n expect(mockOnConfirm).toHaveBeenCalled();\n });\n\n it(\"renders both custom cancel and confirm buttons when provided\", () => {\n const CustomCancelButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-cancel-button\">\n <Text>Custom Cancel</Text>\n </TouchableOpacity>\n );\n const CustomConfirmButton = ({ onPress }: { onPress?: () => void }) => (\n <TouchableOpacity onPress={onPress} testID=\"custom-confirm-button\">\n <Text>Custom Confirm</Text>\n </TouchableOpacity>\n );\n\n const { getByTestId } = render(\n <TimerPickerModal\n {...defaultProps}\n cancelButton={<CustomCancelButton />}\n confirmButton={<CustomConfirmButton />}\n />\n );\n expect(getByTestId(\"custom-cancel-button\")).toBeDefined();\n expect(getByTestId(\"custom-confirm-button\")).toBeDefined();\n });\n});\n"],"mappings":"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","ignoreList":[]}
@@ -17,7 +17,7 @@ describe("generateNumbers", () => {
17
17
  repeatNTimes: 1,
18
18
  disableInfiniteScroll: true
19
19
  });
20
- expect(result).toEqual([" 0", " 2", " 4", " 6", " 8"]);
20
+ expect(result).toEqual(["\u20070", "\u20072", "\u20074", "\u20076", "\u20078"]);
21
21
  });
22
22
  it("generates numbers with interval of 5", () => {
23
23
  const result = generateNumbers(4, {
@@ -26,7 +26,7 @@ describe("generateNumbers", () => {
26
26
  repeatNTimes: 1,
27
27
  disableInfiniteScroll: true
28
28
  });
29
- expect(result).toEqual([" 0", " 5", "10", "15"]);
29
+ expect(result).toEqual(["\u20070", "\u20075", "10", "15"]);
30
30
  });
31
31
  it("returns empty array when numberOfItems is 0", () => {
32
32
  const result = generateNumbers(0, {
@@ -77,7 +77,7 @@ describe("generateNumbers", () => {
77
77
  padNumbersWithZero: false,
78
78
  disableInfiniteScroll: true
79
79
  });
80
- expect(result).toEqual([" 0", " 1", " 2", " 3", " 4"]);
80
+ expect(result).toEqual(["\u20070", "\u20071", "\u20072", "\u20073", "\u20074"]);
81
81
  });
82
82
  });
83
83
  describe("padding with empty items", () => {
@@ -88,7 +88,7 @@ describe("generateNumbers", () => {
88
88
  repeatNTimes: 1,
89
89
  disableInfiniteScroll: true
90
90
  });
91
- expect(result).toEqual(["", "", " 0", " 1", " 2", "", ""]);
91
+ expect(result).toEqual(["", "", "\u20070", "\u20071", "\u20072", "", ""]);
92
92
  expect(result).toHaveLength(7);
93
93
  });
94
94
  it("adds padding with 1 item", () => {
@@ -98,7 +98,7 @@ describe("generateNumbers", () => {
98
98
  repeatNTimes: 1,
99
99
  disableInfiniteScroll: true
100
100
  });
101
- expect(result).toEqual(["", " 0", " 1", " 2", ""]);
101
+ expect(result).toEqual(["", "\u20070", "\u20071", "\u20072", ""]);
102
102
  });
103
103
  it("adds padding with 3 items", () => {
104
104
  const result = generateNumbers(2, {
@@ -107,7 +107,7 @@ describe("generateNumbers", () => {
107
107
  repeatNTimes: 1,
108
108
  disableInfiniteScroll: true
109
109
  });
110
- expect(result).toEqual(["", "", "", " 0", " 1", "", "", ""]);
110
+ expect(result).toEqual(["", "", "", "\u20070", "\u20071", "", "", ""]);
111
111
  });
112
112
  });
113
113
  describe("number repetition", () => {
@@ -118,7 +118,7 @@ describe("generateNumbers", () => {
118
118
  repeatNTimes: 2,
119
119
  disableInfiniteScroll: false
120
120
  });
121
- expect(result).toEqual([" 0", " 1", " 2", " 0", " 1", " 2"]);
121
+ expect(result).toEqual(["\u20070", "\u20071", "\u20072", "\u20070", "\u20071", "\u20072"]);
122
122
  });
123
123
  it("repeats numbers when repeatNTimes is 3", () => {
124
124
  const result = generateNumbers(2, {
@@ -127,7 +127,7 @@ describe("generateNumbers", () => {
127
127
  repeatNTimes: 3,
128
128
  disableInfiniteScroll: false
129
129
  });
130
- expect(result).toEqual([" 0", " 1", " 0", " 1", " 0", " 1"]);
130
+ expect(result).toEqual(["\u20070", "\u20071", "\u20070", "\u20071", "\u20070", "\u20071"]);
131
131
  });
132
132
  });
133
133
  describe("combined options", () => {
@@ -172,7 +172,7 @@ describe("generate12HourNumbers", () => {
172
172
  disableInfiniteScroll: false
173
173
  });
174
174
  expect(result).toHaveLength(24);
175
- expect(result[0]).toBe(" 0 AM");
175
+ expect(result[0]).toBe("12 AM");
176
176
  expect(result[11]).toBe("11 AM");
177
177
  expect(result[12]).toBe("12 PM");
178
178
  expect(result[23]).toBe("11 PM");
@@ -184,7 +184,7 @@ describe("generate12HourNumbers", () => {
184
184
  disableInfiniteScroll: false
185
185
  });
186
186
  expect(result).toHaveLength(12);
187
- expect(result[0]).toBe(" 0 AM");
187
+ expect(result[0]).toBe("12 AM");
188
188
  expect(result[5]).toBe("10 AM");
189
189
  expect(result[6]).toBe("12 PM");
190
190
  expect(result[11]).toBe("10 PM");
@@ -196,10 +196,10 @@ describe("generate12HourNumbers", () => {
196
196
  disableInfiniteScroll: false
197
197
  });
198
198
  expect(result).toHaveLength(8);
199
- expect(result[0]).toBe(" 0 AM");
200
- expect(result[3]).toBe(" 9 AM");
199
+ expect(result[0]).toBe("12 AM");
200
+ expect(result[3]).toBe("\u20079 AM");
201
201
  expect(result[4]).toBe("12 PM");
202
- expect(result[7]).toBe(" 9 PM");
202
+ expect(result[7]).toBe("\u20079 PM");
203
203
  });
204
204
  it("generates hours with 4-hour interval", () => {
205
205
  const result = generate12HourNumbers({
@@ -208,10 +208,10 @@ describe("generate12HourNumbers", () => {
208
208
  disableInfiniteScroll: false
209
209
  });
210
210
  expect(result).toHaveLength(6);
211
- expect(result[0]).toBe(" 0 AM");
212
- expect(result[2]).toBe(" 8 AM");
211
+ expect(result[0]).toBe("12 AM");
212
+ expect(result[2]).toBe("\u20078 AM");
213
213
  expect(result[3]).toBe("12 PM");
214
- expect(result[5]).toBe(" 8 PM");
214
+ expect(result[5]).toBe("\u20078 PM");
215
215
  });
216
216
  it("generates hours with 6-hour interval", () => {
217
217
  const result = generate12HourNumbers({
@@ -220,10 +220,10 @@ describe("generate12HourNumbers", () => {
220
220
  disableInfiniteScroll: false
221
221
  });
222
222
  expect(result).toHaveLength(4);
223
- expect(result[0]).toBe(" 0 AM");
224
- expect(result[1]).toBe(" 6 AM");
223
+ expect(result[0]).toBe("12 AM");
224
+ expect(result[1]).toBe("\u20076 AM");
225
225
  expect(result[2]).toBe("12 PM");
226
- expect(result[3]).toBe(" 6 PM");
226
+ expect(result[3]).toBe("\u20076 PM");
227
227
  });
228
228
  });
229
229
  describe("padding with zeros", () => {
@@ -234,7 +234,7 @@ describe("generate12HourNumbers", () => {
234
234
  padNumbersWithZero: true,
235
235
  disableInfiniteScroll: false
236
236
  });
237
- expect(result[0]).toBe("00 AM");
237
+ expect(result[0]).toBe("12 AM");
238
238
  expect(result[1]).toBe("01 AM");
239
239
  expect(result[9]).toBe("09 AM");
240
240
  expect(result[10]).toBe("10 AM");
@@ -260,10 +260,10 @@ describe("generate12HourNumbers", () => {
260
260
  });
261
261
  expect(result[0]).toBe("");
262
262
  expect(result[1]).toBe("");
263
- expect(result[2]).toBe(" 0 AM");
264
- expect(result[3]).toBe(" 6 AM");
263
+ expect(result[2]).toBe("12 AM");
264
+ expect(result[3]).toBe("\u20076 AM");
265
265
  expect(result[4]).toBe("12 PM");
266
- expect(result[5]).toBe(" 6 PM");
266
+ expect(result[5]).toBe("\u20076 PM");
267
267
  expect(result[6]).toBe("");
268
268
  expect(result[7]).toBe("");
269
269
  expect(result).toHaveLength(8);
@@ -274,8 +274,8 @@ describe("generate12HourNumbers", () => {
274
274
  padWithNItems: 2,
275
275
  disableInfiniteScroll: false
276
276
  });
277
- expect(result[0]).toBe(" 0 AM");
278
- expect(result[3]).toBe(" 6 PM");
277
+ expect(result[0]).toBe("12 AM");
278
+ expect(result[3]).toBe("\u20076 PM");
279
279
  expect(result).toHaveLength(4);
280
280
  });
281
281
  });
@@ -288,10 +288,10 @@ describe("generate12HourNumbers", () => {
288
288
  disableInfiniteScroll: false
289
289
  });
290
290
  expect(result).toHaveLength(8);
291
- expect(result[0]).toBe(" 0 AM");
292
- expect(result[3]).toBe(" 6 PM");
293
- expect(result[4]).toBe(" 0 AM");
294
- expect(result[7]).toBe(" 6 PM");
291
+ expect(result[0]).toBe("12 AM");
292
+ expect(result[3]).toBe("\u20076 PM");
293
+ expect(result[4]).toBe("12 AM");
294
+ expect(result[7]).toBe("\u20076 PM");
295
295
  });
296
296
  it("repeats hours when repeatNTimes is 3", () => {
297
297
  const result = generate12HourNumbers({
@@ -301,11 +301,11 @@ describe("generate12HourNumbers", () => {
301
301
  disableInfiniteScroll: false
302
302
  });
303
303
  expect(result).toHaveLength(6);
304
- expect(result[0]).toBe(" 0 AM");
304
+ expect(result[0]).toBe("12 AM");
305
305
  expect(result[1]).toBe("12 PM");
306
- expect(result[2]).toBe(" 0 AM");
306
+ expect(result[2]).toBe("12 AM");
307
307
  expect(result[3]).toBe("12 PM");
308
- expect(result[4]).toBe(" 0 AM");
308
+ expect(result[4]).toBe("12 AM");
309
309
  expect(result[5]).toBe("12 PM");
310
310
  });
311
311
  it("defaults to repeatNTimes of 1 when not provided", () => {
@@ -325,7 +325,7 @@ describe("generate12HourNumbers", () => {
325
325
  padNumbersWithZero: true,
326
326
  disableInfiniteScroll: true
327
327
  });
328
- expect(result).toEqual(["", "00 AM", "12 PM", ""]);
328
+ expect(result).toEqual(["", "12 AM", "12 PM", ""]);
329
329
  });
330
330
  it("combines all options", () => {
331
331
  const result = generate12HourNumbers({
@@ -336,11 +336,11 @@ describe("generate12HourNumbers", () => {
336
336
  disableInfiniteScroll: false
337
337
  });
338
338
  expect(result).toHaveLength(8);
339
- expect(result[0]).toBe("00 AM");
339
+ expect(result[0]).toBe("12 AM");
340
340
  expect(result[1]).toBe("06 AM");
341
341
  expect(result[2]).toBe("12 PM");
342
342
  expect(result[3]).toBe("06 PM");
343
- expect(result[4]).toBe("00 AM");
343
+ expect(result[4]).toBe("12 AM");
344
344
  expect(result[7]).toBe("06 PM");
345
345
  });
346
346
  });