react-native-timer-picker 1.4.0 → 1.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,17 +1,290 @@
1
+ import { Text, View } from "react-native";
1
2
  import type { CustomTimerPickerStyles } from "./TimerPicker/TimerPicker.styles";
3
+ import { ComponentProps } from "react";
2
4
  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;
5
+ container?: ComponentProps<typeof View>;
6
+ contentContainer?: ComponentProps<typeof View>;
7
+ buttonContainer?: ComponentProps<typeof View>;
8
+ button?: ComponentProps<typeof Text>;
9
+ cancelButton?: ComponentProps<typeof Text>;
10
+ confirmButton?: ComponentProps<typeof Text>;
11
+ modalTitle?: ComponentProps<typeof Text>;
10
12
  }
11
13
  export declare const generateStyles: (customStyles: CustomTimerPickerModalStyles | undefined) => {
12
- container: any;
13
- contentContainer: any;
14
- buttonContainer: any;
14
+ container: {
15
+ children?: import("react").ReactNode;
16
+ hitSlop?: import("react-native").Insets | undefined;
17
+ id?: string | undefined;
18
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | undefined;
19
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
20
+ removeClippedSubviews?: boolean | undefined;
21
+ style?: import("react-native").StyleProp<import("react-native").ViewStyle>;
22
+ testID?: string | undefined;
23
+ nativeID?: string | undefined;
24
+ collapsable?: boolean | undefined;
25
+ needsOffscreenAlphaCompositing?: boolean | undefined;
26
+ renderToHardwareTextureAndroid?: boolean | undefined;
27
+ focusable?: boolean | undefined;
28
+ shouldRasterizeIOS?: boolean | undefined;
29
+ isTVSelectable?: boolean | undefined;
30
+ hasTVPreferredFocus?: boolean | undefined;
31
+ tvParallaxProperties?: import("react-native").TVParallaxProperties | undefined;
32
+ tvParallaxShiftDistanceX?: number | undefined;
33
+ tvParallaxShiftDistanceY?: number | undefined;
34
+ tvParallaxTiltAngle?: number | undefined;
35
+ tvParallaxMagnification?: number | undefined;
36
+ onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
37
+ onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
38
+ onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
39
+ onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
40
+ onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
41
+ onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
42
+ onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
43
+ onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
44
+ onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
45
+ onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
46
+ onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
47
+ onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
48
+ onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
49
+ onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
50
+ onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
51
+ onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
52
+ onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
53
+ onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | undefined;
54
+ onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
55
+ onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | undefined;
56
+ onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
57
+ onPointerMove?: ((event: import("react-native").PointerEvent) => void) | undefined;
58
+ onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
59
+ onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | undefined;
60
+ onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
61
+ onPointerDown?: ((event: import("react-native").PointerEvent) => void) | undefined;
62
+ onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
63
+ onPointerUp?: ((event: import("react-native").PointerEvent) => void) | undefined;
64
+ onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
65
+ accessible?: boolean | undefined;
66
+ accessibilityActions?: readonly Readonly<{
67
+ name: string;
68
+ label?: string | undefined;
69
+ }>[] | undefined;
70
+ accessibilityLabel?: string | undefined;
71
+ 'aria-label'?: string | undefined;
72
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
73
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
74
+ 'aria-busy'?: boolean | undefined;
75
+ 'aria-checked'?: boolean | "mixed" | undefined;
76
+ 'aria-disabled'?: boolean | undefined;
77
+ 'aria-expanded'?: boolean | undefined;
78
+ 'aria-selected'?: boolean | undefined;
79
+ 'aria-labelledby'?: string | undefined;
80
+ accessibilityHint?: string | undefined;
81
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
82
+ 'aria-valuemax'?: number | undefined;
83
+ 'aria-valuemin'?: number | undefined;
84
+ 'aria-valuenow'?: number | undefined;
85
+ 'aria-valuetext'?: string | undefined;
86
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | undefined;
87
+ importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | undefined;
88
+ 'aria-hidden'?: boolean | undefined;
89
+ 'aria-live'?: "polite" | "assertive" | "off" | undefined;
90
+ 'aria-modal'?: boolean | undefined;
91
+ role?: import("react-native").Role | undefined;
92
+ accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined;
93
+ accessibilityLabelledBy?: string | string[] | undefined;
94
+ accessibilityElementsHidden?: boolean | undefined;
95
+ accessibilityViewIsModal?: boolean | undefined;
96
+ onAccessibilityEscape?: (() => void) | undefined;
97
+ onAccessibilityTap?: (() => void) | undefined;
98
+ onMagicTap?: (() => void) | undefined;
99
+ accessibilityIgnoresInvertColors?: boolean | undefined;
100
+ accessibilityLanguage?: string | undefined;
101
+ justifyContent: "center";
102
+ alignItems: "center";
103
+ overflow: "hidden";
104
+ };
105
+ contentContainer: {
106
+ children?: import("react").ReactNode;
107
+ hitSlop?: import("react-native").Insets | undefined;
108
+ id?: string | undefined;
109
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | undefined;
110
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
111
+ removeClippedSubviews?: boolean | undefined;
112
+ style?: import("react-native").StyleProp<import("react-native").ViewStyle>;
113
+ testID?: string | undefined;
114
+ nativeID?: string | undefined;
115
+ collapsable?: boolean | undefined;
116
+ needsOffscreenAlphaCompositing?: boolean | undefined;
117
+ renderToHardwareTextureAndroid?: boolean | undefined;
118
+ focusable?: boolean | undefined;
119
+ shouldRasterizeIOS?: boolean | undefined;
120
+ isTVSelectable?: boolean | undefined;
121
+ hasTVPreferredFocus?: boolean | undefined;
122
+ tvParallaxProperties?: import("react-native").TVParallaxProperties | undefined;
123
+ tvParallaxShiftDistanceX?: number | undefined;
124
+ tvParallaxShiftDistanceY?: number | undefined;
125
+ tvParallaxTiltAngle?: number | undefined;
126
+ tvParallaxMagnification?: number | undefined;
127
+ onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
128
+ onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
129
+ onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
130
+ onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
131
+ onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
132
+ onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
133
+ onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
134
+ onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
135
+ onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
136
+ onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
137
+ onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
138
+ onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
139
+ onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
140
+ onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
141
+ onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
142
+ onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
143
+ onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
144
+ onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | undefined;
145
+ onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
146
+ onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | undefined;
147
+ onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
148
+ onPointerMove?: ((event: import("react-native").PointerEvent) => void) | undefined;
149
+ onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
150
+ onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | undefined;
151
+ onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
152
+ onPointerDown?: ((event: import("react-native").PointerEvent) => void) | undefined;
153
+ onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
154
+ onPointerUp?: ((event: import("react-native").PointerEvent) => void) | undefined;
155
+ onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
156
+ accessible?: boolean | undefined;
157
+ accessibilityActions?: readonly Readonly<{
158
+ name: string;
159
+ label?: string | undefined;
160
+ }>[] | undefined;
161
+ accessibilityLabel?: string | undefined;
162
+ 'aria-label'?: string | undefined;
163
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
164
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
165
+ 'aria-busy'?: boolean | undefined;
166
+ 'aria-checked'?: boolean | "mixed" | undefined;
167
+ 'aria-disabled'?: boolean | undefined;
168
+ 'aria-expanded'?: boolean | undefined;
169
+ 'aria-selected'?: boolean | undefined;
170
+ 'aria-labelledby'?: string | undefined;
171
+ accessibilityHint?: string | undefined;
172
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
173
+ 'aria-valuemax'?: number | undefined;
174
+ 'aria-valuemin'?: number | undefined;
175
+ 'aria-valuenow'?: number | undefined;
176
+ 'aria-valuetext'?: string | undefined;
177
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | undefined;
178
+ importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | undefined;
179
+ 'aria-hidden'?: boolean | undefined;
180
+ 'aria-live'?: "polite" | "assertive" | "off" | undefined;
181
+ 'aria-modal'?: boolean | undefined;
182
+ role?: import("react-native").Role | undefined;
183
+ accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined;
184
+ accessibilityLabelledBy?: string | string[] | undefined;
185
+ accessibilityElementsHidden?: boolean | undefined;
186
+ accessibilityViewIsModal?: boolean | undefined;
187
+ onAccessibilityEscape?: (() => void) | undefined;
188
+ onAccessibilityTap?: (() => void) | undefined;
189
+ onMagicTap?: (() => void) | undefined;
190
+ accessibilityIgnoresInvertColors?: boolean | undefined;
191
+ accessibilityLanguage?: string | undefined;
192
+ backgroundColor: string;
193
+ justifyContent: "center";
194
+ alignItems: "center";
195
+ borderRadius: number;
196
+ padding: number;
197
+ };
198
+ buttonContainer: {
199
+ children?: import("react").ReactNode;
200
+ hitSlop?: import("react-native").Insets | undefined;
201
+ id?: string | undefined;
202
+ onLayout?: ((event: import("react-native").LayoutChangeEvent) => void) | undefined;
203
+ pointerEvents?: "box-none" | "none" | "box-only" | "auto" | undefined;
204
+ removeClippedSubviews?: boolean | undefined;
205
+ style?: import("react-native").StyleProp<import("react-native").ViewStyle>;
206
+ testID?: string | undefined;
207
+ nativeID?: string | undefined;
208
+ collapsable?: boolean | undefined;
209
+ needsOffscreenAlphaCompositing?: boolean | undefined;
210
+ renderToHardwareTextureAndroid?: boolean | undefined;
211
+ focusable?: boolean | undefined;
212
+ shouldRasterizeIOS?: boolean | undefined;
213
+ isTVSelectable?: boolean | undefined;
214
+ hasTVPreferredFocus?: boolean | undefined;
215
+ tvParallaxProperties?: import("react-native").TVParallaxProperties | undefined;
216
+ tvParallaxShiftDistanceX?: number | undefined;
217
+ tvParallaxShiftDistanceY?: number | undefined;
218
+ tvParallaxTiltAngle?: number | undefined;
219
+ tvParallaxMagnification?: number | undefined;
220
+ onStartShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
221
+ onMoveShouldSetResponder?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
222
+ onResponderEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
223
+ onResponderGrant?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
224
+ onResponderReject?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
225
+ onResponderMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
226
+ onResponderRelease?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
227
+ onResponderStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
228
+ onResponderTerminationRequest?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
229
+ onResponderTerminate?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
230
+ onStartShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
231
+ onMoveShouldSetResponderCapture?: ((event: import("react-native").GestureResponderEvent) => boolean) | undefined;
232
+ onTouchStart?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
233
+ onTouchMove?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
234
+ onTouchEnd?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
235
+ onTouchCancel?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
236
+ onTouchEndCapture?: ((event: import("react-native").GestureResponderEvent) => void) | undefined;
237
+ onPointerEnter?: ((event: import("react-native").PointerEvent) => void) | undefined;
238
+ onPointerEnterCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
239
+ onPointerLeave?: ((event: import("react-native").PointerEvent) => void) | undefined;
240
+ onPointerLeaveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
241
+ onPointerMove?: ((event: import("react-native").PointerEvent) => void) | undefined;
242
+ onPointerMoveCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
243
+ onPointerCancel?: ((event: import("react-native").PointerEvent) => void) | undefined;
244
+ onPointerCancelCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
245
+ onPointerDown?: ((event: import("react-native").PointerEvent) => void) | undefined;
246
+ onPointerDownCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
247
+ onPointerUp?: ((event: import("react-native").PointerEvent) => void) | undefined;
248
+ onPointerUpCapture?: ((event: import("react-native").PointerEvent) => void) | undefined;
249
+ accessible?: boolean | undefined;
250
+ accessibilityActions?: readonly Readonly<{
251
+ name: string;
252
+ label?: string | undefined;
253
+ }>[] | undefined;
254
+ accessibilityLabel?: string | undefined;
255
+ 'aria-label'?: string | undefined;
256
+ accessibilityRole?: import("react-native").AccessibilityRole | undefined;
257
+ accessibilityState?: import("react-native").AccessibilityState | undefined;
258
+ 'aria-busy'?: boolean | undefined;
259
+ 'aria-checked'?: boolean | "mixed" | undefined;
260
+ 'aria-disabled'?: boolean | undefined;
261
+ 'aria-expanded'?: boolean | undefined;
262
+ 'aria-selected'?: boolean | undefined;
263
+ 'aria-labelledby'?: string | undefined;
264
+ accessibilityHint?: string | undefined;
265
+ accessibilityValue?: import("react-native").AccessibilityValue | undefined;
266
+ 'aria-valuemax'?: number | undefined;
267
+ 'aria-valuemin'?: number | undefined;
268
+ 'aria-valuenow'?: number | undefined;
269
+ 'aria-valuetext'?: string | undefined;
270
+ onAccessibilityAction?: ((event: import("react-native").AccessibilityActionEvent) => void) | undefined;
271
+ importantForAccessibility?: "auto" | "yes" | "no" | "no-hide-descendants" | undefined;
272
+ 'aria-hidden'?: boolean | undefined;
273
+ 'aria-live'?: "polite" | "assertive" | "off" | undefined;
274
+ 'aria-modal'?: boolean | undefined;
275
+ role?: import("react-native").Role | undefined;
276
+ accessibilityLiveRegion?: "none" | "polite" | "assertive" | undefined;
277
+ accessibilityLabelledBy?: string | string[] | undefined;
278
+ accessibilityElementsHidden?: boolean | undefined;
279
+ accessibilityViewIsModal?: boolean | undefined;
280
+ onAccessibilityEscape?: (() => void) | undefined;
281
+ onAccessibilityTap?: (() => void) | undefined;
282
+ onMagicTap?: (() => void) | undefined;
283
+ accessibilityIgnoresInvertColors?: boolean | undefined;
284
+ accessibilityLanguage?: string | undefined;
285
+ flexDirection: "row";
286
+ marginTop: number;
287
+ };
15
288
  button: any;
16
289
  cancelButton: any;
17
290
  confirmButton: any;
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "react-native-timer-picker",
3
- "description": "A simple, flexible, performant duration picker for Expo React Native apps 🔥\n\nGreat for timers, alarms and duration inputs ⏰🕰️⏳",
3
+ "description": "A simple, flexible, performant duration picker for React Native apps 🔥\n\nGreat for timers, alarms and duration inputs ⏰🕰️⏳",
4
4
  "author": {
5
5
  "name": "Tim Roberts",
6
6
  "url": "https://github.com/troberts-28"
7
7
  },
8
8
  "license": "MIT",
9
- "version": "1.4.0",
9
+ "version": "1.5.0",
10
10
  "main": "dist/commonjs/index.js",
11
11
  "types": "dist/typescript/src/index.d.ts",
12
12
  "scripts": {
@@ -48,6 +48,7 @@ export type LimitType = {
48
48
  };
49
49
 
50
50
  interface DurationScrollProps {
51
+ allowFontScaling?: boolean;
51
52
  numberOfItems: number;
52
53
  label?: string | React.ReactElement;
53
54
  initialValue?: number;
@@ -83,6 +84,7 @@ const DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(
83
84
  disableInfiniteScroll = false,
84
85
  limit,
85
86
  aggressivelyGetLatestDuration,
87
+ allowFontScaling = false,
86
88
  is12HourPicker,
87
89
  amLabel,
88
90
  pmLabel,
@@ -166,6 +168,7 @@ const DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(
166
168
  style={styles.pickerItemContainer}
167
169
  testID="picker-item">
168
170
  <Text
171
+ allowFontScaling={allowFontScaling}
169
172
  style={[
170
173
  styles.pickerItem,
171
174
  intItem > adjustedLimited.max ||
@@ -179,7 +182,9 @@ const DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(
179
182
  <View
180
183
  style={styles.pickerAmPmContainer}
181
184
  pointerEvents="none">
182
- <Text style={[styles.pickerAmPmLabel]}>
185
+ <Text
186
+ style={[styles.pickerAmPmLabel]}
187
+ allowFontScaling={allowFontScaling}>
183
188
  {isAm ? amLabel : pmLabel}
184
189
  </Text>
185
190
  </View>
@@ -190,6 +195,7 @@ const DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(
190
195
  [
191
196
  adjustedLimited.max,
192
197
  adjustedLimited.min,
198
+ allowFontScaling,
193
199
  amLabel,
194
200
  is12HourPicker,
195
201
  pmLabel,
@@ -364,7 +370,11 @@ const DurationScroll = forwardRef<DurationScrollRef, DurationScrollProps>(
364
370
  />
365
371
  <View style={styles.pickerLabelContainer} pointerEvents="none">
366
372
  {typeof label === "string" ? (
367
- <Text style={styles.pickerLabel}>{label}</Text>
373
+ <Text
374
+ allowFontScaling={allowFontScaling}
375
+ style={styles.pickerLabel}>
376
+ {label}
377
+ </Text>
368
378
  ) : (
369
379
  label ?? null
370
380
  )}
@@ -32,6 +32,7 @@ export interface TimerPickerRef {
32
32
  }
33
33
 
34
34
  export interface TimerPickerProps {
35
+ allowFontScaling?: boolean;
35
36
  onDurationChange?: (duration: {
36
37
  hours: number;
37
38
  minutes: number;
@@ -67,6 +68,7 @@ export interface TimerPickerProps {
67
68
  const TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(
68
69
  (
69
70
  {
71
+ allowFontScaling = false,
70
72
  onDurationChange,
71
73
  initialHours = 0,
72
74
  initialMinutes = 0,
@@ -167,6 +169,7 @@ const TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(
167
169
  hourLabel ?? (!use12HourPicker ? "h" : undefined)
168
170
  }
169
171
  initialValue={initialHours}
172
+ allowFontScaling={allowFontScaling}
170
173
  aggressivelyGetLatestDuration={
171
174
  aggressivelyGetLatestDuration
172
175
  }
@@ -195,6 +198,7 @@ const TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(
195
198
  numberOfItems={59}
196
199
  label={minuteLabel ?? "m"}
197
200
  initialValue={initialMinutes}
201
+ allowFontScaling={allowFontScaling}
198
202
  aggressivelyGetLatestDuration={
199
203
  aggressivelyGetLatestDuration
200
204
  }
@@ -221,6 +225,7 @@ const TimerPicker = forwardRef<TimerPickerRef, TimerPickerProps>(
221
225
  numberOfItems={59}
222
226
  label={secondLabel ?? "s"}
223
227
  initialValue={initialSeconds}
228
+ allowFontScaling={allowFontScaling}
224
229
  aggressivelyGetLatestDuration={
225
230
  aggressivelyGetLatestDuration
226
231
  }
@@ -1,16 +1,17 @@
1
1
  /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { StyleSheet } from "react-native";
2
+ import { StyleSheet, Text, View } from "react-native";
3
3
 
4
4
  import type { CustomTimerPickerStyles } from "./TimerPicker/TimerPicker.styles";
5
+ import { ComponentProps } from "react";
5
6
 
6
7
  export interface CustomTimerPickerModalStyles extends CustomTimerPickerStyles {
7
- container?: any;
8
- contentContainer?: any;
9
- buttonContainer?: any;
10
- button?: any;
11
- cancelButton?: any;
12
- confirmButton?: any;
13
- modalTitle?: any;
8
+ container?: ComponentProps<typeof View>;
9
+ contentContainer?: ComponentProps<typeof View>;
10
+ buttonContainer?: ComponentProps<typeof View>;
11
+ button?: ComponentProps<typeof Text>;
12
+ cancelButton?: ComponentProps<typeof Text>;
13
+ confirmButton?: ComponentProps<typeof Text>;
14
+ modalTitle?: ComponentProps<typeof Text>;
14
15
  }
15
16
 
16
17
  const DARK_MODE_BACKGROUND_COLOR = "#232323";
@@ -83,6 +83,7 @@ const TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(
83
83
  secondLabel,
84
84
  padWithNItems = 1,
85
85
  disableInfiniteScroll = false,
86
+ allowFontScaling = false,
86
87
  use12HourPicker,
87
88
  amLabel,
88
89
  pmLabel,
@@ -219,6 +220,7 @@ const TimerPickerModal = forwardRef<TimerPickerModalRef, TimerPickerModalProps>(
219
220
  secondLabel={secondLabel}
220
221
  padWithNItems={padWithNItems}
221
222
  disableInfiniteScroll={disableInfiniteScroll}
223
+ allowFontScaling={allowFontScaling}
222
224
  use12HourPicker={use12HourPicker}
223
225
  amLabel={amLabel}
224
226
  pmLabel={pmLabel}