react-native-timer-picker 1.6.0 → 1.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +74 -25
- package/dist/commonjs/assets/select_click.mp3 +0 -0
- package/dist/commonjs/components/{TimerPicker/DurationScroll.js → DurationScroll/index.js} +113 -63
- package/dist/commonjs/components/DurationScroll/index.js.map +1 -0
- package/dist/commonjs/components/DurationScroll/types.js +6 -0
- package/dist/commonjs/components/DurationScroll/types.js.map +1 -0
- package/dist/commonjs/components/Modal/index.js +21 -20
- package/dist/commonjs/components/Modal/index.js.map +1 -1
- package/dist/commonjs/components/Modal/{Modal.styles.js → styles.js} +1 -1
- package/dist/commonjs/components/Modal/styles.js.map +1 -0
- package/dist/commonjs/components/Modal/types.js +6 -0
- package/dist/commonjs/components/Modal/types.js.map +1 -0
- package/dist/commonjs/components/TimerPicker/index.js +68 -79
- package/dist/commonjs/components/TimerPicker/index.js.map +1 -1
- package/dist/commonjs/components/TimerPicker/{TimerPicker.styles.js → styles.js} +1 -3
- package/dist/commonjs/components/TimerPicker/styles.js.map +1 -0
- package/dist/commonjs/components/TimerPicker/types.js +6 -0
- package/dist/commonjs/components/TimerPicker/types.js.map +1 -0
- package/dist/commonjs/components/{index.js → TimerPickerModal/index.js} +42 -99
- package/dist/commonjs/components/TimerPickerModal/index.js.map +1 -0
- package/dist/commonjs/components/{TimerPickerModal.styles.js → TimerPickerModal/styles.js} +1 -3
- package/dist/commonjs/components/TimerPickerModal/styles.js.map +1 -0
- package/dist/commonjs/components/TimerPickerModal/types.js +6 -0
- package/dist/commonjs/components/TimerPickerModal/types.js.map +1 -0
- package/dist/commonjs/index.js +14 -13
- package/dist/commonjs/index.js.map +1 -1
- package/dist/commonjs/tests/DurationScroll.test.js +1 -1
- package/dist/commonjs/tests/DurationScroll.test.js.map +1 -1
- package/dist/commonjs/tests/Modal.test.js +7 -7
- package/dist/commonjs/tests/Modal.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPicker.test.js.map +1 -1
- package/dist/commonjs/tests/TimerPickerModal.test.js +2 -2
- package/dist/commonjs/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/commonjs/utils/generateNumbers.js.map +1 -1
- package/dist/commonjs/utils/getAdjustedLimit.js.map +1 -1
- package/dist/commonjs/utils/getScrollIndex.js +2 -2
- package/dist/commonjs/utils/getScrollIndex.js.map +1 -1
- package/dist/module/assets/select_click.mp3 +0 -0
- package/dist/module/components/{TimerPicker/DurationScroll.js → DurationScroll/index.js} +114 -64
- package/dist/module/components/DurationScroll/index.js.map +1 -0
- package/dist/module/components/DurationScroll/types.js +2 -0
- package/dist/module/components/DurationScroll/types.js.map +1 -0
- package/dist/module/components/Modal/index.js +19 -19
- package/dist/module/components/Modal/index.js.map +1 -1
- package/dist/module/components/Modal/{Modal.styles.js → styles.js} +1 -1
- package/dist/module/components/Modal/styles.js.map +1 -0
- package/dist/module/components/Modal/types.js +2 -0
- package/dist/module/components/Modal/types.js.map +1 -0
- package/dist/module/components/TimerPicker/index.js +67 -78
- package/dist/module/components/TimerPicker/index.js.map +1 -1
- package/dist/module/components/TimerPicker/{TimerPicker.styles.js → styles.js} +1 -2
- package/dist/module/components/TimerPicker/styles.js.map +1 -0
- package/dist/module/components/TimerPicker/types.js +2 -0
- package/dist/module/components/TimerPicker/types.js.map +1 -0
- package/dist/module/components/{index.js → TimerPickerModal/index.js} +41 -98
- package/dist/module/components/TimerPickerModal/index.js.map +1 -0
- package/dist/module/components/{TimerPickerModal.styles.js → TimerPickerModal/styles.js} +1 -2
- package/dist/module/components/TimerPickerModal/styles.js.map +1 -0
- package/dist/module/components/TimerPickerModal/types.js +2 -0
- package/dist/module/components/TimerPickerModal/types.js.map +1 -0
- package/dist/module/index.js +6 -4
- package/dist/module/index.js.map +1 -1
- package/dist/module/tests/DurationScroll.test.js +1 -1
- package/dist/module/tests/DurationScroll.test.js.map +1 -1
- package/dist/module/tests/Modal.test.js +1 -1
- package/dist/module/tests/Modal.test.js.map +1 -1
- package/dist/module/tests/TimerPicker.test.js.map +1 -1
- package/dist/module/tests/TimerPickerModal.test.js +2 -2
- package/dist/module/tests/TimerPickerModal.test.js.map +1 -1
- package/dist/module/utils/generateNumbers.js.map +1 -1
- package/dist/module/utils/getAdjustedLimit.js.map +1 -1
- package/dist/module/utils/getScrollIndex.js +2 -2
- package/dist/module/utils/getScrollIndex.js.map +1 -1
- package/dist/typescript/components/DurationScroll/index.d.ts +4 -0
- package/dist/typescript/components/{TimerPicker/DurationScroll.d.ts → DurationScroll/types.d.ts} +36 -29
- package/dist/typescript/components/Modal/index.d.ts +3 -14
- package/dist/typescript/components/Modal/types.d.ts +15 -0
- package/dist/typescript/components/TimerPicker/index.d.ts +2 -57
- package/dist/typescript/components/TimerPicker/styles.d.ts +1022 -0
- package/dist/typescript/components/TimerPicker/types.d.ts +61 -0
- package/dist/typescript/components/TimerPickerModal/index.d.ts +4 -0
- package/dist/typescript/components/TimerPickerModal/styles.d.ts +738 -0
- package/dist/typescript/components/{index.d.ts → TimerPickerModal/types.d.ts} +24 -26
- package/dist/typescript/index.d.ts +6 -4
- package/dist/typescript/utils/generateNumbers.d.ts +4 -4
- package/dist/typescript/utils/getAdjustedLimit.d.ts +1 -1
- package/dist/typescript/utils/getScrollIndex.d.ts +2 -2
- package/package.json +14 -11
- package/src/assets/select_click.mp3 +0 -0
- package/src/components/{TimerPicker/DurationScroll.tsx → DurationScroll/index.tsx} +126 -110
- package/src/components/DurationScroll/types.ts +63 -0
- package/src/components/Modal/index.tsx +20 -30
- package/src/components/Modal/types.ts +17 -0
- package/src/components/TimerPicker/index.tsx +70 -138
- package/src/components/TimerPicker/{TimerPicker.styles.ts → styles.ts} +13 -13
- package/src/components/TimerPicker/types.ts +72 -0
- package/src/components/{index.tsx → TimerPickerModal/index.tsx} +44 -147
- package/src/components/{TimerPickerModal.styles.ts → TimerPickerModal/styles.ts} +9 -9
- package/src/components/TimerPickerModal/types.ts +52 -0
- package/src/index.ts +6 -7
- package/src/tests/DurationScroll.test.tsx +3 -1
- package/src/tests/Modal.test.tsx +3 -1
- package/src/tests/TimerPicker.test.tsx +2 -0
- package/src/tests/TimerPickerModal.test.tsx +3 -1
- package/src/utils/generateNumbers.ts +4 -4
- package/src/utils/getAdjustedLimit.ts +1 -1
- package/src/utils/getScrollIndex.ts +3 -3
- package/dist/commonjs/components/Modal/Modal.styles.js.map +0 -1
- package/dist/commonjs/components/TimerPicker/DurationScroll.js.map +0 -1
- package/dist/commonjs/components/TimerPicker/TimerPicker.styles.js.map +0 -1
- package/dist/commonjs/components/TimerPickerModal.styles.js.map +0 -1
- package/dist/commonjs/components/index.js.map +0 -1
- package/dist/module/components/Modal/Modal.styles.js.map +0 -1
- package/dist/module/components/TimerPicker/DurationScroll.js.map +0 -1
- package/dist/module/components/TimerPicker/TimerPicker.styles.js.map +0 -1
- package/dist/module/components/TimerPickerModal.styles.js.map +0 -1
- package/dist/module/components/index.js.map +0 -1
- package/dist/typescript/components/TimerPicker/TimerPicker.styles.d.ts +0 -29
- package/dist/typescript/components/TimerPickerModal.styles.d.ts +0 -19
- /package/dist/typescript/components/Modal/{Modal.styles.d.ts → styles.d.ts} +0 -0
- /package/src/components/Modal/{Modal.styles.ts → styles.ts} +0 -0
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { MutableRefObject } from "react";
|
|
2
|
+
|
|
3
|
+
import type { View, TouchableOpacity, Text } from "react-native";
|
|
4
|
+
|
|
5
|
+
import type Modal from "../Modal";
|
|
6
|
+
import type { TimerPickerProps } from "../TimerPicker/types";
|
|
7
|
+
|
|
8
|
+
import type { CustomTimerPickerModalStyles } from "./styles";
|
|
9
|
+
|
|
10
|
+
export interface TimerPickerModalRef {
|
|
11
|
+
latestDuration: {
|
|
12
|
+
hours: MutableRefObject<number> | undefined;
|
|
13
|
+
minutes: MutableRefObject<number> | undefined;
|
|
14
|
+
seconds: MutableRefObject<number> | undefined;
|
|
15
|
+
};
|
|
16
|
+
reset: (options?: { animated?: boolean }) => void;
|
|
17
|
+
setValue: (
|
|
18
|
+
value: {
|
|
19
|
+
hours: number;
|
|
20
|
+
minutes: number;
|
|
21
|
+
seconds: number;
|
|
22
|
+
},
|
|
23
|
+
options?: { animated?: boolean }
|
|
24
|
+
) => void;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export interface TimerPickerModalProps extends TimerPickerProps {
|
|
28
|
+
buttonContainerProps?: React.ComponentProps<typeof View>;
|
|
29
|
+
buttonTouchableOpacityProps?: React.ComponentProps<typeof TouchableOpacity>;
|
|
30
|
+
cancelButtonText?: string;
|
|
31
|
+
closeOnOverlayPress?: boolean;
|
|
32
|
+
confirmButtonText?: string;
|
|
33
|
+
containerProps?: React.ComponentProps<typeof View>;
|
|
34
|
+
contentContainerProps?: React.ComponentProps<typeof View>;
|
|
35
|
+
hideCancelButton?: boolean;
|
|
36
|
+
modalProps?: React.ComponentProps<typeof Modal>;
|
|
37
|
+
modalTitle?: string;
|
|
38
|
+
modalTitleProps?: React.ComponentProps<typeof Text>;
|
|
39
|
+
onCancel?: () => void;
|
|
40
|
+
onConfirm: ({
|
|
41
|
+
hours,
|
|
42
|
+
minutes,
|
|
43
|
+
seconds,
|
|
44
|
+
}: {
|
|
45
|
+
hours: number;
|
|
46
|
+
minutes: number;
|
|
47
|
+
seconds: number;
|
|
48
|
+
}) => void;
|
|
49
|
+
setIsVisible: (isVisible: boolean) => void;
|
|
50
|
+
styles?: CustomTimerPickerModalStyles;
|
|
51
|
+
visible: boolean;
|
|
52
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
|
+
export { default as TimerPickerModal } from "./components/TimerPickerModal";
|
|
1
2
|
export {
|
|
2
|
-
default as TimerPickerModal,
|
|
3
3
|
TimerPickerModalProps,
|
|
4
4
|
TimerPickerModalRef,
|
|
5
|
-
} from "./components";
|
|
5
|
+
} from "./components/TimerPickerModal/types";
|
|
6
|
+
export { CustomTimerPickerModalStyles } from "./components/TimerPickerModal/styles";
|
|
6
7
|
|
|
8
|
+
export { default as TimerPicker } from "./components/TimerPicker";
|
|
7
9
|
export {
|
|
8
|
-
default as TimerPicker,
|
|
9
10
|
TimerPickerProps,
|
|
10
11
|
TimerPickerRef,
|
|
11
|
-
} from "./components/TimerPicker";
|
|
12
|
-
|
|
13
|
-
export { CustomTimerPickerModalStyles } from "./components/TimerPickerModal.styles";
|
|
14
|
-
export { CustomTimerPickerStyles } from "./components/TimerPicker/TimerPicker.styles";
|
|
12
|
+
} from "./components/TimerPicker/types";
|
|
13
|
+
export { CustomTimerPickerStyles } from "./components/TimerPicker/styles";
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
|
|
2
3
|
import { render } from "@testing-library/react-native";
|
|
4
|
+
|
|
3
5
|
import DurationScroll from "../components/TimerPicker/DurationScroll";
|
|
4
6
|
|
|
5
7
|
describe("DurationScroll", () => {
|
|
@@ -43,8 +45,8 @@ describe("DurationScroll", () => {
|
|
|
43
45
|
it("renders the label if provided", () => {
|
|
44
46
|
const { getByText } = render(
|
|
45
47
|
<DurationScroll
|
|
46
|
-
numberOfItems={59}
|
|
47
48
|
label="Duration"
|
|
49
|
+
numberOfItems={59}
|
|
48
50
|
onDurationChange={onDurationChangeMock}
|
|
49
51
|
padWithNItems={1}
|
|
50
52
|
styles={emptyStyles}
|
package/src/tests/Modal.test.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
+
|
|
2
3
|
import { render, fireEvent } from "@testing-library/react-native";
|
|
4
|
+
|
|
3
5
|
import TimerPickerModal from "../components";
|
|
4
6
|
|
|
5
7
|
describe("TimerPickerModal", () => {
|
|
@@ -51,8 +53,8 @@ describe("TimerPickerModal", () => {
|
|
|
51
53
|
const { getByTestId } = render(
|
|
52
54
|
<TimerPickerModal
|
|
53
55
|
{...defaultProps}
|
|
54
|
-
setIsVisible={setIsVisibleMock}
|
|
55
56
|
closeOnOverlayPress
|
|
57
|
+
setIsVisible={setIsVisibleMock}
|
|
56
58
|
/>
|
|
57
59
|
);
|
|
58
60
|
const overlay = getByTestId("modal-backdrop");
|
|
@@ -3,10 +3,10 @@ import { padNumber } from "./padNumber";
|
|
|
3
3
|
export const generateNumbers = (
|
|
4
4
|
numberOfItems: number,
|
|
5
5
|
options: {
|
|
6
|
-
repeatNTimes?: number;
|
|
7
|
-
padNumbersWithZero?: boolean;
|
|
8
6
|
disableInfiniteScroll?: boolean;
|
|
7
|
+
padNumbersWithZero?: boolean;
|
|
9
8
|
padWithNItems: number;
|
|
9
|
+
repeatNTimes?: number;
|
|
10
10
|
}
|
|
11
11
|
) => {
|
|
12
12
|
if (numberOfItems <= 0) {
|
|
@@ -29,10 +29,10 @@ export const generateNumbers = (
|
|
|
29
29
|
};
|
|
30
30
|
|
|
31
31
|
export const generate12HourNumbers = (options: {
|
|
32
|
-
repeatNTimes?: number;
|
|
33
|
-
padNumbersWithZero?: boolean;
|
|
34
32
|
disableInfiniteScroll?: boolean;
|
|
33
|
+
padNumbersWithZero?: boolean;
|
|
35
34
|
padWithNItems: number;
|
|
35
|
+
repeatNTimes?: number;
|
|
36
36
|
}) => {
|
|
37
37
|
let numbers: string[] = [];
|
|
38
38
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
export const getScrollIndex = (variables: {
|
|
2
|
-
|
|
2
|
+
disableInfiniteScroll?: boolean;
|
|
3
3
|
numberOfItems: number;
|
|
4
4
|
padWithNItems: number;
|
|
5
|
-
|
|
5
|
+
value: number;
|
|
6
6
|
}) => {
|
|
7
|
-
const {
|
|
7
|
+
const { disableInfiniteScroll, numberOfItems, padWithNItems, value } =
|
|
8
8
|
variables;
|
|
9
9
|
|
|
10
10
|
return (
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","styles","exports","StyleSheet","create","container","position","top","left","right","bottom","backdrop","backgroundColor","opacity","content","flex","justifyContent","alignItems","zIndex"],"sources":["Modal.styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\n\nexport const styles = StyleSheet.create({\n container: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n backdrop: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: \"black\",\n opacity: 0,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,MAAM,GAAAC,OAAA,CAAAD,MAAA,GAAGE,uBAAU,CAACC,MAAM,CAAC;EACpCC,SAAS,EAAE;IACPC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACNL,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNG,MAAM,EAAE,CAAC;IACTF,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRG,eAAe,EAAE,OAAO;IACxBC,OAAO,EAAE;EACb,CAAC;EACDC,OAAO,EAAE;IACLC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_generateNumbers","_colorToRgba","_getAdjustedLimit","_getScrollIndex","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","prototype","hasOwnProperty","call","i","set","_extends","assign","bind","target","arguments","length","source","key","apply","KEY_EXTRACTOR","_","index","toString","DurationScroll","forwardRef","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","isDisabled","aggressivelyGetLatestDuration","allowFontScaling","is12HourPicker","amLabel","pmLabel","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","ref","data","generateNumbers","repeatNTimes","generate12HourNumbers","numberOfItemsToShow","adjustedLimited","getAdjustedLimit","initialScrollIndex","getScrollIndex","value","latestDuration","useRef","flatListRef","useImperativeHandle","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","useCallback","item","stringItem","intItem","isAm","parseInt","includes","replace","createElement","View","style","pickerItemContainer","Text","pickerItem","max","min","disabledPickerItem","pickerAmPmContainer","pointerEvents","pickerAmPmLabel","onScroll","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","undefined","overflow","disabledPickerContainer","FlatList","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","scrollEnabled","snapToOffsets","Array","map","pickerLabelContainer","pickerLabel","Fragment","colors","pickerContainer","backgroundColor","colorToRgba","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","_default","exports","React","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n MutableRefObject,\n} from \"react\";\nimport {\n View,\n Text,\n FlatList,\n ViewabilityConfigCallbackPairs,\n ViewToken,\n NativeSyntheticEvent,\n NativeScrollEvent,\n} from \"react-native\";\n\nimport {\n generate12HourNumbers,\n generateNumbers,\n} from \"../../utils/generateNumbers\";\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport { generateStyles } from \"./TimerPicker.styles\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getScrollIndex } from \"../../utils/getScrollIndex\";\n\nexport interface DurationScrollRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (value: number, options?: { animated?: boolean }) => void;\n latestDuration: MutableRefObject<number>;\n}\n\ntype LinearGradientPoint = {\n x: number;\n y: number;\n};\n\nexport type LinearGradientProps = React.ComponentProps<typeof View> & {\n colors: string[];\n locations?: number[] | null;\n start?: LinearGradientPoint | null;\n end?: LinearGradientPoint | null;\n};\n\nexport type LimitType = {\n max?: number;\n min?: number;\n};\n\ninterface DurationScrollProps {\n allowFontScaling?: boolean;\n numberOfItems: number;\n label?: string | React.ReactElement;\n initialValue?: number;\n onDurationChange: (duration: number) => void;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n isDisabled?: boolean;\n limit?: LimitType;\n aggressivelyGetLatestDuration: boolean;\n is12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n padWithNItems: number;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n testID?: string;\n styles: ReturnType<typeof generateStyles>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst KEY_EXTRACTOR = (_: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (\n {\n numberOfItems,\n label,\n initialValue = 0,\n onDurationChange,\n padNumbersWithZero = false,\n disableInfiniteScroll = false,\n limit,\n isDisabled,\n aggressivelyGetLatestDuration,\n allowFontScaling = false,\n is12HourPicker,\n amLabel,\n pmLabel,\n padWithNItems,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n LinearGradient,\n testID,\n styles,\n },\n ref\n ): React.ReactElement => {\n const data = !is12HourPicker\n ? generateNumbers(numberOfItems, {\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n })\n : generate12HourNumbers({\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n });\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n const adjustedLimited = getAdjustedLimit(limit, numberOfItems);\n\n const initialScrollIndex = getScrollIndex({\n value: initialValue,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n });\n\n const latestDuration = useRef(0);\n\n const flatListRef = useRef<FlatList | null>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: initialScrollIndex,\n });\n },\n setValue: (value, options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: getScrollIndex({\n value: value,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderItem = useCallback(\n ({ item }: { item: string }) => {\n let stringItem = item;\n let intItem: number;\n let isAm: boolean | undefined;\n\n if (!is12HourPicker) {\n intItem = parseInt(item);\n } else {\n isAm = item.includes(\"AM\");\n stringItem = item.replace(/\\s[AP]M/g, \"\");\n intItem = parseInt(stringItem);\n }\n\n return (\n <View\n key={item}\n style={styles.pickerItemContainer}\n testID=\"picker-item\">\n <Text\n allowFontScaling={allowFontScaling}\n style={[\n styles.pickerItem,\n intItem > adjustedLimited.max ||\n intItem < adjustedLimited.min\n ? styles.disabledPickerItem\n : {},\n ]}>\n {stringItem}\n </Text>\n {is12HourPicker ? (\n <View\n style={styles.pickerAmPmContainer}\n pointerEvents=\"none\">\n <Text\n style={[styles.pickerAmPmLabel]}\n allowFontScaling={allowFontScaling}>\n {isAm ? amLabel : pmLabel}\n </Text>\n </View>\n ) : null}\n </View>\n );\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n allowFontScaling,\n amLabel,\n is12HourPicker,\n pmLabel,\n styles.disabledPickerItem,\n styles.pickerAmPmContainer,\n styles.pickerAmPmLabel,\n styles.pickerItem,\n styles.pickerItemContainer,\n ]\n );\n\n const onScroll = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n // this function is only used when the picker is in a modal\n // it is used to ensure that the modal gets the latest duration on clicking\n // the confirm button, even if the scrollview is still scrolling\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n newDuration = adjustedLimited.min;\n }\n latestDuration.current = newDuration;\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n disableInfiniteScroll,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n const targetScrollIndex =\n newIndex - (newDuration - adjustedLimited.max);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex >= 0\n ? targetScrollIndex\n : adjustedLimited.max - 1,\n }); // scroll down to max\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n const targetScrollIndex =\n newIndex + (adjustedLimited.min - newDuration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= data.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newDuration = adjustedLimited.min;\n }\n\n onDurationChange(newDuration);\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n data.length,\n disableInfiniteScroll,\n numberOfItems,\n onDurationChange,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onViewableItemsChanged = useCallback(\n ({ viewableItems }: { viewableItems: ViewToken[] }) => {\n if (\n viewableItems[0]?.index &&\n viewableItems[0].index < numberOfItems * 0.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index + numberOfItems,\n });\n } else if (\n viewableItems[0]?.index &&\n viewableItems[0].index >= numberOfItems * 2.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems]\n );\n\n const getItemLayout = useCallback(\n (_: ArrayLike<string> | null | undefined, index: number) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\n\n const viewabilityConfigCallbackPairs =\n useRef<ViewabilityConfigCallbackPairs>([\n {\n viewabilityConfig: { viewAreaCoveragePercentThreshold: 25 },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]);\n\n return (\n <View\n testID={testID}\n pointerEvents={isDisabled ? \"none\" : undefined}\n style={[\n {\n height:\n styles.pickerItemContainer.height *\n numberOfItemsToShow,\n overflow: \"visible\",\n },\n isDisabled && styles.disabledPickerContainer,\n ]}>\n <FlatList\n ref={flatListRef}\n data={data}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n windowSize={numberOfItemsToShow}\n renderItem={renderItem}\n keyExtractor={KEY_EXTRACTOR}\n showsVerticalScrollIndicator={false}\n decelerationRate={0.88}\n scrollEventThrottle={16}\n snapToAlignment=\"start\"\n scrollEnabled={!isDisabled}\n // used in place of snapToOffset due to bug on Android\n snapToOffsets={[...Array(data.length)].map(\n (_, i) => i * styles.pickerItemContainer.height\n )}\n viewabilityConfigCallbackPairs={\n !disableInfiniteScroll\n ? viewabilityConfigCallbackPairs?.current\n : undefined\n }\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={\n aggressivelyGetLatestDuration ? onScroll : undefined\n }\n testID=\"duration-scroll-flatlist\"\n />\n <View style={styles.pickerLabelContainer} pointerEvents=\"none\">\n {typeof label === \"string\" ? (\n <Text\n allowFontScaling={allowFontScaling}\n style={styles.pickerLabel}>\n {label}\n </Text>\n ) : (\n label ?? null\n )}\n </View>\n {LinearGradient ? (\n <>\n <LinearGradient\n colors={[\n styles.pickerContainer.backgroundColor ??\n \"white\",\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n ]}\n start={{ x: 1, y: 0.3 }}\n end={{ x: 1, y: 1 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...topPickerGradientOverlayProps}\n style={[styles.pickerGradientOverlay, { top: 0 }]}\n />\n <LinearGradient\n colors={[\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n styles.pickerContainer.backgroundColor ??\n \"white\",\n ]}\n start={{ x: 1, y: 0 }}\n end={{ x: 1, y: 0.7 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...bottomPickerGradientOverlayProps}\n style={[\n styles.pickerGradientOverlay,\n { bottom: -1 },\n ]}\n />\n </>\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","options","_customStyles$pickerL","_customStyles$text","_customStyles$pickerI","_customStyles$text2","_customStyles$pickerI2","_customStyles$pickerI3","_customStyles$pickerI4","StyleSheet","create","pickerContainer","flexDirection","marginRight","backgroundColor","theme","pickerLabelContainer","position","right","top","bottom","justifyContent","minWidth","pickerLabel","fontSize","text","fontWeight","marginTop","pickerItem","color","pickerItemContainer","height","alignItems","width","textAlignVertical","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","opacity","disabledPickerItem","pickerGradientOverlay","left","padWithNItems","exports"],"sources":["TimerPicker.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n theme?: \"light\" | \"dark\";\n backgroundColor?: string;\n text?: any;\n pickerContainer?: any;\n pickerLabelContainer?: any;\n pickerLabel?: any;\n pickerAmPmContainer?: any;\n pickerAmPmLabel?: any;\n pickerItemContainer?: any;\n pickerItem?: any;\n disabledPickerContainer?: any;\n disabledPickerItem?: any;\n pickerGradientOverlay?: any;\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 options: { padWithNItems: number }\n) =>\n StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n marginRight: \"8%\",\n backgroundColor:\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n right: 4,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n minWidth:\n (customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) * 0.65,\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop:\n (customStyles?.pickerItem?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n flexDirection: \"row\",\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n width: (customStyles?.pickerItem?.fontSize ?? 25) * 3.6,\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n pickerAmPmContainer: {\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n ...customStyles?.pickerLabelContainer,\n ...customStyles?.pickerAmPmContainer,\n },\n pickerAmPmLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop: (customStyles?.pickerItem?.fontSize ?? 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n ...customStyles?.pickerAmPmLabel,\n },\n disabledPickerContainer: {\n opacity: 0.4,\n ...customStyles?.disabledPickerContainer,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height:\n options.padWithNItems === 0\n ? \"30%\"\n : (customStyles?.pickerItemContainer?.height ?? 50) * 0.8,\n ...customStyles?.pickerGradientOverlay,\n },\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","StyleSheet","create","container","justifyContent","alignItems","overflow","contentContainer","backgroundColor","theme","borderRadius","padding","buttonContainer","flexDirection","marginTop","button","marginHorizontal","paddingVertical","paddingHorizontal","borderWidth","fontSize","text","cancelButton","borderColor","color","undefined","confirmButton","modalTitle","fontWeight","marginBottom","exports"],"sources":["TimerPickerModal.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"./TimerPicker/TimerPicker.styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n container?: any;\n contentContainer?: any;\n buttonContainer?: any;\n button?: any;\n cancelButton?: any;\n confirmButton?: any;\n modalTitle?: any;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerModalStyles | undefined\n) =>\n StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n ...customStyles?.container,\n },\n contentContainer: {\n backgroundColor:\n customStyles?.backgroundColor ?? customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR,\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n padding: 20,\n ...customStyles?.contentContainer,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n ...customStyles?.buttonContainer,\n },\n button: {\n marginHorizontal: 12,\n paddingVertical: 10,\n paddingHorizontal: 20,\n borderWidth: 1,\n borderRadius: 10,\n fontSize: 16,\n overflow: \"hidden\",\n ...customStyles?.text,\n ...customStyles?.button,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"gray\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customStyles?.text,\n ...customStyles?.cancelButton,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"green\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customStyles?.text,\n ...customStyles?.confirmButton,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"bold\",\n marginBottom: 15,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.modalTitle,\n },\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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","hoursPickerIsDisabled","minutesPickerIsDisabled","secondsPickerIsDisabled","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","allowFontScaling","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","reset","options","_timerPickerRef$curre","initialDuration","current","useEffect","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","useCallback","duration","useImperativeHandle","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","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 useEffect,\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 hoursPickerIsDisabled = false,\n minutesPickerIsDisabled = false,\n secondsPickerIsDisabled = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n allowFontScaling = 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 reset = (options?: { animated?: boolean }) => {\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\n // reset state if the initial times change\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialHours, initialMinutes, initialSeconds]);\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,\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 hoursPickerIsDisabled={hoursPickerIsDisabled}\n minutesPickerIsDisabled={minutesPickerIsDisabled}\n secondsPickerIsDisabled={secondsPickerIsDisabled}\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 allowFontScaling={allowFontScaling}\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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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","styles","create","container","position","top","left","right","bottom","backdrop","backgroundColor","opacity","content","flex","justifyContent","alignItems","zIndex"],"sources":["Modal.styles.ts"],"sourcesContent":["import { StyleSheet } from \"react-native\";\n\nexport const styles = StyleSheet.create({\n container: {\n position: \"absolute\",\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n },\n backdrop: {\n position: \"absolute\",\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n backgroundColor: \"black\",\n opacity: 0,\n },\n content: {\n flex: 1,\n justifyContent: \"center\",\n alignItems: \"center\",\n zIndex: 1,\n },\n});"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AAEzC,OAAO,MAAMC,MAAM,GAAGD,UAAU,CAACE,MAAM,CAAC;EACpCC,SAAS,EAAE;IACPC,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNC,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRC,MAAM,EAAE;EACZ,CAAC;EACDC,QAAQ,EAAE;IACNL,QAAQ,EAAE,UAAU;IACpBC,GAAG,EAAE,CAAC;IACNG,MAAM,EAAE,CAAC;IACTF,IAAI,EAAE,CAAC;IACPC,KAAK,EAAE,CAAC;IACRG,eAAe,EAAE,OAAO;IACxBC,OAAO,EAAE;EACb,CAAC;EACDC,OAAO,EAAE;IACLC,IAAI,EAAE,CAAC;IACPC,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,MAAM,EAAE;EACZ;AACJ,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useCallback","forwardRef","useImperativeHandle","View","Text","FlatList","generate12HourNumbers","generateNumbers","colorToRgba","getAdjustedLimit","getScrollIndex","KEY_EXTRACTOR","_","index","toString","DurationScroll","numberOfItems","label","initialValue","onDurationChange","padNumbersWithZero","disableInfiniteScroll","limit","isDisabled","aggressivelyGetLatestDuration","allowFontScaling","is12HourPicker","amLabel","pmLabel","padWithNItems","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","LinearGradient","testID","styles","ref","data","repeatNTimes","numberOfItemsToShow","adjustedLimited","initialScrollIndex","value","latestDuration","flatListRef","reset","options","_flatListRef$current","current","scrollToIndex","animated","setValue","_flatListRef$current2","renderItem","item","stringItem","intItem","isAm","parseInt","includes","replace","createElement","key","style","pickerItemContainer","pickerItem","max","min","disabledPickerItem","pickerAmPmContainer","pointerEvents","pickerAmPmLabel","onScroll","e","newIndex","Math","round","nativeEvent","contentOffset","y","height","newDuration","onMomentumScrollEnd","_flatListRef$current3","targetScrollIndex","_flatListRef$current4","length","onViewableItemsChanged","viewableItems","_viewableItems$","_viewableItems$2","_flatListRef$current5","_flatListRef$current6","getItemLayout","offset","viewabilityConfigCallbackPairs","viewabilityConfig","viewAreaCoveragePercentThreshold","undefined","overflow","disabledPickerContainer","windowSize","keyExtractor","showsVerticalScrollIndicator","decelerationRate","scrollEventThrottle","snapToAlignment","scrollEnabled","snapToOffsets","Array","map","i","pickerLabelContainer","pickerLabel","Fragment","_extends","colors","pickerContainer","backgroundColor","color","opacity","start","x","end","pickerGradientOverlay","top","bottom","memo"],"sources":["DurationScroll.tsx"],"sourcesContent":["import React, {\n useRef,\n useCallback,\n forwardRef,\n useImperativeHandle,\n MutableRefObject,\n} from \"react\";\nimport {\n View,\n Text,\n FlatList,\n ViewabilityConfigCallbackPairs,\n ViewToken,\n NativeSyntheticEvent,\n NativeScrollEvent,\n} from \"react-native\";\n\nimport {\n generate12HourNumbers,\n generateNumbers,\n} from \"../../utils/generateNumbers\";\nimport { colorToRgba } from \"../../utils/colorToRgba\";\nimport { generateStyles } from \"./TimerPicker.styles\";\nimport { getAdjustedLimit } from \"../../utils/getAdjustedLimit\";\nimport { getScrollIndex } from \"../../utils/getScrollIndex\";\n\nexport interface DurationScrollRef {\n reset: (options?: { animated?: boolean }) => void;\n setValue: (value: number, options?: { animated?: boolean }) => void;\n latestDuration: MutableRefObject<number>;\n}\n\ntype LinearGradientPoint = {\n x: number;\n y: number;\n};\n\nexport type LinearGradientProps = React.ComponentProps<typeof View> & {\n colors: string[];\n locations?: number[] | null;\n start?: LinearGradientPoint | null;\n end?: LinearGradientPoint | null;\n};\n\nexport type LimitType = {\n max?: number;\n min?: number;\n};\n\ninterface DurationScrollProps {\n allowFontScaling?: boolean;\n numberOfItems: number;\n label?: string | React.ReactElement;\n initialValue?: number;\n onDurationChange: (duration: number) => void;\n padNumbersWithZero?: boolean;\n disableInfiniteScroll?: boolean;\n isDisabled?: boolean;\n limit?: LimitType;\n aggressivelyGetLatestDuration: boolean;\n is12HourPicker?: boolean;\n amLabel?: string;\n pmLabel?: string;\n padWithNItems: number;\n pickerGradientOverlayProps?: Partial<LinearGradientProps>;\n topPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n bottomPickerGradientOverlayProps?: Partial<LinearGradientProps>;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n LinearGradient?: any;\n testID?: string;\n styles: ReturnType<typeof generateStyles>;\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst KEY_EXTRACTOR = (_: any, index: number) => index.toString();\n\nconst DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(\n (\n {\n numberOfItems,\n label,\n initialValue = 0,\n onDurationChange,\n padNumbersWithZero = false,\n disableInfiniteScroll = false,\n limit,\n isDisabled,\n aggressivelyGetLatestDuration,\n allowFontScaling = false,\n is12HourPicker,\n amLabel,\n pmLabel,\n padWithNItems,\n pickerGradientOverlayProps,\n topPickerGradientOverlayProps,\n bottomPickerGradientOverlayProps,\n LinearGradient,\n testID,\n styles,\n },\n ref\n ): React.ReactElement => {\n const data = !is12HourPicker\n ? generateNumbers(numberOfItems, {\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n })\n : generate12HourNumbers({\n padNumbersWithZero,\n repeatNTimes: 3,\n disableInfiniteScroll,\n padWithNItems,\n });\n\n const numberOfItemsToShow = 1 + padWithNItems * 2;\n\n const adjustedLimited = getAdjustedLimit(limit, numberOfItems);\n\n const initialScrollIndex = getScrollIndex({\n value: initialValue,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n });\n\n const latestDuration = useRef(0);\n\n const flatListRef = useRef<FlatList | null>(null);\n\n useImperativeHandle(ref, () => ({\n reset: (options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: initialScrollIndex,\n });\n },\n setValue: (value, options) => {\n flatListRef.current?.scrollToIndex({\n animated: options?.animated ?? false,\n index: getScrollIndex({\n value: value,\n numberOfItems,\n padWithNItems,\n disableInfiniteScroll,\n }),\n });\n },\n latestDuration: latestDuration,\n }));\n\n const renderItem = useCallback(\n ({ item }: { item: string }) => {\n let stringItem = item;\n let intItem: number;\n let isAm: boolean | undefined;\n\n if (!is12HourPicker) {\n intItem = parseInt(item);\n } else {\n isAm = item.includes(\"AM\");\n stringItem = item.replace(/\\s[AP]M/g, \"\");\n intItem = parseInt(stringItem);\n }\n\n return (\n <View\n key={item}\n style={styles.pickerItemContainer}\n testID=\"picker-item\">\n <Text\n allowFontScaling={allowFontScaling}\n style={[\n styles.pickerItem,\n intItem > adjustedLimited.max ||\n intItem < adjustedLimited.min\n ? styles.disabledPickerItem\n : {},\n ]}>\n {stringItem}\n </Text>\n {is12HourPicker ? (\n <View\n style={styles.pickerAmPmContainer}\n pointerEvents=\"none\">\n <Text\n style={[styles.pickerAmPmLabel]}\n allowFontScaling={allowFontScaling}>\n {isAm ? amLabel : pmLabel}\n </Text>\n </View>\n ) : null}\n </View>\n );\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n allowFontScaling,\n amLabel,\n is12HourPicker,\n pmLabel,\n styles.disabledPickerItem,\n styles.pickerAmPmContainer,\n styles.pickerAmPmLabel,\n styles.pickerItem,\n styles.pickerItemContainer,\n ]\n );\n\n const onScroll = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n // this function is only used when the picker is in a modal\n // it is used to ensure that the modal gets the latest duration on clicking\n // the confirm button, even if the scrollview is still scrolling\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n newDuration = adjustedLimited.min;\n }\n latestDuration.current = newDuration;\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n disableInfiniteScroll,\n numberOfItems,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onMomentumScrollEnd = useCallback(\n (e: NativeSyntheticEvent<NativeScrollEvent>) => {\n const newIndex = Math.round(\n e.nativeEvent.contentOffset.y /\n styles.pickerItemContainer.height\n );\n let newDuration =\n (disableInfiniteScroll\n ? newIndex\n : newIndex + padWithNItems) %\n (numberOfItems + 1);\n\n // check limits\n if (newDuration > adjustedLimited.max) {\n const targetScrollIndex =\n newIndex - (newDuration - adjustedLimited.max);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex >= 0\n ? targetScrollIndex\n : adjustedLimited.max - 1,\n }); // scroll down to max\n newDuration = adjustedLimited.max;\n } else if (newDuration < adjustedLimited.min) {\n const targetScrollIndex =\n newIndex + (adjustedLimited.min - newDuration);\n flatListRef.current?.scrollToIndex({\n animated: true,\n index:\n // guard against scrolling beyond end of list\n targetScrollIndex <= data.length - 1\n ? targetScrollIndex\n : adjustedLimited.min,\n }); // scroll up to min\n newDuration = adjustedLimited.min;\n }\n\n onDurationChange(newDuration);\n },\n [\n adjustedLimited.max,\n adjustedLimited.min,\n data.length,\n disableInfiniteScroll,\n numberOfItems,\n onDurationChange,\n padWithNItems,\n styles.pickerItemContainer.height,\n ]\n );\n\n const onViewableItemsChanged = useCallback(\n ({ viewableItems }: { viewableItems: ViewToken[] }) => {\n if (\n viewableItems[0]?.index &&\n viewableItems[0].index < numberOfItems * 0.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index + numberOfItems,\n });\n } else if (\n viewableItems[0]?.index &&\n viewableItems[0].index >= numberOfItems * 2.5\n ) {\n flatListRef.current?.scrollToIndex({\n animated: false,\n index: viewableItems[0].index - numberOfItems,\n });\n }\n },\n [numberOfItems]\n );\n\n const getItemLayout = useCallback(\n (_: ArrayLike<string> | null | undefined, index: number) => ({\n length: styles.pickerItemContainer.height,\n offset: styles.pickerItemContainer.height * index,\n index,\n }),\n [styles.pickerItemContainer.height]\n );\n\n const viewabilityConfigCallbackPairs =\n useRef<ViewabilityConfigCallbackPairs>([\n {\n viewabilityConfig: { viewAreaCoveragePercentThreshold: 25 },\n onViewableItemsChanged: onViewableItemsChanged,\n },\n ]);\n\n return (\n <View\n testID={testID}\n pointerEvents={isDisabled ? \"none\" : undefined}\n style={[\n {\n height:\n styles.pickerItemContainer.height *\n numberOfItemsToShow,\n overflow: \"visible\",\n },\n isDisabled && styles.disabledPickerContainer,\n ]}>\n <FlatList\n ref={flatListRef}\n data={data}\n getItemLayout={getItemLayout}\n initialScrollIndex={initialScrollIndex}\n windowSize={numberOfItemsToShow}\n renderItem={renderItem}\n keyExtractor={KEY_EXTRACTOR}\n showsVerticalScrollIndicator={false}\n decelerationRate={0.88}\n scrollEventThrottle={16}\n snapToAlignment=\"start\"\n scrollEnabled={!isDisabled}\n // used in place of snapToOffset due to bug on Android\n snapToOffsets={[...Array(data.length)].map(\n (_, i) => i * styles.pickerItemContainer.height\n )}\n viewabilityConfigCallbackPairs={\n !disableInfiniteScroll\n ? viewabilityConfigCallbackPairs?.current\n : undefined\n }\n onMomentumScrollEnd={onMomentumScrollEnd}\n onScroll={\n aggressivelyGetLatestDuration ? onScroll : undefined\n }\n testID=\"duration-scroll-flatlist\"\n />\n <View style={styles.pickerLabelContainer} pointerEvents=\"none\">\n {typeof label === \"string\" ? (\n <Text\n allowFontScaling={allowFontScaling}\n style={styles.pickerLabel}>\n {label}\n </Text>\n ) : (\n label ?? null\n )}\n </View>\n {LinearGradient ? (\n <>\n <LinearGradient\n colors={[\n styles.pickerContainer.backgroundColor ??\n \"white\",\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n ]}\n start={{ x: 1, y: 0.3 }}\n end={{ x: 1, y: 1 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...topPickerGradientOverlayProps}\n style={[styles.pickerGradientOverlay, { top: 0 }]}\n />\n <LinearGradient\n colors={[\n colorToRgba({\n color:\n styles.pickerContainer\n .backgroundColor ?? \"white\",\n opacity: 0,\n }),\n styles.pickerContainer.backgroundColor ??\n \"white\",\n ]}\n start={{ x: 1, y: 0 }}\n end={{ x: 1, y: 0.7 }}\n pointerEvents=\"none\"\n {...pickerGradientOverlayProps}\n {...bottomPickerGradientOverlayProps}\n style={[\n styles.pickerGradientOverlay,\n { bottom: -1 },\n ]}\n />\n </>\n ) : null}\n </View>\n );\n }\n);\n\nexport default React.memo(DurationScroll);\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","options","_customStyles$pickerL","_customStyles$text","_customStyles$pickerI","_customStyles$text2","_customStyles$pickerI2","_customStyles$pickerI3","_customStyles$pickerI4","create","pickerContainer","flexDirection","marginRight","backgroundColor","theme","pickerLabelContainer","position","right","top","bottom","justifyContent","minWidth","pickerLabel","fontSize","text","fontWeight","marginTop","pickerItem","color","pickerItemContainer","height","alignItems","width","textAlignVertical","pickerAmPmContainer","pickerAmPmLabel","disabledPickerContainer","opacity","disabledPickerItem","pickerGradientOverlay","left","padWithNItems"],"sources":["TimerPicker.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nexport interface CustomTimerPickerStyles {\n theme?: \"light\" | \"dark\";\n backgroundColor?: string;\n text?: any;\n pickerContainer?: any;\n pickerLabelContainer?: any;\n pickerLabel?: any;\n pickerAmPmContainer?: any;\n pickerAmPmLabel?: any;\n pickerItemContainer?: any;\n pickerItem?: any;\n disabledPickerContainer?: any;\n disabledPickerItem?: any;\n pickerGradientOverlay?: any;\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 options: { padWithNItems: number }\n) =>\n StyleSheet.create({\n pickerContainer: {\n flexDirection: \"row\",\n marginRight: \"8%\",\n backgroundColor:\n customStyles?.backgroundColor ??\n (customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR),\n ...customStyles?.pickerContainer,\n },\n pickerLabelContainer: {\n position: \"absolute\",\n right: 4,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n minWidth:\n (customStyles?.pickerLabel?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) * 0.65,\n ...customStyles?.pickerLabelContainer,\n },\n pickerLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop:\n (customStyles?.pickerItem?.fontSize ??\n customStyles?.text?.fontSize ??\n 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n },\n pickerItemContainer: {\n flexDirection: \"row\",\n height: 50,\n justifyContent: \"center\",\n alignItems: \"center\",\n width: (customStyles?.pickerItem?.fontSize ?? 25) * 3.6,\n ...customStyles?.pickerItemContainer,\n },\n pickerItem: {\n textAlignVertical: \"center\",\n fontSize: 25,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerItem,\n },\n pickerAmPmContainer: {\n position: \"absolute\",\n right: 0,\n top: 0,\n bottom: 0,\n justifyContent: \"center\",\n ...customStyles?.pickerLabelContainer,\n ...customStyles?.pickerAmPmContainer,\n },\n pickerAmPmLabel: {\n fontSize: 18,\n fontWeight: \"bold\",\n marginTop: (customStyles?.pickerItem?.fontSize ?? 25) / 6,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.pickerLabel,\n ...customStyles?.pickerAmPmLabel,\n },\n disabledPickerContainer: {\n opacity: 0.4,\n ...customStyles?.disabledPickerContainer,\n },\n disabledPickerItem: {\n opacity: 0.2,\n ...customStyles?.disabledPickerItem,\n },\n pickerGradientOverlay: {\n position: \"absolute\",\n left: 0,\n right: 0,\n height:\n options.padWithNItems === 0\n ? \"30%\"\n : (customStyles?.pickerItemContainer?.height ?? 50) * 0.8,\n ...customStyles?.pickerGradientOverlay,\n },\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["StyleSheet","DARK_MODE_BACKGROUND_COLOR","DARK_MODE_TEXT_COLOR","LIGHT_MODE_BACKGROUND_COLOR","LIGHT_MODE_TEXT_COLOR","generateStyles","customStyles","create","container","justifyContent","alignItems","overflow","contentContainer","backgroundColor","theme","borderRadius","padding","buttonContainer","flexDirection","marginTop","button","marginHorizontal","paddingVertical","paddingHorizontal","borderWidth","fontSize","text","cancelButton","borderColor","color","undefined","confirmButton","modalTitle","fontWeight","marginBottom"],"sources":["TimerPickerModal.styles.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { StyleSheet } from \"react-native\";\n\nimport type { CustomTimerPickerStyles } from \"./TimerPicker/TimerPicker.styles\";\n\nexport interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {\n container?: any;\n contentContainer?: any;\n buttonContainer?: any;\n button?: any;\n cancelButton?: any;\n confirmButton?: any;\n modalTitle?: any;\n}\n\nconst DARK_MODE_BACKGROUND_COLOR = \"#232323\";\nconst DARK_MODE_TEXT_COLOR = \"#E9E9E9\";\nconst LIGHT_MODE_BACKGROUND_COLOR = \"#F1F1F1\";\nconst LIGHT_MODE_TEXT_COLOR = \"#1B1B1B\";\n\nexport const generateStyles = (\n customStyles: CustomTimerPickerModalStyles | undefined\n) =>\n StyleSheet.create({\n container: {\n justifyContent: \"center\",\n alignItems: \"center\",\n overflow: \"hidden\",\n ...customStyles?.container,\n },\n contentContainer: {\n backgroundColor:\n customStyles?.backgroundColor ?? customStyles?.theme === \"dark\"\n ? DARK_MODE_BACKGROUND_COLOR\n : LIGHT_MODE_BACKGROUND_COLOR,\n justifyContent: \"center\",\n alignItems: \"center\",\n borderRadius: 20,\n padding: 20,\n ...customStyles?.contentContainer,\n },\n buttonContainer: {\n flexDirection: \"row\",\n marginTop: 25,\n ...customStyles?.buttonContainer,\n },\n button: {\n marginHorizontal: 12,\n paddingVertical: 10,\n paddingHorizontal: 20,\n borderWidth: 1,\n borderRadius: 10,\n fontSize: 16,\n overflow: \"hidden\",\n ...customStyles?.text,\n ...customStyles?.button,\n },\n cancelButton: {\n borderColor: \"gray\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"gray\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"gray\" : undefined,\n ...customStyles?.text,\n ...customStyles?.cancelButton,\n },\n confirmButton: {\n borderColor: \"green\",\n color:\n customStyles?.theme === \"dark\" ? DARK_MODE_TEXT_COLOR : \"green\",\n backgroundColor:\n customStyles?.theme === \"dark\" ? \"green\" : undefined,\n ...customStyles?.text,\n ...customStyles?.confirmButton,\n },\n modalTitle: {\n fontSize: 24,\n fontWeight: \"bold\",\n marginBottom: 15,\n color:\n customStyles?.theme === \"dark\"\n ? DARK_MODE_TEXT_COLOR\n : LIGHT_MODE_TEXT_COLOR,\n ...customStyles?.text,\n ...customStyles?.modalTitle,\n },\n });\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useCallback","useEffect","useImperativeHandle","useRef","useState","View","Text","TouchableOpacity","TimerPicker","Modal","generateStyles","TimerPickerModal","visible","setIsVisible","onConfirm","onCancel","onDurationChange","closeOnOverlayPress","initialHours","initialMinutes","initialSeconds","hideHours","hideMinutes","hideSeconds","hoursPickerIsDisabled","minutesPickerIsDisabled","secondsPickerIsDisabled","hourLimit","minuteLimit","secondLimit","hourLabel","minuteLabel","secondLabel","padWithNItems","disableInfiniteScroll","allowFontScaling","use12HourPicker","amLabel","pmLabel","hideCancelButton","confirmButtonText","cancelButtonText","modalTitle","LinearGradient","modalProps","containerProps","contentContainerProps","pickerContainerProps","buttonContainerProps","buttonTouchableOpacityProps","modalTitleProps","pickerGradientOverlayProps","topPickerGradientOverlayProps","bottomPickerGradientOverlayProps","styles","customStyles","ref","timerPickerRef","selectedDuration","setSelectedDuration","hours","minutes","seconds","confirmedDuration","setConfirmedDuration","reset","options","_timerPickerRef$curre","initialDuration","current","hideModalHandler","confirmHandler","_timerPickerRef$curre2","_latestDuration$hours","_latestDuration$minut","_latestDuration$secon","latestDuration","newDuration","cancelHandler","durationChangeHandler","duration","_timerPickerRef$curre4","_timerPickerRef$curre5","_timerPickerRef$curre6","setValue","value","_timerPickerRef$curre3","createElement","_extends","isVisible","onOverlayPress","undefined","testID","style","container","contentContainer","aggressivelyGetLatestDuration","buttonContainer","onPress","button","cancelButton","confirmButton","memo"],"sources":["index.tsx"],"sourcesContent":["import React, {\n MutableRefObject,\n forwardRef,\n useCallback,\n useEffect,\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 hoursPickerIsDisabled = false,\n minutesPickerIsDisabled = false,\n secondsPickerIsDisabled = false,\n hourLimit,\n minuteLimit,\n secondLimit,\n hourLabel,\n minuteLabel,\n secondLabel,\n padWithNItems = 1,\n disableInfiniteScroll = false,\n allowFontScaling = 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 reset = (options?: { animated?: boolean }) => {\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\n // reset state if the initial times change\n useEffect(() => {\n reset();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialHours, initialMinutes, initialSeconds]);\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,\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 hoursPickerIsDisabled={hoursPickerIsDisabled}\n minutesPickerIsDisabled={minutesPickerIsDisabled}\n secondsPickerIsDisabled={secondsPickerIsDisabled}\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 allowFontScaling={allowFontScaling}\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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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
export interface CustomTimerPickerStyles {
|
|
2
|
-
theme?: "light" | "dark";
|
|
3
|
-
backgroundColor?: string;
|
|
4
|
-
text?: any;
|
|
5
|
-
pickerContainer?: any;
|
|
6
|
-
pickerLabelContainer?: any;
|
|
7
|
-
pickerLabel?: any;
|
|
8
|
-
pickerAmPmContainer?: any;
|
|
9
|
-
pickerAmPmLabel?: any;
|
|
10
|
-
pickerItemContainer?: any;
|
|
11
|
-
pickerItem?: any;
|
|
12
|
-
disabledPickerContainer?: any;
|
|
13
|
-
disabledPickerItem?: any;
|
|
14
|
-
pickerGradientOverlay?: any;
|
|
15
|
-
}
|
|
16
|
-
export declare const generateStyles: (customStyles: CustomTimerPickerStyles | undefined, options: {
|
|
17
|
-
padWithNItems: number;
|
|
18
|
-
}) => {
|
|
19
|
-
pickerContainer: any;
|
|
20
|
-
pickerLabelContainer: any;
|
|
21
|
-
pickerLabel: any;
|
|
22
|
-
pickerItemContainer: any;
|
|
23
|
-
pickerItem: any;
|
|
24
|
-
pickerAmPmContainer: any;
|
|
25
|
-
pickerAmPmLabel: any;
|
|
26
|
-
disabledPickerContainer: any;
|
|
27
|
-
disabledPickerItem: any;
|
|
28
|
-
pickerGradientOverlay: any;
|
|
29
|
-
};
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type { CustomTimerPickerStyles } from "./TimerPicker/TimerPicker.styles";
|
|
2
|
-
export interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {
|
|
3
|
-
container?: any;
|
|
4
|
-
contentContainer?: any;
|
|
5
|
-
buttonContainer?: any;
|
|
6
|
-
button?: any;
|
|
7
|
-
cancelButton?: any;
|
|
8
|
-
confirmButton?: any;
|
|
9
|
-
modalTitle?: any;
|
|
10
|
-
}
|
|
11
|
-
export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles | undefined) => {
|
|
12
|
-
container: any;
|
|
13
|
-
contentContainer: any;
|
|
14
|
-
buttonContainer: any;
|
|
15
|
-
button: any;
|
|
16
|
-
cancelButton: any;
|
|
17
|
-
confirmButton: any;
|
|
18
|
-
modalTitle: any;
|
|
19
|
-
};
|
|
File without changes
|
|
File without changes
|