import type { StyleProp, ViewStyle } from 'react-native'; import type { TextInputProps } from '../TextInput'; export interface TimePickerProps { /** * Time picker input label. */ label: string; /** * Current time value. Must be in correct default format or format provided via format prop. */ value?: Date; /** * Input placeholder. Time format will be used as placeholder if not specified. */ placeholder?: string; /** * Callback that is called when new value is selected. */ onChange: (value: Date) => void; /** * Confirm label text. iOS only. */ confirmLabel: string; /** * Time display format of current value presented on the input. Default format is: HH:mm aa. * Following date-fns's format (https://date-fns.org/v2.16.1/docs/format). * This also change how the time picker display between 24 hour and 12 hour mode. */ displayFormat?: string; /** * Whether the Time picker is disabled. */ disabled?: boolean; /** * Error message to display. */ error?: string; /** * Whether the value is required, if true, an asterisk will be appended to the label. */ required?: boolean; /** * The helper text to display. */ helpText?: string; /** * hides icon */ showSuffix?: boolean; /** * Addtional style. */ style?: StyleProp; /** * Testing id of the component. */ testID?: string; /** * Supported orientations for the TimePicker modal, iOS only. */ supportedOrientations?: ('portrait' | 'landscape')[]; } // Add an internal prop type for TextInputComponent, not exported export interface InternalTimePickerProps extends TimePickerProps { /** * Props that are passed to TextInput. */ inputProps?: Pick; /** * Whether the component is used within a FormGroup for styling purposes. */ groupStyleEnabled?: boolean; /** * Input component to use instead of the default TextInput. */ TextInputComponent?: React.ComponentType; }