diff options
Diffstat (limited to 'src/components/forms/DateField/index.tsx')
-rw-r--r-- | src/components/forms/DateField/index.tsx | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/components/forms/DateField/index.tsx b/src/components/forms/DateField/index.tsx index eca4d5cbd..b8ecf2e6f 100644 --- a/src/components/forms/DateField/index.tsx +++ b/src/components/forms/DateField/index.tsx @@ -1,4 +1,4 @@ -import React from 'react' +import {useCallback, useImperativeHandle} from 'react' import {Keyboard, View} from 'react-native' import DatePicker from 'react-native-date-picker' import {msg, Trans} from '@lingui/macro' @@ -25,6 +25,7 @@ export const LabelText = TextField.LabelText */ export function DateField({ value, + inputRef, onChangeDate, testID, label, @@ -36,7 +37,7 @@ export function DateField({ const t = useTheme() const control = Dialog.useDialogControl() - const onChangeInternal = React.useCallback( + const onChangeInternal = useCallback( (date: Date | undefined) => { if (date) { const formatted = toSimpleDateString(date) @@ -46,6 +47,20 @@ export function DateField({ [onChangeDate], ) + useImperativeHandle( + inputRef, + () => ({ + focus: () => { + Keyboard.dismiss() + control.open() + }, + blur: () => { + control.close() + }, + }), + [control], + ) + return ( <> <DateFieldButton |