import * as React from 'react'; import { Omit } from 'utility-types'; import { FormField } from 'zent'; import { IFormComponentProps, dateRangeDefaultValueFactory, IFormFieldChildProps, } from 'zent/es/form/shared'; import { $MergeParams } from 'zent/es/form/utils'; import { useEventCallbackRef } from 'zent/es/utils/hooks/useEventCallbackRef'; import DateRangeQuickPicker, { IDateRangeQuickPickerProps, } from '../../date-range-quick-picker'; import { DatePickers } from '../../datetimepicker/common/types'; export type IFormDateRangeQuickPickerFieldProps = IFormComponentProps< DatePickers.RangeValue, Omit >; const DateRangeQuickPickerField: React.FC<{ childProps: IFormFieldChildProps; props: IFormDateRangeQuickPickerFieldProps; }> = ({ childProps, props }) => { const [chosenDays, setChosenDays] = React.useState( undefined ); const onChangeRef = useEventCallbackRef(childProps.onChange); const onChange = React.useCallback( (value: DatePickers.RangeValue, chosenDays: number) => { onChangeRef.current?.(value); setChosenDays(chosenDays); }, [onChangeRef] ); return ( ); }; export const FormDateRangeQuickPickerField: React.FunctionComponent = props => { return ( ) .defaultValue || dateRangeDefaultValueFactory } > {childProps => ( )} ); };