import {useCallback, useState} from 'react' import {StyleProp, StyleSheet, TextStyle, View, ViewStyle} from 'react-native' import DatePicker from 'react-native-date-picker' import { FontAwesomeIcon, FontAwesomeIconStyle, } from '@fortawesome/react-native-fontawesome' import {useLingui} from '@lingui/react' import {usePalette} from '#/lib/hooks/usePalette' import {TypographyVariant} from '#/lib/ThemeContext' import {useTheme} from '#/lib/ThemeContext' import {isAndroid, isIOS} from '#/platform/detection' import {Text} from '../text/Text' import {Button, ButtonType} from './Button' interface Props { testID?: string value: Date onChange: (date: Date) => void buttonType?: ButtonType buttonStyle?: StyleProp buttonLabelType?: TypographyVariant buttonLabelStyle?: StyleProp accessibilityLabel: string accessibilityHint: string accessibilityLabelledBy?: string handleAsUTC?: boolean } export function DateInput(props: Props) { const {i18n} = useLingui() const [show, setShow] = useState(false) const theme = useTheme() const pal = usePalette('default') const onChangeInternal = useCallback( (date: Date) => { setShow(false) props.onChange(date) }, [setShow, props], ) const onPress = useCallback(() => { setShow(true) }, [setShow]) const onCancel = useCallback(() => { setShow(false) }, []) return ( {isAndroid && ( )} {(isIOS || show) && ( )} ) } const styles = StyleSheet.create({ button: { flexDirection: 'row', alignItems: 'center', gap: 10, }, })