react-native-timer-picker 1.3.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/README.md +6 -0
  2. package/dist/commonjs/components/Modal/index.js +13 -14
  3. package/dist/commonjs/components/Modal/index.js.map +1 -1
  4. package/dist/commonjs/components/TimerPicker/DurationScroll.js +51 -32
  5. package/dist/commonjs/components/TimerPicker/DurationScroll.js.map +1 -1
  6. package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js +23 -3
  7. package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js.map +1 -1
  8. package/dist/commonjs/components/TimerPicker/index.js +33 -28
  9. package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
  10. package/dist/commonjs/components/index.js +44 -39
  11. package/dist/commonjs/components/index.js.map +1 -1
  12. package/dist/commonjs/tests/Modal.test.js +3 -1
  13. package/dist/commonjs/tests/Modal.test.js.map +1 -1
  14. package/dist/commonjs/utils/generateNumbers.js +33 -10
  15. package/dist/commonjs/utils/generateNumbers.js.map +1 -1
  16. package/dist/commonjs/utils/padNumber.js +15 -0
  17. package/dist/commonjs/utils/padNumber.js.map +1 -0
  18. package/dist/module/components/Modal/index.js +13 -14
  19. package/dist/module/components/Modal/index.js.map +1 -1
  20. package/dist/module/components/TimerPicker/DurationScroll.js +52 -33
  21. package/dist/module/components/TimerPicker/DurationScroll.js.map +1 -1
  22. package/dist/module/components/TimerPicker/TimerPicker.styles.js +23 -3
  23. package/dist/module/components/TimerPicker/TimerPicker.styles.js.map +1 -1
  24. package/dist/module/components/TimerPicker/index.js +33 -28
  25. package/dist/module/components/TimerPicker/index.js.map +1 -1
  26. package/dist/module/components/index.js +44 -39
  27. package/dist/module/components/index.js.map +1 -1
  28. package/dist/module/tests/Modal.test.js +3 -1
  29. package/dist/module/tests/Modal.test.js.map +1 -1
  30. package/dist/module/utils/generateNumbers.js +31 -9
  31. package/dist/module/utils/generateNumbers.js.map +1 -1
  32. package/dist/module/utils/padNumber.js +8 -0
  33. package/dist/module/utils/padNumber.js.map +1 -0
  34. package/dist/typescript/components/TimerPicker/DurationScroll.d.ts +3 -0
  35. package/dist/typescript/components/TimerPicker/TimerPicker.styles.d.ts +4 -0
  36. package/dist/typescript/components/TimerPicker/index.d.ts +3 -0
  37. package/dist/typescript/utils/generateNumbers.d.ts +7 -2
  38. package/dist/typescript/utils/padNumber.d.ts +3 -0
  39. package/package.json +1 -1
  40. package/src/components/Modal/index.tsx +2 -2
  41. package/src/components/TimerPicker/DurationScroll.tsx +52 -10
  42. package/src/components/TimerPicker/TimerPicker.styles.ts +32 -1
  43. package/src/components/TimerPicker/index.tsx +26 -9
  44. package/src/components/index.tsx +9 -3
  45. package/src/tests/Modal.test.tsx +1 -1
  46. package/src/utils/generateNumbers.ts +40 -10
  47. package/src/utils/padNumber.ts +10 -0
  48. package/dist/commonjs/utils/padWithZero.js +0 -15
  49. package/dist/commonjs/utils/padWithZero.js.map +0 -1
  50. package/dist/module/utils/padWithZero.js +0 -8
  51. package/dist/module/utils/padWithZero.js.map +0 -1
  52. package/dist/typescript/utils/padWithZero.d.ts +0 -1
  53. package/src/utils/padWithZero.ts +0 -7
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DurationScroll","_interopRequireDefault","_TimerPicker","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","TimerPicker","forwardRef","_ref","ref","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","aggressivelyGetLatestDuration","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","checkedPadWithNItems","Math","round","useMemo","generateStyles","selectedHours","setSelectedHours","useState","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","useEffect","hours","minutes","seconds","hoursDurationScrollRef","useRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","View","style","pickerContainer","testID","numberOfItems","label","initialValue","limit","padNumbersWithZero","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerProps {\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n aggressivelyGetLatestDuration?: boolean;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel = \"h\",\n minuteLabel = \"m\",\n secondLabel = \"s\",\n padWithNItems = 1,\n disableInfiniteScroll = false,\n aggressivelyGetLatestDuration = false,\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n latestDuration: {\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={hourLabel}\n initialValue={initialHours}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel}\n initialValue={initialMinutes}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel}\n initialValue={initialSeconds}\n aggressivelyGetLatestDuration={aggressivelyGetLatestDuration}\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_DurationScroll","_interopRequireDefault","_TimerPicker","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","TimerPicker","forwardRef","onDurationChange","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","aggressivelyGetLatestDuration","use12HourPicker","amLabel","pmLabel","LinearGradient","pickerContainerProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","checkedPadWithNItems","Math","round","useMemo","generateStyles","selectedHours","setSelectedHours","useState","selectedMinutes","setSelectedMinutes","selectedSeconds","setSelectedSeconds","useEffect","hours","minutes","seconds","hoursDurationScrollRef","useRef","minutesDurationScrollRef","secondsDurationScrollRef","useImperativeHandle","_hoursDurationScrollR3","_minutesDurationScrol3","_secondsDurationScrol3","reset","options","_hoursDurationScrollR","_minutesDurationScrol","_secondsDurationScrol","current","setValue","value","_hoursDurationScrollR2","_minutesDurationScrol2","_secondsDurationScrol2","latestDuration","createElement","View","style","pickerContainer","testID","numberOfItems","label","undefined","initialValue","limit","is12HourPicker","padNumbersWithZero","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useEffect,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { View } from \"react-native\";\n\nimport DurationScroll, { DurationScrollRef, LimitType } from \"./DurationScroll\";\n\nimport { generateStyles, CustomTimerPickerStyles } from \"./TimerPicker.styles\";\nimport { LinearGradientProps } from \"./DurationScroll\";\n\nexport interface TimerPickerRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerProps {\n onDurationChange?: (duration: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n initialHours?: number;\n initialMinutes?: number;\n initialSeconds?: number;\n aggressivelyGetLatestDuration?: boolean;\n use12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n hideHours?: boolean;\n hideMinutes?: boolean;\n hideSeconds?: boolean;\n hourLimit?: LimitType;\n minuteLimit?: LimitType;\n secondLimit?: LimitType;\n hourLabel?: string | React.ReactElement;\n minuteLabel?: string | React.ReactElement;\n secondLabel?: string | React.ReactElement;\n padWithNItems?: number;\n disableInfiniteScroll?: boolean;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n pickerContainerProps?: React.ComponentProps<typeof View>;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n styles?: CustomTimerPickerStyles;\n}\n\nconst TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(\n (\n {\n onDurationChange,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n aggressivelyGetLatestDuration = false,\n use12HourPicker = false,\n amLabel = \"am\",\n pmLabel = \"pm\",\n LinearGradient,\n pickerContainerProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const checkedPadWithNItems =\n padWithNItems >= 0 ? Math.round(padWithNItems) : 0;\n\n const styles = useMemo(\n () =>\n generateStyles(customStyles, {\n padWithNItems: checkedPadWithNItems,\n }),\n\n [checkedPadWithNItems, customStyles]\n );\n\n const [selectedHours, setSelectedHours] = useState(initialHours);\n const [selectedMinutes, setSelectedMinutes] = useState(initialMinutes);\n const [selectedSeconds, setSelectedSeconds] = useState(initialSeconds);\n\n useEffect(() => {\n onDurationChange?.({\n hours: selectedHours,\n minutes: selectedMinutes,\n seconds: selectedSeconds,\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedHours, selectedMinutes, selectedSeconds]);\n\n const hoursDurationScrollRef = useRef<DurationScrollRef>(null);\n const minutesDurationScrollRef = useRef<DurationScrollRef>(null);\n const secondsDurationScrollRef = useRef<DurationScrollRef>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n setSelectedHours(initialHours);\n setSelectedMinutes(initialMinutes);\n setSelectedSeconds(initialSeconds);\n hoursDurationScrollRef.current?.reset(options);\n minutesDurationScrollRef.current?.reset(options);\n secondsDurationScrollRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedHours(value.hours);\n setSelectedMinutes(value.minutes);\n setSelectedSeconds(value.seconds);\n hoursDurationScrollRef.current?.setValue(value.hours, options);\n minutesDurationScrollRef.current?.setValue(\n value.minutes,\n options\n );\n secondsDurationScrollRef.current?.setValue(\n value.seconds,\n options\n );\n },\n latestDuration: {\n hours: hoursDurationScrollRef.current?.latestDuration,\n minutes: minutesDurationScrollRef.current?.latestDuration,\n seconds: secondsDurationScrollRef.current?.latestDuration,\n },\n }));\n\n return (\n <View\n {...pickerContainerProps}\n style={styles.pickerContainer}\n testID=\"timer-picker\">\n {!hideHours ? (\n <DurationScroll\n ref={hoursDurationScrollRef}\n numberOfItems={23}\n label={\n hourLabel ?? (!use12HourPicker ? \"h\" : undefined)\n }\n initialValue={initialHours}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedHours}\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={hourLimit}\n LinearGradient={LinearGradient}\n is12HourPicker={use12HourPicker}\n amLabel={amLabel}\n pmLabel={pmLabel}\n styles={styles}\n testID=\"duration-scroll-hour\"\n />\n ) : null}\n {!hideMinutes ? (\n <DurationScroll\n ref={minutesDurationScrollRef}\n numberOfItems={59}\n label={minuteLabel ?? \"m\"}\n initialValue={initialMinutes}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedMinutes}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={minuteLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-minute\"\n />\n ) : null}\n {!hideSeconds ? (\n <DurationScroll\n ref={secondsDurationScrollRef}\n numberOfItems={59}\n label={secondLabel ?? \"s\"}\n initialValue={initialSeconds}\n aggressivelyGetLatestDuration={\n aggressivelyGetLatestDuration\n }\n onDurationChange={setSelectedSeconds}\n padNumbersWithZero\n pickerGradientOverlayProps={pickerGradientOverlayProps}\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n disableInfiniteScroll={disableInfiniteScroll}\n padWithNItems={checkedPadWithNItems}\n limit={secondLimit}\n LinearGradient={LinearGradient}\n styles={styles}\n testID=\"duration-scroll-second\"\n />\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(TimerPicker);\n"],"mappings":"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"}
@@ -13,45 +13,47 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
13
13
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
14
14
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
15
15
  function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
