import React, { useMemo, useRef } from 'react' import { TypeGuards } from '@codeleap/types' import { useConditionalState } from '@codeleap/hooks' import DatePicker from 'react-native-date-picker' import { Modal } from '../Modal' import { TextInput } from '../TextInput' import { Button } from '../Button' import { DatePickerModalProps } from './types' import { AnyRecord, IJSX, StyledComponentProps, useCompositionStyles } from '@codeleap/styles' import { MobileStyleRegistry } from '../../Registry' import { useStylesFor } from '../../hooks' import { DateField, fields } from '@codeleap/form' import { useInputBase } from '../InputBase/useInputBase' export * from './styles' export * from './types' const OuterInputComponent: DatePickerModalProps['outerInputComponent'] = (props) => { const { debugName, toggle, valueLabel, placeholder, ...otherProps } = props return } /** Uses local `Date` getters (not UTC), so the displayed string shifts with the device timezone. Pass a custom `formatDate` to normalise if the stored value is UTC. */ const defaultFormatDate: DatePickerModalProps['formatDate'] = (_date) => { if (!_date) return null const date = new Date(_date) return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}` } const DefaultFooter: DatePickerModalProps['footerComponent'] = (props) => { const { debugName, commitDate, showDoneButton, confirm, confirmButtonProps = {}, cancelButtonProps = {}, toggle, cancelStyles, confirmStyles, doneStyles, } = props if (commitDate == 'onConfirm') { return <>