react-native-timer-picker 2.4.0 → 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 (32) hide show
  1. package/README.md +19 -18
  2. package/dist/commonjs/components/DurationScroll/DurationScroll.js +3 -1
  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 +3 -1
  6. package/dist/commonjs/components/PickerItem/PickerItem.js.map +1 -1
  7. package/dist/commonjs/components/TimerPicker/TimerPicker.js +8 -4
  8. package/dist/commonjs/components/TimerPicker/TimerPicker.js.map +1 -1
  9. package/dist/commonjs/components/TimerPicker/styles.js +9 -0
  10. package/dist/commonjs/components/TimerPicker/styles.js.map +1 -1
  11. package/dist/commonjs/tests/Modal.test.js +2 -22
  12. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  13. package/dist/commonjs/tests/TimerPickerModal.test.js +53 -53
  14. package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
  15. package/dist/module/components/DurationScroll/DurationScroll.js +3 -1
  16. package/dist/module/components/DurationScroll/DurationScroll.js.map +1 -1
  17. package/dist/module/components/DurationScroll/types.js.map +1 -1
  18. package/dist/module/components/PickerItem/PickerItem.js +3 -1
  19. package/dist/module/components/PickerItem/PickerItem.js.map +1 -1
  20. package/dist/module/components/TimerPicker/TimerPicker.js +8 -4
  21. package/dist/module/components/TimerPicker/TimerPicker.js.map +1 -1
  22. package/dist/module/components/TimerPicker/styles.js +9 -0
  23. package/dist/module/components/TimerPicker/styles.js.map +1 -1
  24. package/dist/module/tests/Modal.test.js +2 -22
  25. package/dist/module/tests/Modal.test.js.map +1 -1
  26. package/dist/module/tests/TimerPickerModal.test.js +9 -9
  27. package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
  28. package/dist/typescript/components/DurationScroll/types.d.ts +1 -0
  29. package/dist/typescript/components/PickerItem/PickerItem.d.ts +1 -0
  30. package/dist/typescript/components/TimerPicker/styles.d.ts +127 -0
  31. package/dist/typescript/components/TimerPickerModal/styles.d.ts +1 -0
  32. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","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","StyleSheet","create","pickerContainer","flexDirection","width","pickerLabelContainer","position","top","bottom","left","justifyContent","marginTop","fontWeight","color","pickerItemContainer","height","alignItems","textAlignVertical","overflow","pickerAmPmContainer","disabledPickerContainer","opacity","disabledPickerItem","maskedView","flex","pickerGradientOverlay","durationScrollFlatListContainer","durationScrollFlatList","paddingRight","marginRight","durationScrollFlatListContentContainer","exports"],"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 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 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 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};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAuBA,MAAMC,0BAA0B,GAAG,SAAS;AAC5C,MAAMC,oBAAoB,GAAG,SAAS;AACtC,MAAMC,2BAA2B,GAAG,SAAS;AAC7C,MAAMC,qBAAqB,GAAG,SAAS;AAEhC,MAAMC,cAAc,GACvBC,YAAiD,IAChD;EAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,qBAAA,EAAAC,sBAAA,EAAAC,mBAAA,EAAAC,qBAAA,EAAAC,mBAAA;EACD,MAAMC,eAAe,GACjB,CAAAR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEQ,eAAe,MAC5B,CAAAR,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,KAAK,MAAK,MAAM,GACzBd,0BAA0B,GAC1BE,2BAA2B,CAAC;EAEtC,MAAMa,SAAS,GACX,CAAAV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAES,KAAK,MAAK,MAAM,GACxBb,oBAAoB,GACpBE,qBAAqB;EAE/B,MAAMa,mBAAmB,GACrB,CAAAX,YAAY,aAAZA,YAAY,gBAAAC,qBAAA,GAAZD,YAAY,CAAEY,WAAW,cAAAX,qBAAA,uBAAzBA,qBAAA,CAA2BY,QAAQ,MACnCb,YAAY,aAAZA,YAAY,gBAAAE,kBAAA,GAAZF,YAAY,CAAEc,IAAI,cAAAZ,kBAAA,uBAAlBA,kBAAA,CAAoBW,QAAQ,KAC5B,EAAE;EACN,MAAME,kBAAkB,GACpB,CAAAf,YAAY,aAAZA,YAAY,gBAAAG,qBAAA,GAAZH,YAAY,CAAEgB,eAAe,cAAAb,qBAAA,uBAA7BA,qBAAA,CAA+BU,QAAQ,MACvCb,YAAY,aAAZA,YAAY,gBAAAI,sBAAA,GAAZJ,YAAY,CAAEY,WAAW,cAAAR,sBAAA,uBAAzBA,sBAAA,CAA2BS,QAAQ,MACnCb,YAAY,aAAZA,YAAY,gBAAAK,mBAAA,GAAZL,YAAY,CAAEc,IAAI,cAAAT,mBAAA,uBAAlBA,mBAAA,CAAoBQ,QAAQ,KAC5B,EAAE;EACN,MAAMI,kBAAkB,GACpB,CAAAjB,YAAY,aAAZA,YAAY,gBAAAM,qBAAA,GAAZN,YAAY,CAAEkB,UAAU,cAAAZ,qBAAA,uBAAxBA,qBAAA,CAA0BO,QAAQ,MAClCb,YAAY,aAAZA,YAAY,gBAAAO,mBAAA,GAAZP,YAAY,CAAEc,IAAI,cAAAP,mBAAA,uBAAlBA,mBAAA,CAAoBM,QAAQ,KAC5B,EAAE;;EAEN;EACA;EACA,MAAMM,yBAAyB,GAC3BF,kBAAkB,GAAGN,mBAAmB,GAAG,CAAC;EAChD,MAAMS,wBAAwB,GAC1BH,kBAAkB,GAAGF,kBAAkB,GAAG,CAAC;;EAE/C;EACA;EACA;EACA,MAAMM,0BAA0B,GAAG,CAAArB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsB,qBAAqB,KAAI,CAAC;EAC3E,MAAMC,wBAAwB,GAAG,EAAE;EACnC,MAAMD,qBAAqB,GACvBC,wBAAwB,GAAGF,0BAA0B;EAEzD,OAAOG,uBAAU,CAACC,MAAM,CAAC;IACrBC,eAAe,EAAE;MACbC,aAAa,EAAE,KAAK;MACpBnB,eAAe;MACfoB,KAAK,EAAE,MAAM;MACb,IAAG5B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE0B,eAAe;IACpC,CAAC;IACDG,oBAAoB,EAAE;MAClBC,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,GAAGX,qBAAqB,GAAG;MACjCY,cAAc,EAAE,QAAQ;MACxBC,SAAS,EAAEhB,yBAAyB;MACpC,IAAGnB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE6B,oBAAoB;IACzC,CAAC;IACDjB,WAAW,EAAE;MACTC,QAAQ,EAAE,EAAE;MACZuB,UAAU,EAAE,MAAM;MAClBC,KAAK,EAAE3B,SAAS;MAChB,IAAGV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEc,IAAI;MACrB,IAAGd,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEY,WAAW;IAChC,CAAC;IACD0B,mBAAmB,EAAE;MACjBX,aAAa,EAAE,KAAK;MACpBY,MAAM,EAAE,EAAE;MACVL,cAAc,EAAE,QAAQ;MACxBM,UAAU,EAAE,QAAQ;MACpB,IAAGxC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsC,mBAAmB;IACxC,CAAC;IACDpB,UAAU,EAAE;MACRuB,iBAAiB,EAAE,QAAQ;MAC3B5B,QAAQ,EAAE,EAAE;MACZ6B,QAAQ,EAAE,SAAS;MACnBL,KAAK,EAAE3B,SAAS;MAChB,IAAGV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEc,IAAI;MACrB,IAAGd,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEkB,UAAU;IAC/B,CAAC;IACDyB,mBAAmB,EAAE;MACjBb,QAAQ,EAAE,UAAU;MACpBC,GAAG,EAAE,CAAC;MACNC,MAAM,EAAE,CAAC;MACTC,IAAI,EAAE,GAAGX,qBAAqB,GAAG;MACjCY,cAAc,EAAE,QAAQ;MACxBC,SAAS,EAAEf,wBAAwB;MACnC,IAAGpB,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE6B,oBAAoB;MACrC,IAAG7B,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE2C,mBAAmB;IACxC,CAAC;IACD3B,eAAe,EAAE;MACbH,QAAQ,EAAE,EAAE;MACZuB,UAAU,EAAE,MAAM;MAClBC,KAAK,EAAE3B,SAAS;MAChB,IAAGV,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEc,IAAI;MACrB,IAAGd,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEY,WAAW;MAC5B,IAAGZ,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEgB,eAAe;IACpC,CAAC;IACD4B,uBAAuB,EAAE;MACrBC,OAAO,EAAE,GAAG;MACZ,IAAG7C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE4C,uBAAuB;IAC5C,CAAC;IACDE,kBAAkB,EAAE;MAChBD,OAAO,EAAE,GAAG;MACZ,IAAG7C,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAE8C,kBAAkB;IACvC,CAAC;IACDC,UAAU,EAAE;MACRC,IAAI,EAAE;IACV,CAAC;IACDC,qBAAqB,EAAE;MACnBnB,QAAQ,EAAE,UAAU;MACpBF,KAAK,EAAE,MAAM;MACbW,MAAM,EAAE,MAAM;MACd,IAAGvC,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEiD,qBAAqB;IAC1C,CAAC;IACDC,+BAA+B,EAAE;MAC7BF,IAAI,EAAE,CAAC;MACP,IAAGhD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEkD,+BAA+B;IACpD,CAAC;IACDC,sBAAsB,EAAE;MACpB;MACA;MACAC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,MAAM;MACnB,IAAGrD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEmD,sBAAsB;IAC3C,CAAC;IACDG,sCAAsC,EAAE;MACpC,IAAGtD,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEsD,sCAAsC;IAC3D;EACJ,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAxD,cAAA,GAAAA,cAAA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","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","StyleSheet","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","exports"],"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":[]}