16
- const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
17
- let {
18
- visible,
19
- setIsVisible,
20
- onConfirm,
21
- onCancel,
22
- onDurationChange,
23
- closeOnOverlayPress,
24
- initialHours = 0,
25
- initialMinutes = 0,
26
- initialSeconds = 0,
27
- hideHours = false,
28
- hideMinutes = false,
29
- hideSeconds = false,
30
- hourLimit,
31
- minuteLimit,
32
- secondLimit,
33
- hourLabel = "h",
34
- minuteLabel = "m",
35
- secondLabel = "s",
36
- padWithNItems = 1,
37
- disableInfiniteScroll = false,
38
- hideCancelButton = false,
39
- confirmButtonText = "Confirm",
40
- cancelButtonText = "Cancel",
41
- modalTitle,
42
- LinearGradient,
43
- modalProps,
44
- containerProps,
45
- contentContainerProps,
46
- pickerContainerProps,
47
- buttonContainerProps,
48
- buttonTouchableOpacityProps,
49
- modalTitleProps,
50
- pickerGradientOverlayProps,
51
- topPickerGradientOverlayProps,
52
- bottomPickerGradientOverlayProps,
53
- styles: customStyles
54
- } = _ref;
16
+ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)(({
17
+ visible,
18
+ setIsVisible,
19
+ onConfirm,
20
+ onCancel,
21
+ onDurationChange,
22
+ closeOnOverlayPress,
23
+ initialHours = 0,
24
+ initialMinutes = 0,
25
+ initialSeconds = 0,
26
+ hideHours = false,
27
+ hideMinutes = false,
28
+ hideSeconds = false,
29
+ hourLimit,
30
+ minuteLimit,
31
+ secondLimit,
32
+ hourLabel,
33
+ minuteLabel,
34
+ secondLabel,
35
+ padWithNItems = 1,
36
+ disableInfiniteScroll = false,
37
+ use12HourPicker,
38
+ amLabel,
39
+ pmLabel,
40
+ hideCancelButton = false,
41
+ confirmButtonText = "Confirm",
42
+ cancelButtonText = "Cancel",
43
+ modalTitle,
44
+ LinearGradient,
45
+ modalProps,
46
+ containerProps,
47
+ contentContainerProps,
48
+ pickerContainerProps,
49
+ buttonContainerProps,
50
+ buttonTouchableOpacityProps,
51
+ modalTitleProps,
52
+ pickerGradientOverlayProps,
53
+ topPickerGradientOverlayProps,
54
+ bottomPickerGradientOverlayProps,
55
+ styles: customStyles
56
+ }, ref) => {
55
57
  const styles = (0, _TimerPickerModal.generateStyles)(customStyles);
56
58
  const timerPickerRef = (0, _react.useRef)(null);
57
59
  const [selectedDuration, setSelectedDuration] = (0, _react.useState)({
@@ -150,6 +152,9 @@ const TimerPickerModal = /*#__PURE__*/(0, _react.forwardRef)((_ref, ref) => {
150
152
  secondLabel: secondLabel,
151
153
  padWithNItems: padWithNItems,
152
154
  disableInfiniteScroll: disableInfiniteScroll,
155
+ use12HourPicker: use12HourPicker,
156
+ amLabel: amLabel,
157
+ pmLabel: pmLabel,
153
158
  LinearGradient: LinearGradient,
154
159
  pickerContainerProps: pickerContainerProps,
155
160
  pickerGradientOverlayProps: pickerGradientOverlayProps,
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TimerPicker","_interopRequireDefault","_Modal","_TimerPickerModal","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","TimerPickerModal","forwardRef","_ref","ref","visible","setIsVisible","onConfirm","onCancel","onDurationChange","closeOnOverlayPress","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","hideCancelButton","confirmButtonText","cancelButtonText","modalTitle","LinearGradient","modalProps","containerProps","contentContainerProps","pickerContainerProps","buttonContainerProps","buttonTouchableOpacityProps","modalTitleProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","generateStyles","timerPickerRef","useRef","selectedDuration","setSelectedDuration","useState","hours","minutes","seconds","confirmedDuration","setConfirmedDuration","hideModalHandler","confirmHandler","_timerPickerRef$curre","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","current","newDuration","cancelHandler","durationChangeHandler","useCallback","duration","useImperativeHandle","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","reset","options","_timerPickerRef$curre2","initialDuration","setValue","value","_timerPickerRef$curre3","createElement","isVisible","onOverlayPress","undefined","testID","View","style","container","contentContainer","Text","aggressivelyGetLatestDuration","buttonContainer","TouchableOpacity","onPress","button","cancelButton","confirmButton","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport TimerPicker, { TimerPickerProps, TimerPickerRef } from \"./TimerPicker\";\nimport Modal from \"./Modal\";\n\nimport {\n generateStyles,\n CustomTimerPickerModalStyles,\n} from \"./TimerPickerModal.styles\";\n\nexport interface TimerPickerModalRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n visible: boolean;\n setIsVisible: (isVisible: boolean) => void;\n onConfirm: ({\n hours,\n minutes,\n seconds,\n }: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n onCancel?: () => void;\n closeOnOverlayPress?: boolean;\n hideCancelButton?: boolean;\n confirmButtonText?: string;\n cancelButtonText?: string;\n modalTitle?: string;\n modalProps?: React.ComponentProps<typeof Modal>;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n styles?: CustomTimerPickerModalStyles;\n}\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (\n {\n visible,\n setIsVisible,\n onConfirm,\n onCancel,\n onDurationChange,\n closeOnOverlayPress,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel = \"h\",\n minuteLabel = \"m\",\n secondLabel = \"s\",\n padWithNItems = 1,\n disableInfiniteScroll = false,\n hideCancelButton = false,\n confirmButtonText = \"Confirm\",\n cancelButtonText = \"Cancel\",\n modalTitle,\n LinearGradient,\n modalProps,\n containerProps,\n contentContainerProps,\n pickerContainerProps,\n buttonContainerProps,\n buttonTouchableOpacityProps,\n modalTitleProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const styles = generateStyles(customStyles);\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const [selectedDuration, setSelectedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n const [confirmedDuration, setConfirmedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n\n const hideModalHandler = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirmHandler = () => {\n const latestDuration = timerPickerRef.current?.latestDuration;\n const newDuration = {\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes:\n latestDuration?.minutes?.current ??\n selectedDuration.minutes,\n seconds:\n latestDuration?.seconds?.current ??\n selectedDuration.seconds,\n };\n setConfirmedDuration(newDuration);\n onConfirm(newDuration);\n };\n\n const cancelHandler = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChangeHandler = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n const initialDuration = {\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n };\n setSelectedDuration(initialDuration);\n setConfirmedDuration(initialDuration);\n timerPickerRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={\n closeOnOverlayPress ? hideModalHandler : undefined\n }\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n onDurationChange={durationChangeHandler}\n initialHours={confirmedDuration.hours}\n initialMinutes={confirmedDuration.minutes}\n initialSeconds={confirmedDuration.seconds}\n aggressivelyGetLatestDuration={true}\n hideHours={hideHours}\n hideMinutes={hideMinutes}\n hideSeconds={hideSeconds}\n hourLimit={hourLimit}\n minuteLimit={minuteLimit}\n secondLimit={secondLimit}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n secondLabel={secondLabel}\n padWithNItems={padWithNItems}\n disableInfiniteScroll={disableInfiniteScroll}\n LinearGradient={LinearGradient}\n pickerContainerProps={pickerContainerProps}\n pickerGradientOverlayProps={\n pickerGradientOverlayProps\n }\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n styles={customStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n onPress={cancelHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n onPress={confirmHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_TimerPicker","_interopRequireDefault","_Modal","_TimerPickerModal","obj","__esModule","default","_getRequireWildcardCache","e","WeakMap","r","t","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","TimerPickerModal","forwardRef","visible","setIsVisible","onConfirm","onCancel","onDurationChange","closeOnOverlayPress","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","use12HourPicker","amLabel","pmLabel","hideCancelButton","confirmButtonText","cancelButtonText","modalTitle","LinearGradient","modalProps","containerProps","contentContainerProps","pickerContainerProps","buttonContainerProps","buttonTouchableOpacityProps","modalTitleProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","generateStyles","timerPickerRef","useRef","selectedDuration","setSelectedDuration","useState","hours","minutes","seconds","confirmedDuration","setConfirmedDuration","hideModalHandler","confirmHandler","_timerPickerRef$curre","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","current","newDuration","cancelHandler","durationChangeHandler","useCallback","duration","useImperativeHandle","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","reset","options","_timerPickerRef$curre2","initialDuration","setValue","value","_timerPickerRef$curre3","createElement","isVisible","onOverlayPress","undefined","testID","View","style","container","contentContainer","Text","aggressivelyGetLatestDuration","buttonContainer","TouchableOpacity","onPress","button","cancelButton","confirmButton","_default","exports","React","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useCallback,\n useImperativeHandle,\n useRef,\n useState,\n} from \"react\";\nimport { View, Text, TouchableOpacity } from \"react-native\";\n\nimport TimerPicker, { TimerPickerProps, TimerPickerRef } from \"./TimerPicker\";\nimport Modal from \"./Modal\";\n\nimport {\n generateStyles,\n CustomTimerPickerModalStyles,\n} from \"./TimerPickerModal.styles\";\n\nexport interface TimerPickerModalRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (\n value: {\n hours: number;\n minutes: number;\n seconds: number;\n },\n options?: { animated?: boolean }\n ) => void;\n latestDuration: {\n hours: MutableRefObject<number> | undefined;\n minutes: MutableRefObject<number> | undefined;\n seconds: MutableRefObject<number> | undefined;\n };\n}\n\nexport interface TimerPickerModalProps extends TimerPickerProps {\n visible: boolean;\n setIsVisible: (isVisible: boolean) => void;\n onConfirm: ({\n hours,\n minutes,\n seconds,\n }: {\n hours: number;\n minutes: number;\n seconds: number;\n }) => void;\n onCancel?: () => void;\n closeOnOverlayPress?: boolean;\n hideCancelButton?: boolean;\n confirmButtonText?: string;\n cancelButtonText?: string;\n modalTitle?: string;\n modalProps?: React.ComponentProps<typeof Modal>;\n containerProps?: React.ComponentProps<typeof View>;\n contentContainerProps?: React.ComponentProps<typeof View>;\n buttonContainerProps?: React.ComponentProps<typeof View>;\n buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;\n modalTitleProps?: React.ComponentProps<typeof Text>;\n styles?: CustomTimerPickerModalStyles;\n}\n\nconst TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(\n (\n {\n visible,\n setIsVisible,\n onConfirm,\n onCancel,\n onDurationChange,\n closeOnOverlayPress,\n initialHours = 0,\n initialMinutes = 0,\n initialSeconds = 0,\n hideHours = false,\n hideMinutes = false,\n hideSeconds = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n use12HourPicker,\n amLabel,\n pmLabel,\n hideCancelButton = false,\n confirmButtonText = \"Confirm\",\n cancelButtonText = \"Cancel\",\n modalTitle,\n LinearGradient,\n modalProps,\n containerProps,\n contentContainerProps,\n pickerContainerProps,\n buttonContainerProps,\n buttonTouchableOpacityProps,\n modalTitleProps,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n styles: customStyles,\n },\n ref\n ): React.ReactElement => {\n const styles = generateStyles(customStyles);\n\n const timerPickerRef = useRef<TimerPickerRef>(null);\n\n const [selectedDuration, setSelectedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n const [confirmedDuration, setConfirmedDuration] = useState({\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n });\n\n const hideModalHandler = () => {\n setSelectedDuration({\n hours: confirmedDuration.hours,\n minutes: confirmedDuration.minutes,\n seconds: confirmedDuration.seconds,\n });\n setIsVisible(false);\n };\n\n const confirmHandler = () => {\n const latestDuration = timerPickerRef.current?.latestDuration;\n const newDuration = {\n hours: latestDuration?.hours?.current ?? selectedDuration.hours,\n minutes:\n latestDuration?.minutes?.current ??\n selectedDuration.minutes,\n seconds:\n latestDuration?.seconds?.current ??\n selectedDuration.seconds,\n };\n setConfirmedDuration(newDuration);\n onConfirm(newDuration);\n };\n\n const cancelHandler = () => {\n setIsVisible(false);\n setSelectedDuration(confirmedDuration);\n onCancel?.();\n };\n\n // wrapped in useCallback to avoid unnecessary re-renders of TimerPicker\n const durationChangeHandler = useCallback(\n (duration: { hours: number; minutes: number; seconds: number }) => {\n setSelectedDuration(duration);\n onDurationChange?.(duration);\n },\n [onDurationChange]\n );\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n const initialDuration = {\n hours: initialHours,\n minutes: initialMinutes,\n seconds: initialSeconds,\n };\n setSelectedDuration(initialDuration);\n setConfirmedDuration(initialDuration);\n timerPickerRef.current?.reset(options);\n },\n setValue: (value, options) => {\n setSelectedDuration(value);\n setConfirmedDuration(value);\n timerPickerRef.current?.setValue(value, options);\n },\n latestDuration: {\n hours: timerPickerRef.current?.latestDuration?.hours,\n minutes: timerPickerRef.current?.latestDuration?.minutes,\n seconds: timerPickerRef.current?.latestDuration?.seconds,\n },\n }));\n\n return (\n <Modal\n isVisible={visible}\n onOverlayPress={\n closeOnOverlayPress ? hideModalHandler : undefined\n }\n {...modalProps}\n testID=\"timer-picker-modal\">\n <View {...containerProps} style={styles.container}>\n <View\n {...contentContainerProps}\n style={styles.contentContainer}>\n {modalTitle ? (\n <Text\n {...modalTitleProps}\n style={styles.modalTitle}>\n {modalTitle}\n </Text>\n ) : null}\n <TimerPicker\n ref={timerPickerRef}\n onDurationChange={durationChangeHandler}\n initialHours={confirmedDuration.hours}\n initialMinutes={confirmedDuration.minutes}\n initialSeconds={confirmedDuration.seconds}\n aggressivelyGetLatestDuration={true}\n hideHours={hideHours}\n hideMinutes={hideMinutes}\n hideSeconds={hideSeconds}\n hourLimit={hourLimit}\n minuteLimit={minuteLimit}\n secondLimit={secondLimit}\n hourLabel={hourLabel}\n minuteLabel={minuteLabel}\n secondLabel={secondLabel}\n padWithNItems={padWithNItems}\n disableInfiniteScroll={disableInfiniteScroll}\n use12HourPicker={use12HourPicker}\n amLabel={amLabel}\n pmLabel={pmLabel}\n LinearGradient={LinearGradient}\n pickerContainerProps={pickerContainerProps}\n pickerGradientOverlayProps={\n pickerGradientOverlayProps\n }\n topPickerGradientOverlayProps={\n topPickerGradientOverlayProps\n }\n bottomPickerGradientOverlayProps={\n bottomPickerGradientOverlayProps\n }\n styles={customStyles}\n />\n <View\n {...buttonContainerProps}\n style={styles.buttonContainer}>\n {!hideCancelButton ? (\n <TouchableOpacity\n onPress={cancelHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.cancelButton,\n ]}>\n {cancelButtonText}\n </Text>\n </TouchableOpacity>\n ) : null}\n <TouchableOpacity\n onPress={confirmHandler}\n {...buttonTouchableOpacityProps}>\n <Text\n style={[\n styles.button,\n styles.confirmButton,\n ]}>\n {confirmButtonText}\n </Text>\n </TouchableOpacity>\n </View>\n </View>\n </View>\n </Modal>\n );\n }\n);\n\nexport default React.memo(TimerPickerModal);\n"],"mappings":"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"}
@@ -9,7 +9,9 @@ describe("Modal", () => {
9
9
  it("renders without crashing", () => {
10
10
  const {
11
11
  getByTestId
12
- } = (0, _reactNative2.render)( /*#__PURE__*/_react.default.createElement(_Modal.default, null));
12
+ } = (0, _reactNative2.render)( /*#__PURE__*/_react.default.createElement(_Modal.default, {
13
+ isVisible: true
14
+ }));
13
15
  const component = getByTestId("modal");
14
16
  expect(component).toBeDefined();
15
17
  });
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","obj","__esModule","default","describe","it","getByTestId","render","createElement","component","expect","toBeDefined","getByText","isVisible","Text","content","onOverlayPressMock","jest","fn","onOverlayPress","overlay","fireEvent","press","toHaveBeenCalled"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from \"react-native\";\nimport { render, fireEvent } from \"@testing-library/react-native\";\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal />);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(\n <Modal isVisible onOverlayPress={onOverlayPressMock} />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n // Add more test cases to cover different interactions, scenarios, and edge cases\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExCG,QAAQ,CAAC,OAAO,EAAE,MAAM;EACpBC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAACZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK,MAAE,CAAC,CAAC;IACzC,MAAMM,SAAS,GAAGH,WAAW,CAAC,OAAO,CAAC;IACtCI,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFN,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEO;IAAU,CAAC,GAAG,IAAAL,oBAAM,gBACxBZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACU,SAAS;IAAA,gBACZlB,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACV,YAAA,CAAAgB,IAAI,QAAE,eAAsB,CAC1B,CACX,CAAC;IACD,MAAMC,OAAO,GAAGH,SAAS,CAAC,eAAe,CAAC;IAC1CF,MAAM,CAACK,OAAO,CAAC,CAACJ,WAAW,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFN,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAMW,kBAAkB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpC,MAAM;MAAEZ;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAC1BZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACU,SAAS;MAACM,cAAc,EAAEH;IAAmB,CAAE,CAC1D,CAAC;IACD,MAAMI,OAAO,GAAGd,WAAW,CAAC,gBAAgB,CAAC;IAC7Ce,uBAAS,CAACC,KAAK,CAACF,OAAO,CAAC;IACxBV,MAAM,CAACM,kBAAkB,CAAC,CAACO,gBAAgB,CAAC,CAAC;EACjD,CAAC,CAAC;;EAEF;AACJ,CAAC,CAAC"}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_reactNative","_reactNative2","_Modal","obj","__esModule","default","describe","it","getByTestId","render","createElement","isVisible","component","expect","toBeDefined","getByText","Text","content","onOverlayPressMock","jest","fn","onOverlayPress","overlay","fireEvent","press","toHaveBeenCalled"],"sources":["Modal.test.tsx"],"sourcesContent":["import React from \"react\";\nimport { Text } from \"react-native\";\nimport { render, fireEvent } from \"@testing-library/react-native\";\nimport Modal from \"../components/Modal\";\n\ndescribe(\"Modal\", () => {\n it(\"renders without crashing\", () => {\n const { getByTestId } = render(<Modal isVisible/>);\n const component = getByTestId(\"modal\");\n expect(component).toBeDefined();\n });\n\n it(\"renders children when visible\", () => {\n const { getByText } = render(\n <Modal isVisible>\n <Text>{\"Modal Content\"}</Text>\n </Modal>\n );\n const content = getByText(\"Modal Content\");\n expect(content).toBeDefined();\n });\n\n it(\"calls onOverlayPress when overlay is pressed\", () => {\n const onOverlayPressMock = jest.fn();\n const { getByTestId } = render(\n <Modal isVisible onOverlayPress={onOverlayPressMock} />\n );\n const overlay = getByTestId(\"modal-backdrop\");\n fireEvent.press(overlay);\n expect(onOverlayPressMock).toHaveBeenCalled();\n });\n\n // Add more test cases to cover different interactions, scenarios, and edge cases\n});\n"],"mappings":";;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,aAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAJ,sBAAA,CAAAC,OAAA;AAAwC,SAAAD,uBAAAK,GAAA,WAAAA,GAAA,IAAAA,GAAA,CAAAC,UAAA,GAAAD,GAAA,KAAAE,OAAA,EAAAF,GAAA;AAExCG,QAAQ,CAAC,OAAO,EAAE,MAAM;EACpBC,EAAE,CAAC,0BAA0B,EAAE,MAAM;IACjC,MAAM;MAAEC;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAACZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;IAAA,CAAC,CAAC,CAAC;IAClD,MAAMC,SAAS,GAAGJ,WAAW,CAAC,OAAO,CAAC;IACtCK,MAAM,CAACD,SAAS,CAAC,CAACE,WAAW,CAAC,CAAC;EACnC,CAAC,CAAC;EAEFP,EAAE,CAAC,+BAA+B,EAAE,MAAM;IACtC,MAAM;MAAEQ;IAAU,CAAC,GAAG,IAAAN,oBAAM,gBACxBZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;IAAA,gBACZd,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACV,YAAA,CAAAgB,IAAI,QAAE,eAAsB,CAC1B,CACX,CAAC;IACD,MAAMC,OAAO,GAAGF,SAAS,CAAC,eAAe,CAAC;IAC1CF,MAAM,CAACI,OAAO,CAAC,CAACH,WAAW,CAAC,CAAC;EACjC,CAAC,CAAC;EAEFP,EAAE,CAAC,8CAA8C,EAAE,MAAM;IACrD,MAAMW,kBAAkB,GAAGC,IAAI,CAACC,EAAE,CAAC,CAAC;IACpC,MAAM;MAAEZ;IAAY,CAAC,GAAG,IAAAC,oBAAM,gBAC1BZ,MAAA,CAAAQ,OAAA,CAAAK,aAAA,CAACR,MAAA,CAAAG,OAAK;MAACM,SAAS;MAACU,cAAc,EAAEH;IAAmB,CAAE,CAC1D,CAAC;IACD,MAAMI,OAAO,GAAGd,WAAW,CAAC,gBAAgB,CAAC;IAC7Ce,uBAAS,CAACC,KAAK,CAACF,OAAO,CAAC;IACxBT,MAAM,CAACK,kBAAkB,CAAC,CAACO,gBAAgB,CAAC,CAAC;EACjD,CAAC,CAAC;;EAEF;AACJ,CAAC,CAAC"}
@@ -3,21 +3,17 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.generateNumbers = void 0;
7
- var _padWithZero = require("./padWithZero");
6
+ exports.generateNumbers = exports.generate12HourNumbers = void 0;
7
+ var _padNumber = require("./padNumber");
8
8
  const generateNumbers = (numberOfItems, options) => {
9
9
  if (numberOfItems <= 0) {
10
10
  return [];
11
11
  }
12
12
  let numbers = [];
13
- if (options.padWithZero) {
14
- for (let i = 0; i <= numberOfItems; i++) {
15
- numbers.push((0, _padWithZero.padWithZero)(i));
16
- }
17
- } else {
18
- for (let i = 0; i <= numberOfItems; i++) {
19
- numbers.push(String(i));
20
- }
13
+ for (let i = 0; i <= numberOfItems; i++) {
14
+ numbers.push((0, _padNumber.padNumber)(i, {
15
+ padWithZero: options.padNumbersWithZero
16
+ }));
21
17
  }
22
18
  if ((options.repeatNTimes ?? 1) > 1) {
23
19
  numbers = Array(options.repeatNTimes).fill(numbers).flat();
@@ -29,4 +25,31 @@ const generateNumbers = (numberOfItems, options) => {
29
25
  return numbers;
30
26
  };
31
27
  exports.generateNumbers = generateNumbers;
28
+ const generate12HourNumbers = options => {
29
+ let numbers = [];
30
+
31
+ // Generate numbers from 0 to 11 for AM
32
+ for (let i = 0; i <= 11; i++) {
33
+ numbers.push(`${(0, _padNumber.padNumber)(i, {
34
+ padWithZero: options.padNumbersWithZero
35
+ })} AM`);
36
+ }
37
+
38
+ // Generate numbers from 12 to 11 for PM
39
+ for (let i = 12; i <= 23; i++) {
40
+ const hour = i > 12 ? i - 12 : i;
41
+ numbers.push(`${(0, _padNumber.padNumber)(hour, {
42
+ padWithZero: options.padNumbersWithZero
43
+ })} PM`);
44
+ }
45
+ if ((options.repeatNTimes ?? 1) > 1) {
46
+ numbers = Array(options.repeatNTimes).fill(numbers).flat();
47
+ }
48
+ if (options.disableInfiniteScroll) {
49
+ numbers.push(...Array(options.padWithNItems).fill(""));
50
+ numbers.unshift(...Array(options.padWithNItems).fill(""));
51
+ }
52
+ return numbers;
53
+ };
54
+ exports.generate12HourNumbers = generate12HourNumbers;
32
55
  //# sourceMappingURL=generateNumbers.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_padWithZero","require","generateNumbers","numberOfItems","options","numbers","padWithZero","i","push","String","repeatNTimes","Array","fill","flat","disableInfiniteScroll","padWithNItems","unshift","exports"],"sources":["generateNumbers.ts"],"sourcesContent":["import { padWithZero } from \"./padWithZero\";\n\nexport const generateNumbers = (\n numberOfItems: number,\n options: {\n repeatNTimes?: number;\n padWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n padWithNItems: number;\n }\n) => {\n if (numberOfItems <= 0) {\n return [];\n }\n\n let numbers: string[] = [];\n if (options.padWithZero) {\n for (let i = 0; i <= numberOfItems; i++) {\n numbers.push(padWithZero(i));\n }\n } else {\n for (let i = 0; i <= numberOfItems; i++) {\n numbers.push(String(i));\n }\n }\n if ((options.repeatNTimes ?? 1) > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n if (options.disableInfiniteScroll) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n return numbers;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAGA,CAC3BC,aAAqB,EACrBC,OAKC,KACA;EACD,IAAID,aAAa,IAAI,CAAC,EAAE;IACpB,OAAO,EAAE;EACb;EAEA,IAAIE,OAAiB,GAAG,EAAE;EAC1B,IAAID,OAAO,CAACE,WAAW,EAAE;IACrB,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIJ,aAAa,EAAEI,CAAC,EAAE,EAAE;MACrCF,OAAO,CAACG,IAAI,CAAC,IAAAF,wBAAW,EAACC,CAAC,CAAC,CAAC;IAChC;EACJ,CAAC,MAAM;IACH,KAAK,IAAIA,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIJ,aAAa,EAAEI,CAAC,EAAE,EAAE;MACrCF,OAAO,CAACG,IAAI,CAACC,MAAM,CAACF,CAAC,CAAC,CAAC;IAC3B;EACJ;EACA,IAAI,CAACH,OAAO,CAACM,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;IACjCL,OAAO,GAAGM,KAAK,CAACP,OAAO,CAACM,YAAY,CAAC,CAACE,IAAI,CAACP,OAAO,CAAC,CAACQ,IAAI,CAAC,CAAC;EAC9D;EACA,IAAIT,OAAO,CAACU,qBAAqB,EAAE;IAC/BT,OAAO,CAACG,IAAI,CAAC,GAAGG,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDP,OAAO,CAACW,OAAO,CAAC,GAAGL,KAAK,CAACP,OAAO,CAACW,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EACA,OAAOP,OAAO;AAClB,CAAC;AAACY,OAAA,CAAAf,eAAA,GAAAA,eAAA"}
1
+ {"version":3,"names":["_padNumber","require","generateNumbers","numberOfItems","options","numbers","i","push","padNumber","padWithZero","padNumbersWithZero","repeatNTimes","Array","fill","flat","disableInfiniteScroll","padWithNItems","unshift","exports","generate12HourNumbers","hour"],"sources":["generateNumbers.ts"],"sourcesContent":["import { padNumber } from \"./padNumber\";\n\nexport const generateNumbers = (\n numberOfItems: number,\n options: {\n repeatNTimes?: number;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n padWithNItems: number;\n }\n) => {\n if (numberOfItems <= 0) {\n return [];\n }\n\n let numbers: string[] = [];\n for (let i = 0; i <= numberOfItems; i++) {\n numbers.push(padNumber(i, { padWithZero: options.padNumbersWithZero }));\n }\n\n if ((options.repeatNTimes ?? 1) > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n if (options.disableInfiniteScroll) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n return numbers;\n};\n\nexport const generate12HourNumbers = (options: {\n repeatNTimes?: number;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n padWithNItems: number;\n}) => {\n let numbers: string[] = [];\n\n // Generate numbers from 0 to 11 for AM\n for (let i = 0; i <= 11; i++) {\n numbers.push(\n `${padNumber(i, { padWithZero: options.padNumbersWithZero })} AM`\n );\n }\n\n // Generate numbers from 12 to 11 for PM\n for (let i = 12; i <= 23; i++) {\n const hour = i > 12 ? i - 12 : i;\n numbers.push(\n `${padNumber(hour, { padWithZero: options.padNumbersWithZero })} PM`\n );\n }\n\n if ((options.repeatNTimes ?? 1) > 1) {\n numbers = Array(options.repeatNTimes).fill(numbers).flat();\n }\n\n if (options.disableInfiniteScroll) {\n numbers.push(...Array(options.padWithNItems).fill(\"\"));\n numbers.unshift(...Array(options.padWithNItems).fill(\"\"));\n }\n\n return numbers;\n};\n"],"mappings":";;;;;;AAAA,IAAAA,UAAA,GAAAC,OAAA;AAEO,MAAMC,eAAe,GAAGA,CAC3BC,aAAqB,EACrBC,OAKC,KACA;EACD,IAAID,aAAa,IAAI,CAAC,EAAE;IACpB,OAAO,EAAE;EACb;EAEA,IAAIE,OAAiB,GAAG,EAAE;EAC1B,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAIH,aAAa,EAAEG,CAAC,EAAE,EAAE;IACrCD,OAAO,CAACE,IAAI,CAAC,IAAAC,oBAAS,EAACF,CAAC,EAAE;MAAEG,WAAW,EAAEL,OAAO,CAACM;IAAmB,CAAC,CAAC,CAAC;EAC3E;EAEA,IAAI,CAACN,OAAO,CAACO,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;IACjCN,OAAO,GAAGO,KAAK,CAACR,OAAO,CAACO,YAAY,CAAC,CAACE,IAAI,CAACR,OAAO,CAAC,CAACS,IAAI,CAAC,CAAC;EAC9D;EACA,IAAIV,OAAO,CAACW,qBAAqB,EAAE;IAC/BV,OAAO,CAACE,IAAI,CAAC,GAAGK,KAAK,CAACR,OAAO,CAACY,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDR,OAAO,CAACY,OAAO,CAAC,GAAGL,KAAK,CAACR,OAAO,CAACY,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EACA,OAAOR,OAAO;AAClB,CAAC;AAACa,OAAA,CAAAhB,eAAA,GAAAA,eAAA;AAEK,MAAMiB,qBAAqB,GAAIf,OAKrC,IAAK;EACF,IAAIC,OAAiB,GAAG,EAAE;;EAE1B;EACA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;IAC1BD,OAAO,CAACE,IAAI,CACP,GAAE,IAAAC,oBAAS,EAACF,CAAC,EAAE;MAAEG,WAAW,EAAEL,OAAO,CAACM;IAAmB,CAAC,CAAE,KACjE,CAAC;EACL;;EAEA;EACA,KAAK,IAAIJ,CAAC,GAAG,EAAE,EAAEA,CAAC,IAAI,EAAE,EAAEA,CAAC,EAAE,EAAE;IAC3B,MAAMc,IAAI,GAAGd,CAAC,GAAG,EAAE,GAAGA,CAAC,GAAG,EAAE,GAAGA,CAAC;IAChCD,OAAO,CAACE,IAAI,CACP,GAAE,IAAAC,oBAAS,EAACY,IAAI,EAAE;MAAEX,WAAW,EAAEL,OAAO,CAACM;IAAmB,CAAC,CAAE,KACpE,CAAC;EACL;EAEA,IAAI,CAACN,OAAO,CAACO,YAAY,IAAI,CAAC,IAAI,CAAC,EAAE;IACjCN,OAAO,GAAGO,KAAK,CAACR,OAAO,CAACO,YAAY,CAAC,CAACE,IAAI,CAACR,OAAO,CAAC,CAACS,IAAI,CAAC,CAAC;EAC9D;EAEA,IAAIV,OAAO,CAACW,qBAAqB,EAAE;IAC/BV,OAAO,CAACE,IAAI,CAAC,GAAGK,KAAK,CAACR,OAAO,CAACY,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;IACtDR,OAAO,CAACY,OAAO,CAAC,GAAGL,KAAK,CAACR,OAAO,CAACY,aAAa,CAAC,CAACH,IAAI,CAAC,EAAE,CAAC,CAAC;EAC7D;EAEA,OAAOR,OAAO;AAClB,CAAC;AAACa,OAAA,CAAAC,qBAAA,GAAAA,qBAAA"}
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.padNumber = void 0;
7
+ const padNumber = (value, options) => {
8
+ if (value < 10) {
9
+ return (options !== null && options !== void 0 && options.padWithZero ? "0" : " ") + value;
10
+ } else {
11
+ return String(value);
12
+ }
13
+ };
14
+ exports.padNumber = padNumber;
15
+ //# sourceMappingURL=padNumber.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["padNumber","value","options","padWithZero","String","exports"],"sources":["padNumber.ts"],"sourcesContent":["export const padNumber = (\n value: number,\n options?: { padWithZero?: boolean }\n): string => {\n if (value < 10) {\n return (options?.padWithZero ? \"0\" : \" \") + value;\n } else {\n return String(value);\n }\n};\n"],"mappings":";;;;;;AAAO,MAAMA,SAAS,GAAGA,CACrBC,KAAa,EACbC,OAAmC,KAC1B;EACT,IAAID,KAAK,GAAG,EAAE,EAAE;IACZ,OAAO,CAACC,OAAO,aAAPA,OAAO,eAAPA,OAAO,CAAEC,WAAW,GAAG,GAAG,GAAG,GAAG,IAAIF,KAAK;EACrD,CAAC,MAAM;IACH,OAAOG,MAAM,CAACH,KAAK,CAAC;EACxB;AACJ,CAAC;AAACI,OAAA,CAAAL,SAAA,GAAAA,SAAA"}
@@ -3,19 +3,18 @@ function _extends() { _extends = Object.assign ? Object.assign.bind() : function
3
3
  import React, { useCallback, useEffect, useRef } from "react";
4
4
  import { Animated, Easing, Modal as ReactNativeModal, TouchableWithoutFeedback, useWindowDimensions } from "react-native";
5
5
  import { styles } from "./Modal.styles";
6
- export const Modal = _ref => {
7
- let {
8
- children,
9
- onOverlayPress,
10
- onHide,
11
- isVisible = false,
12
- animationDuration = 300,
13
- overlayOpacity = 0.4,
14
- modalProps,
15
- contentStyle,
16
- overlayStyle,
17
- testID
18
- } = _ref;
6
+ export const Modal = ({
7
+ children,
8
+ onOverlayPress,
9
+ onHide,
10
+ isVisible = false,
11
+ animationDuration = 300,
12
+ overlayOpacity = 0.4,
13
+ modalProps,
14
+ contentStyle,
15
+ overlayStyle,
16
+ testID = "modal"
17
+ }) => {
19
18
  const {
20
19
  width: screenWidth,
21
20
  height: screenHeight
@@ -82,7 +81,7 @@ export const Modal = _ref => {
82
81
  animationType: "fade",
83
82
  visible: isVisible
84
83
  }, modalProps, {
85
- testID: testID ?? "modal"
84
+ testID: testID
86
85
  }), /*#__PURE__*/React.createElement(TouchableWithoutFeedback, {
87
86
  onPress: onOverlayPress,
88
87
  testID: "modal-backdrop"
@@ -1 +1 @@
1
- {"version":3,"names":["React","useCallback","useEffect","useRef","Animated","Easing","Modal","ReactNativeModal","TouchableWithoutFeedback","useWindowDimensions","styles","_ref","children","onOverlayPress","onHide","isVisible","animationDuration","overlayOpacity","modalProps","contentStyle","overlayStyle","testID","width","screenWidth","height","screenHeight","isMounted","animatedOpacity","Value","current","show","backdropAnimatedStyle","opacity","interpolate","inputRange","outputRange","contentAnimatedStyle","transform","translateY","extrapolate","timing","easing","inOut","quad","useNativeDriver","duration","toValue","start","hide","createElement","_extends","transparent","animationType","visible","onPress","View","style","backdrop","content","pointerEvents","memo"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport {\n Animated,\n Easing,\n Modal as ReactNativeModal,\n TouchableWithoutFeedback,\n useWindowDimensions,\n} from \"react-native\";\n\nimport { styles } from \"./Modal.styles\";\n\ninterface ModalProps {\n children?: React.ReactElement;\n onOverlayPress?: () => void;\n onHide?: () => void;\n isVisible?: boolean;\n animationDuration?: number;\n overlayOpacity?: number;\n modalProps?: any;\n contentStyle?: any;\n overlayStyle?: any;\n testID?: string;\n}\n\nexport const Modal = ({\n children,\n onOverlayPress,\n onHide,\n isVisible = false,\n animationDuration = 300,\n overlayOpacity = 0.4,\n modalProps,\n contentStyle,\n overlayStyle,\n testID,\n}: ModalProps): React.ReactElement => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n\n const isMounted = useRef(false);\n const animatedOpacity = useRef(new Animated.Value(0));\n\n useEffect(() => {\n isMounted.current = true;\n if (isVisible) {\n show();\n }\n\n return () => {\n isMounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const backdropAnimatedStyle = {\n opacity: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0, overlayOpacity],\n }),\n };\n const contentAnimatedStyle = {\n transform: [\n {\n translateY: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [screenHeight, 0],\n extrapolate: \"clamp\",\n }),\n },\n ],\n };\n\n const show = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 1,\n }).start();\n }, [animationDuration]);\n\n const hide = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 0,\n }).start(() => {\n if (isMounted.current) {\n onHide?.();\n }\n });\n }, [animationDuration, onHide]);\n\n useEffect(() => {\n if (isVisible) {\n show();\n } else {\n hide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <ReactNativeModal\n transparent\n animationType=\"fade\"\n visible={isVisible}\n {...modalProps}\n testID={testID ?? \"modal\"}>\n <TouchableWithoutFeedback\n onPress={onOverlayPress}\n testID=\"modal-backdrop\">\n <Animated.View\n style={[\n styles.backdrop,\n backdropAnimatedStyle,\n { width: screenWidth, height: screenHeight },\n overlayStyle,\n ]}\n />\n </TouchableWithoutFeedback>\n <Animated.View\n style={[styles.content, contentAnimatedStyle, contentStyle]}\n pointerEvents=\"box-none\">\n {children}\n </Animated.View>\n </ReactNativeModal>\n );\n};\n\nexport default React.memo(Modal);\n"],"mappings":"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"}
1
+ {"version":3,"names":["React","useCallback","useEffect","useRef","Animated","Easing","Modal","ReactNativeModal","TouchableWithoutFeedback","useWindowDimensions","styles","children","onOverlayPress","onHide","isVisible","animationDuration","overlayOpacity","modalProps","contentStyle","overlayStyle","testID","width","screenWidth","height","screenHeight","isMounted","animatedOpacity","Value","current","show","backdropAnimatedStyle","opacity","interpolate","inputRange","outputRange","contentAnimatedStyle","transform","translateY","extrapolate","timing","easing","inOut","quad","useNativeDriver","duration","toValue","start","hide","createElement","_extends","transparent","animationType","visible","onPress","View","style","backdrop","content","pointerEvents","memo"],"sources":["index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useCallback, useEffect, useRef } from \"react\";\nimport {\n Animated,\n Easing,\n Modal as ReactNativeModal,\n TouchableWithoutFeedback,\n useWindowDimensions,\n} from \"react-native\";\n\nimport { styles } from \"./Modal.styles\";\n\ninterface ModalProps {\n children?: React.ReactElement;\n onOverlayPress?: () => void;\n onHide?: () => void;\n isVisible?: boolean;\n animationDuration?: number;\n overlayOpacity?: number;\n modalProps?: any;\n contentStyle?: any;\n overlayStyle?: any;\n testID?: string;\n}\n\nexport const Modal = ({\n children,\n onOverlayPress,\n onHide,\n isVisible = false,\n animationDuration = 300,\n overlayOpacity = 0.4,\n modalProps,\n contentStyle,\n overlayStyle,\n testID = \"modal\",\n}: ModalProps): React.ReactElement => {\n const { width: screenWidth, height: screenHeight } = useWindowDimensions();\n\n const isMounted = useRef(false);\n const animatedOpacity = useRef(new Animated.Value(0));\n\n useEffect(() => {\n isMounted.current = true;\n if (isVisible) {\n show();\n }\n\n return () => {\n isMounted.current = false;\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const backdropAnimatedStyle = {\n opacity: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [0, overlayOpacity],\n }),\n };\n const contentAnimatedStyle = {\n transform: [\n {\n translateY: animatedOpacity.current.interpolate({\n inputRange: [0, 1],\n outputRange: [screenHeight, 0],\n extrapolate: \"clamp\",\n }),\n },\n ],\n };\n\n const show = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 1,\n }).start();\n }, [animationDuration]);\n\n const hide = useCallback(() => {\n Animated.timing(animatedOpacity.current, {\n easing: Easing.inOut(Easing.quad),\n // Using native driver in the modal makes the content flash\n useNativeDriver: true,\n duration: animationDuration,\n toValue: 0,\n }).start(() => {\n if (isMounted.current) {\n onHide?.();\n }\n });\n }, [animationDuration, onHide]);\n\n useEffect(() => {\n if (isVisible) {\n show();\n } else {\n hide();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isVisible]);\n\n return (\n <ReactNativeModal\n transparent\n animationType=\"fade\"\n visible={isVisible}\n {...modalProps}\n testID={testID}>\n <TouchableWithoutFeedback\n onPress={onOverlayPress}\n testID=\"modal-backdrop\">\n <Animated.View\n style={[\n styles.backdrop,\n backdropAnimatedStyle,\n { width: screenWidth, height: screenHeight },\n overlayStyle,\n ]}\n />\n </TouchableWithoutFeedback>\n <Animated.View\n style={[styles.content, contentAnimatedStyle, contentStyle]}\n pointerEvents=\"box-none\">\n {children}\n </Animated.View>\n </ReactNativeModal>\n );\n};\n\nexport default React.memo(Modal);\n"],"mappings":"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"}