diff --git a/packages/ui/src/components/_date-input/DateInput.tsx b/packages/ui/src/components/_date-input/DateInput.tsx index 14e0b194..97c050ad 100644 --- a/packages/ui/src/components/_date-input/DateInput.tsx +++ b/packages/ui/src/components/_date-input/DateInput.tsx @@ -57,6 +57,7 @@ export interface DDateInputProps extends Omit void) | undefined; onUpdatePanel: ((date: Date) => void) | undefined; afterVisibleChange: ((visible: boolean) => void) | undefined; + onClear: (() => void) | undefined; } function DateInput(props: DDateInputProps, ref: React.ForwardedRef): JSX.Element | null { @@ -81,6 +82,7 @@ function DateInput(props: DDateInputProps, ref: React.ForwardedRef diff --git a/packages/ui/src/components/date-picker/DatePicker.tsx b/packages/ui/src/components/date-picker/DatePicker.tsx index 3d056c18..2f403399 100644 --- a/packages/ui/src/components/date-picker/DatePicker.tsx +++ b/packages/ui/src/components/date-picker/DatePicker.tsx @@ -47,6 +47,7 @@ export interface DDatePickerProps extends Omit void; onVisibleChange?: (visible: boolean) => void; afterVisibleChange?: (visible: boolean) => void; + onClear?: () => void; } const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DDatePicker' as const }); @@ -72,6 +73,7 @@ function DatePicker(props: DDatePickerProps, ref: React.ForwardedRef {({ date, isFocus, changeDate, renderPopup }) => { const index = isFocus[0] ? 0 : 1; diff --git a/packages/ui/src/components/input/Input.tsx b/packages/ui/src/components/input/Input.tsx index fc02c4f8..fff39ed4 100644 --- a/packages/ui/src/components/input/Input.tsx +++ b/packages/ui/src/components/input/Input.tsx @@ -37,6 +37,7 @@ export interface DInputProps extends Omit, dDisabled?: boolean; dInputRender?: DCloneHTMLElement>; onModelChange?: (value: string) => void; + onClear?: () => void; onPasswordChange?: (value: boolean) => void; } @@ -44,23 +45,24 @@ const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DInput' as c export function DInput(props: DInputProps): JSX.Element | null { const { dRef, - dType, - dMax, - dMin, - dStep, - dInteger = false, - dPlaceholder, - dDisabled = false, dFormControl, dModel, + dType, dPrefix: dPrefixNode, dSuffix, dPassword, dNumbetButton = true, dClearable = false, dSize, + dMax, + dMin, + dStep, + dInteger = false, + dPlaceholder, + dDisabled = false, dInputRender, onModelChange, + onClear, onPasswordChange, ...restProps @@ -254,6 +256,7 @@ export function DInput(props: DInputProps): JSX.Element | null { aria-label={t('Clear')} onClick={() => { changeValue(''); + onClear?.(); }} > diff --git a/packages/ui/src/components/time-picker/TimePicker.tsx b/packages/ui/src/components/time-picker/TimePicker.tsx index 6041bad5..c96a1cbf 100644 --- a/packages/ui/src/components/time-picker/TimePicker.tsx +++ b/packages/ui/src/components/time-picker/TimePicker.tsx @@ -50,6 +50,7 @@ export interface DTimePickerProps extends Omit void; onVisibleChange?: (visible: boolean) => void; afterVisibleChange?: (visible: boolean) => void; + onClear?: () => void; } const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DTimePicker' as const }); @@ -74,6 +75,7 @@ function TimePicker(props: DTimePickerProps, ref: React.ForwardedRef {({ date, isFocus, changeDate, renderPopup }) => renderPopup(