@@ -63,21 +63,10 @@ describe("Modal", () => {
63
63
  const overlay = getByTestId("modal-backdrop");
64
64
  expect(() => _reactNative.fireEvent.press(overlay)).not.toThrow();
65
65
  });
66
- it("renders multiple children", () => {
67
- const {
68
- getByText
69
- } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
70
- isVisible: true
71
- }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "First Child"), /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Second Child")));
72
- const firstChild = getByText("First Child");
73
- const secondChild = getByText("Second Child");
74
- expect(firstChild).toBeDefined();
75
- expect(secondChild).toBeDefined();
76
- });
77
66
  it("handles rapid visibility changes", () => {
78
67
  const {
79
- rerender,
80
- getByTestId
68
+ getByTestId,
69
+ rerender
81
70
  } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
82
71
  isVisible: true
83
72
  }));
@@ -106,14 +95,5 @@ describe("Modal", () => {
106
95
  _reactNative.fireEvent.press(overlay);
107
96
  expect(onOverlayPressMock).toHaveBeenCalledTimes(1);
108
97
  });
109
- it("renders children with complex structure", () => {
110
- const {
111
- getByText
112
- } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_Modal.default, {
113
- isVisible: true
114
- }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Parent"), /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Child")));
115
- expect(getByText("Parent")).toBeDefined();
116
- expect(getByText("Child")).toBeDefined();
117
- });
118
98
  });
