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.
- package/README.md +108 -116
- package/dist/commonjs/components/DurationScroll/DurationScroll.js +15 -27
- package/dist/commonjs/components/DurationScroll/DurationScroll.js.map +1 -1
- package/dist/commonjs/components/DurationScroll/types.js.map +1 -1
- package/dist/commonjs/components/PickerItem/PickerItem.js +47 -0
- package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -0
- package/dist/commonjs/components/PickerItem/index.js +14 -0
- package/dist/commonjs/components/PickerItem/index.js.map +1 -0
- package/dist/commonjs/components/TimerPicker/TimerPicker.js +11 -7
- package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/styles.js +45 -18
- package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
- package/dist/commonjs/components/TimerPickerModal/styles.js +4 -15
- package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +2 -22
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPickerModal.test.js +53 -53
- package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/commonjs/tests/generateNumbers.test.js +35 -35
- package/dist/commonjs/tests/generateNumbers.test.js.map +1 -1
- package/dist/commonjs/tests/padNumber.test.js +18 -18
- package/dist/commonjs/tests/padNumber.test.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js +4 -3
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/padNumber.js +7 -7
- package/dist/commonjs/utils/padNumber.js.map +1 -1
- package/dist/module/components/DurationScroll/DurationScroll.js +14 -27
- package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
- package/dist/module/components/DurationScroll/types.js.map +1 -1
- package/dist/module/components/PickerItem/PickerItem.js +40 -0
- package/dist/module/components/PickerItem/PickerItem.js.map +1 -0
- package/dist/module/components/PickerItem/index.js +2 -0
- package/dist/module/components/PickerItem/index.js.map +1 -0
- package/dist/module/components/TimerPicker/TimerPicker.js +11 -7
- package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
- package/dist/module/components/TimerPicker/styles.js +45 -18
- package/dist/module/components/TimerPicker/styles.js.map +1 -1
- package/dist/module/components/TimerPickerModal/styles.js +4 -15
- package/dist/module/components/TimerPickerModal/styles.js.map +1 -1
- package/dist/module/tests/Modal.test.js +2 -22
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/tests/TimerPickerModal.test.js +9 -9
- package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/module/tests/generateNumbers.test.js +35 -35
- package/dist/module/tests/generateNumbers.test.js.map +1 -1
- package/dist/module/tests/padNumber.test.js +18 -18
- package/dist/module/tests/padNumber.test.js.map +1 -1
- package/dist/module/utils/generateNumbers.js +4 -3
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/padNumber.js +7 -7
- package/dist/module/utils/padNumber.js.map +1 -1
- package/dist/typescript/components/DurationScroll/types.d.ts +1 -0
- package/dist/typescript/components/PickerItem/PickerItem.d.ts +15 -0
- package/dist/typescript/components/PickerItem/index.d.ts +1 -0
- package/dist/typescript/components/TimerPicker/styles.d.ts +153 -25
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +256 -254
- package/dist/typescript/utils/padNumber.d.ts +1 -1
- 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
|
-
|
|
34
|
-
|
|
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
|
-
|
|
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","
|
|
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
|
-
|
|
77
|
-
|
|
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","
|
|
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
|
-
|
|
94
|
-
|
|
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
|
-
|
|
181
|
-
|
|
182
|
-
secondLabel: "s",
|
|
178
|
+
confirmButtonText: "Done",
|
|
179
|
+
hideDays: false,
|
|
183
180
|
hideHours: false,
|
|
184
181
|
hideMinutes: false,
|
|
185
182
|
hideSeconds: false,
|
|
186
|
-
|
|
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(["
|
|
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(["
|
|
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(["
|
|
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(["", "", "
|
|
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(["", "
|
|
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(["", "", "", "
|
|
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(["
|
|
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(["
|
|
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("
|
|
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("
|
|
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("
|
|
200
|
-
expect(result[3]).toBe("
|
|
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("
|
|
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("
|
|
212
|
-
expect(result[2]).toBe("
|
|
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("
|
|
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("
|
|
224
|
-
expect(result[1]).toBe("
|
|
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("
|
|
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("
|
|
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("
|
|
264
|
-
expect(result[3]).toBe("
|
|
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("
|
|
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("
|
|
278
|
-
expect(result[3]).toBe("
|
|
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("
|
|
292
|
-
expect(result[3]).toBe("
|
|
293
|
-
expect(result[4]).toBe("
|
|
294
|
-
expect(result[7]).toBe("
|
|
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("
|
|
304
|
+
expect(result[0]).toBe("12 AM");
|
|
305
305
|
expect(result[1]).toBe("12 PM");
|
|
306
|
-
expect(result[2]).toBe("
|
|
306
|
+
expect(result[2]).toBe("12 AM");
|
|
307
307
|
expect(result[3]).toBe("12 PM");
|
|
308
|
-
expect(result[4]).toBe("
|
|
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(["", "
|
|
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("
|
|
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("
|
|
343
|
+
expect(result[4]).toBe("12 AM");
|
|
344
344
|
expect(result[7]).toBe("06 PM");
|
|
345
345
|
});
|
|
346
346
|
});
|