import React, { useState, useCallback } from 'react'; import { View } from 'react-native'; import TextInput from '../TextInput'; import AndroidDatePickerDialog from './Dialog/AndroidDialog'; import useCalculateDate from './hooks/useCalculateDate'; import useFormatDate from './hooks/useFormatDate'; import { StyledTouchableOpacity } from './StyledDatePicker'; import type { InternalDatePickerProps } from './types'; type DatePickerAndroidProps = Omit< InternalDatePickerProps, 'variant' | 'monthPickerConfirmLabel' | 'monthPickerCancelLabel' > & { variant?: 'default' | 'month-year'; }; const DatePickerAndroid = ({ value, minDate, maxDate, label, placeholder, onChange, displayFormat, disabled = false, required, error, helpText, style, testID, variant = 'default', renderSelectedValue, locale, TextInputComponent, inputProps, groupStyleEnabled = false, }: DatePickerAndroidProps) => { const [open, setOpen] = useState(false); const { displayValue, format } = useFormatDate({ displayFormat, locale, value, }); useCalculateDate({ minDate, maxDate, onChange, value }); const InputComponent = TextInputComponent || TextInput; const onPress = useCallback(() => { setOpen(true); }, []); return ( renderSelectedValue( { date: value, formattedDateString: displayValue, }, props ) : undefined } /> setOpen(false)} value={value} minDate={minDate} maxDate={maxDate} onChange={onChange} variant={variant} /> ); }; export default DatePickerAndroid;