119
99
  //# sourceMappingURL=Modal.test.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","e","__esModule","default","describe","beforeEach","jest","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","it","getByTestId","render","createElement","isVisible","component","expect","toBeDefined","getByText","Text","content","onOverlayPressMock","fn","onOverlayPress","overlay","fireEvent","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","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","e","__esModule","default","describe","beforeEach","jest","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","it","getByTestId","render","createElement","isVisible","component","expect","toBeDefined","getByText","Text","content","onOverlayPressMock","fn","onOverlayPress","overlay","fireEvent","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,8 +1,8 @@
1
1
  "use strict";
2
2
 
3
3
  var _react = _interopRequireDefault(require("react"));
4
- var _reactNative = require("react-native");
5
- var _reactNative2 = require("@testing-library/react-native");
4
+ var _reactNative = require("@testing-library/react-native");
5
+ var _reactNative2 = require("react-native");
6
6
  var _TimerPickerModal = _interopRequireDefault(require("../components/TimerPickerModal"));
7
7
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
8
8
  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); }
@@ -15,7 +15,7 @@ describe("TimerPickerModal", () => {
15
15
  afterEach(() => {
16
16
  jest.runOnlyPendingTimers();
17
17
  jest.useRealTimers();
18
- (0, _reactNative2.cleanup)();
18
+ (0, _reactNative.cleanup)();
19
19
  });
20
20
  const defaultProps = {
21
21
  visible: true,
@@ -26,62 +26,62 @@ describe("TimerPickerModal", () => {
26
26
  it("renders without crashing", () => {
27
27
  const {
28
28
  getByTestId
29
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
29
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
30
30
  const component = getByTestId("timer-picker-modal");
31
31
  expect(component).toBeDefined();
32
32
  });
33
33
  it("calls onConfirm when Confirm button is pressed", () => {
34
34
  const {
35
35
  getByText
36
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
36
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
37
37
  const confirmButton = getByText("Confirm");
38
- _reactNative2.fireEvent.press(confirmButton);
38
+ _reactNative.fireEvent.press(confirmButton);
39
39
  expect(mockOnConfirm).toHaveBeenCalled();
40
40
  });
41
41
  it("calls onCancel when Cancel button is pressed", () => {
42
42
  const {
43
43
  getByText
44
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
44
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
45
45
  const cancelButton = getByText("Cancel");
46
- _reactNative2.fireEvent.press(cancelButton);
46
+ _reactNative.fireEvent.press(cancelButton);
47
47
  expect(mockOnCancel).toHaveBeenCalled();
48
48
  });
49
49
  it("hides the modal when Cancel button is pressed", () => {
50
50
  const setIsVisibleMock = jest.fn();
51
51
  const {
52
52
  getByText
53
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
53
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
54
54
  setIsVisible: setIsVisibleMock
55
55
  })));
56
56
  const cancelButton = getByText("Cancel");
57
- _reactNative2.fireEvent.press(cancelButton);
57
+ _reactNative.fireEvent.press(cancelButton);
58
58
  expect(setIsVisibleMock).toHaveBeenCalledWith(false);
59
59
  });
60
60
  it("hides the modal when overlay is pressed", () => {
61
61
  const setIsVisibleMock = jest.fn();
62
62
  const {
63
63
  getByTestId
64
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
64
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
65
65
  closeOnOverlayPress: true,
66
66
  setIsVisible: setIsVisibleMock
67
67
  })));
68
68
  const overlay = getByTestId("modal-backdrop");
69
- _reactNative2.fireEvent.press(overlay);
69
+ _reactNative.fireEvent.press(overlay);
70
70
  expect(setIsVisibleMock).toHaveBeenCalledWith(false);
71
71
  });
72
72
  it("calls onConfirm with selected duration when Confirm button is pressed", () => {
73
73
  const {
74
74
  getByText
75
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
75
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, defaultProps));
76
76
  // Select duration in TimerPicker, assuming its interaction is tested separately
77
77
  const confirmButton = getByText("Confirm");
78
- _reactNative2.fireEvent.press(confirmButton);
78
+ _reactNative.fireEvent.press(confirmButton);
79
79
  expect(mockOnConfirm).toHaveBeenCalledWith(expect.objectContaining({}));
80
80
  });
81
81
  it("renders but is not visible when visible prop is false", () => {
82
82
  const {
83
83
  getByTestId
84
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
84
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
85
85
  visible: false
86
86
  })));
