import * as React from 'react' import { IconButton } from 'react-native-paper' import { StyleSheet } from 'react-native' import DatePickerModal from './DatePickerModal' import { useLatest } from '../utils' import type { DatePickerInputProps } from './DatePickerInput.shared' import DatePickerInputWithoutModal from './DatePickerInputWithoutModal' function DatePickerInput( { withModal = true, calendarIcon = 'calendar', ...rest }: DatePickerInputProps, ref: any ) { const [visible, setVisible] = React.useState(false) const onDismiss = React.useCallback(() => { setVisible(false) }, [setVisible]) const onChangeRef = useLatest(rest.onChange) const onInnerConfirm = React.useCallback( ({ date }: any) => { setVisible(false) onChangeRef.current(date) }, [setVisible, onChangeRef] ) return ( setVisible(true)} /> ) : null } // eslint-disable-next-line react/no-unstable-nested-components modal={({ value, locale, inputMode, validRange, saveLabel, saveLabelDisabled, uppercase, startYear, endYear, inputEnabled, }) => withModal ? ( ) : null } /> ) } const styles = StyleSheet.create({ calendarButton: { position: 'absolute', right: 0, zIndex: 10 }, }) export default React.forwardRef(DatePickerInput)