87
87
  const modal = getByTestId("timer-picker-modal");
@@ -92,9 +92,9 @@ describe("TimerPickerModal", () => {
92
92
  it("renders with custom button labels", () => {
93
93
  const {
94
94
  getByText
95
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
96
- confirmButtonText: "OK",
97
- cancelButtonText: "Dismiss"
95
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
96
+ cancelButtonText: "Dismiss",
97
+ confirmButtonText: "OK"
98
98
  })));
99
99
  expect(getByText("OK")).toBeDefined();
100
100
  expect(getByText("Dismiss")).toBeDefined();
@@ -102,7 +102,7 @@ describe("TimerPickerModal", () => {
102
102
  it("renders with custom modal title", () => {
103
103
  const {
104
104
  getByText
105
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
105
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
106
106
  modalTitle: "Select Time"
107
107
  })));
108
108
  expect(getByText("Select Time")).toBeDefined();
@@ -111,18 +111,18 @@ describe("TimerPickerModal", () => {
111
111
  const setIsVisibleMock = jest.fn();
112
112
  const {
113
113
  getByTestId
114
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
114
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
115
115
  closeOnOverlayPress: false,
116
116
  setIsVisible: setIsVisibleMock
117
117
  })));
118
118
  const overlay = getByTestId("modal-backdrop");
119
- _reactNative2.fireEvent.press(overlay);
119
+ _reactNative.fireEvent.press(overlay);
120
120
  expect(setIsVisibleMock).not.toHaveBeenCalled();
121
121
  });
122
122
  it("hides Cancel button when hideCancelButton is true", () => {
123
123
  const {
124
124
  queryByText
125
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
125
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
126
126
  hideCancelButton: true
127
127
  })));
128
128
  expect(queryByText("Cancel")).toBeNull();
@@ -130,7 +130,7 @@ describe("TimerPickerModal", () => {
130
130
  it("renders with initial value", () => {
131
131
  const {
132
132
  getByTestId
133
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
133
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
134
134
  initialValue: {
135
135
  hours: 2,
136
136
  minutes: 30,
@@ -142,7 +142,7 @@ describe("TimerPickerModal", () => {
142
142
  it("renders with custom intervals", () => {
143
143
  const {
144
144
  getByTestId
145
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
145
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
146
146
  hourInterval: 2,
147
147
  minuteInterval: 15,
148
148
  secondInterval: 5
@@ -154,19 +154,19 @@ describe("TimerPickerModal", () => {
154
154
  const onCancelMock = jest.fn();
155
155
  const {
156
156
  getByText
157
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
157
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
158
158
  onCancel: onCancelMock,
159
159
  setIsVisible: setIsVisibleMock
160
160
  })));
161
161
  const cancelButton = getByText("Cancel");
162
- _reactNative2.fireEvent.press(cancelButton);
162
+ _reactNative.fireEvent.press(cancelButton);
163
163
  expect(onCancelMock).toHaveBeenCalled();
164
164
  expect(setIsVisibleMock).toHaveBeenCalledWith(false);
165
165
  });
166
166
  it("hides specific time units when respective hide props are provided", () => {
167
167
  const {
168
168
  getByTestId
169
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
169
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
170
170
  hideHours: true,
171
171
  hideSeconds: true
172
172
  })));
@@ -176,30 +176,30 @@ describe("TimerPickerModal", () => {
176
176
  it("renders without crashing with all optional props", () => {
177
177
  const {
178
178
  getByTestId
179
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
180
- modalTitle: "Pick Duration",
181
- confirmButtonText: "Done",
179
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
182
180
  cancelButtonText: "Close",
183
- hourLabel: "h",
184
- minuteLabel: "m",
185
- secondLabel: "s",
181
+ confirmButtonText: "Done",
182
+ hideDays: false,
186
183
  hideHours: false,
187
184
  hideMinutes: false,
188
185
  hideSeconds: false,
189
- hideDays: false
186
+ hourLabel: "h",
187
+ minuteLabel: "m",
188
+ modalTitle: "Pick Duration",
189
+ secondLabel: "s"
190
190
  })));
191
191
  expect(getByTestId("timer-picker-modal")).toBeDefined();
192
192
  });
193
193
  it("renders custom cancel button when provided", () => {
194
194
  const CustomButton = ({
195
195
  onPress
196
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
196
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
197
197
  onPress: onPress,
198
198
  testID: "custom-cancel-button"
199
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
199
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
200
200
  const {
201
201
  getByTestId
202
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
202
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
203
203
  cancelButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
204
204
  })));
205
205
  expect(getByTestId("custom-cancel-button")).toBeDefined();
@@ -207,13 +207,13 @@ describe("TimerPickerModal", () => {
207
207
  it("renders custom confirm button when provided", () => {
208
208
  const CustomButton = ({
209
209
  onPress
210
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
210
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
211
211
  onPress: onPress,
212
212
  testID: "custom-confirm-button"
213
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
213
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
214
214
  const {
215
215
  getByTestId
216
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
216
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
217
217
  confirmButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
218
218
  })));
219
219
  expect(getByTestId("custom-confirm-button")).toBeDefined();
@@ -221,51 +221,51 @@ describe("TimerPickerModal", () => {
221
221
  it("calls onCancel when custom cancel button is pressed", () => {
222
222
  const CustomButton = ({
223
223
  onPress
224
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
224
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
225
225
  onPress: onPress,
226
226
  testID: "custom-cancel-button"
227
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
227
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
228
228
  const {
229
229
  getByTestId
230
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
230
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
231
231
  cancelButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
232
232
  })));
233
233
  const customCancelButton = getByTestId("custom-cancel-button");
234
- _reactNative2.fireEvent.press(customCancelButton);
234
+ _reactNative.fireEvent.press(customCancelButton);
235
235
  expect(mockOnCancel).toHaveBeenCalled();
236
236
  });
237
237
  it("calls onConfirm when custom confirm button is pressed", () => {
238
238
  const CustomButton = ({
239
239
  onPress
240
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
240
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
241
241
  onPress: onPress,
242
242
  testID: "custom-confirm-button"
243
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
243
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
244
244
  const {
245
245
  getByTestId
246
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
246
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
247
247
  confirmButton: /*#__PURE__*/_react.default.createElement(CustomButton, null)
248
248
  })));
249
249
  const customConfirmButton = getByTestId("custom-confirm-button");
250
- _reactNative2.fireEvent.press(customConfirmButton);
250
+ _reactNative.fireEvent.press(customConfirmButton);
251
251
  expect(mockOnConfirm).toHaveBeenCalled();
252
252
  });
253
253
  it("renders both custom cancel and confirm buttons when provided", () => {
254
254
  const CustomCancelButton = ({
255
255
  onPress
256
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
256
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
257
257
  onPress: onPress,
258
258
  testID: "custom-cancel-button"
259
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Cancel"));
259
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Cancel"));
260
260
  const CustomConfirmButton = ({
261
261
  onPress
262
- }) => /*#__PURE__*/_react.default.createElement(_reactNative.TouchableOpacity, {
262
+ }) => /*#__PURE__*/_react.default.createElement(_reactNative2.TouchableOpacity, {
263
263
  onPress: onPress,
264
264
  testID: "custom-confirm-button"
265
- }, /*#__PURE__*/_react.default.createElement(_reactNative.Text, null, "Custom Confirm"));
265
+ }, /*#__PURE__*/_react.default.createElement(_reactNative2.Text, null, "Custom Confirm"));
266
266
  const {
267
267
  getByTestId
268
- } = (0, _reactNative2.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
268
+ } = (0, _reactNative.render)(/*#__PURE__*/_react.default.createElement(_TimerPickerModal.default, _extends({}, defaultProps, {
269
269
  cancelButton: /*#__PURE__*/_react.default.createElement(CustomCancelButton, null),
270
270
  confirmButton: /*#__PURE__*/_react.default.createElement(CustomConfirmButton, null)
271
271
  })));
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_TimerPickerModal","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","confirmButton","fireEvent","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","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","TouchableOpacity","testID","Text","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","_interopRequireDefault","require","_reactNative","_reactNative2","_TimerPickerModal","e","__esModule","default","_extends","Object","assign","bind","n","arguments","length","t","r","hasOwnProperty","call","apply","describe","mockOnConfirm","jest","fn","mockOnCancel","beforeEach","useFakeTimers","afterEach","runOnlyPendingTimers","useRealTimers","cleanup","defaultProps","visible","setIsVisible","onConfirm","onCancel","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","confirmButton","fireEvent","press","toHaveBeenCalled","cancelButton","setIsVisibleMock","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","TouchableOpacity","testID","Text","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":[]}
@@ -37,6 +37,7 @@ const DurationScroll = /*#__PURE__*/forwardRef((props, ref) => {
37
37
  pmLabel,
38
38
  repeatNumbersNTimes = 3,
39
39
  repeatNumbersNTimesNotExplicitlySet,
40
+ selectedValue,
40
41
  styles,
41
42
  testID
42
43
  } = props;
@@ -152,8 +153,9 @@ const DurationScroll = /*#__PURE__*/forwardRef((props, ref) => {
152
153
  is12HourPicker: is12HourPicker,
153
154
  item: item,
154
155
  pmLabel: pmLabel,
156
+ selectedValue: selectedValue,
155
157
  styles: styles
156
- }), [adjustedLimited.max, adjustedLimited.min, allowFontScaling, amLabel, is12HourPicker, pmLabel, styles]);
158
+ }), [adjustedLimited.max, adjustedLimited.min, allowFontScaling, amLabel, is12HourPicker, pmLabel, selectedValue, styles]);
157
159
  const onScroll = useCallback(e => {
158
160
  // this function is only used when the picker is in a modal and/or has Haptic/Audio feedback
159
161
  // it is used to ensure that the modal gets the latest duration on clicking