Skip to content

Commit 740dec0

Browse files
committed
feat(ui): add onClear event
1 parent 16a7c83 commit 740dec0

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

packages/ui/src/components/_date-input/DateInput.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@ export interface DDateInputProps extends Omit<React.HTMLAttributes<HTMLDivElemen
5757
onVisibleChange: ((visible: boolean) => void) | undefined;
5858
onUpdatePanel: ((date: Date) => void) | undefined;
5959
afterVisibleChange: ((visible: boolean) => void) | undefined;
60+
onClear: (() => void) | undefined;
6061
}
6162

6263
function DateInput(props: DDateInputProps, ref: React.ForwardedRef<DDateInputRef>): JSX.Element | null {
@@ -81,6 +82,7 @@ function DateInput(props: DDateInputProps, ref: React.ForwardedRef<DDateInputRef
8182
onVisibleChange,
8283
onUpdatePanel,
8384
afterVisibleChange,
85+
onClear,
8486

8587
...restProps
8688
} = props;
@@ -417,6 +419,7 @@ function DateInput(props: DDateInputProps, ref: React.ForwardedRef<DDateInputRef
417419
e.stopPropagation();
418420

419421
_changeValue(null);
422+
onClear?.();
420423
}}
421424
>
422425
<CloseCircleFilled />

packages/ui/src/components/date-picker/DatePicker.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ export interface DDatePickerProps extends Omit<React.HTMLAttributes<HTMLDivEleme
4747
onModelChange?: (date: any) => void;
4848
onVisibleChange?: (visible: boolean) => void;
4949
afterVisibleChange?: (visible: boolean) => void;
50+
onClear?: () => void;
5051
}
5152

5253
const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DDatePicker' as const });
@@ -72,6 +73,7 @@ function DatePicker(props: DDatePickerProps, ref: React.ForwardedRef<DDateInputR
7273
onModelChange,
7374
onVisibleChange,
7475
afterVisibleChange,
76+
onClear,
7577

7678
...restProps
7779
} = useComponentConfig(COMPONENT_NAME, props);
@@ -133,6 +135,7 @@ function DatePicker(props: DDatePickerProps, ref: React.ForwardedRef<DDateInputR
133135
updateTimePickerPanelRef.current?.(date);
134136
}}
135137
afterVisibleChange={afterVisibleChange}
138+
onClear={onClear}
136139
>
137140
{({ date, isFocus, changeDate, renderPopup }) => {
138141
const index = isFocus[0] ? 0 : 1;

packages/ui/src/components/input/Input.tsx

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -37,30 +37,32 @@ export interface DInputProps extends Omit<React.HTMLAttributes<HTMLDivElement>,
3737
dDisabled?: boolean;
3838
dInputRender?: DCloneHTMLElement<React.InputHTMLAttributes<HTMLInputElement>>;
3939
onModelChange?: (value: string) => void;
40+
onClear?: () => void;
4041
onPasswordChange?: (value: boolean) => void;
4142
}
4243

4344
const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DInput' as const });
4445
export function DInput(props: DInputProps): JSX.Element | null {
4546
const {
4647
dRef,
47-
dType,
48-
dMax,
49-
dMin,
50-
dStep,
51-
dInteger = false,
52-
dPlaceholder,
53-
dDisabled = false,
5448
dFormControl,
5549
dModel,
50+
dType,
5651
dPrefix: dPrefixNode,
5752
dSuffix,
5853
dPassword,
5954
dNumbetButton = true,
6055
dClearable = false,
6156
dSize,
57+
dMax,
58+
dMin,
59+
dStep,
60+
dInteger = false,
61+
dPlaceholder,
62+
dDisabled = false,
6263
dInputRender,
6364
onModelChange,
65+
onClear,
6466
onPasswordChange,
6567

6668
...restProps
@@ -254,6 +256,7 @@ export function DInput(props: DInputProps): JSX.Element | null {
254256
aria-label={t('Clear')}
255257
onClick={() => {
256258
changeValue('');
259+
onClear?.();
257260
}}
258261
>
259262
<CloseCircleFilled />

packages/ui/src/components/time-picker/TimePicker.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ export interface DTimePickerProps extends Omit<React.HTMLAttributes<HTMLDivEleme
5050
onModelChange?: (date: any) => void;
5151
onVisibleChange?: (visible: boolean) => void;
5252
afterVisibleChange?: (visible: boolean) => void;
53+
onClear?: () => void;
5354
}
5455

5556
const { COMPONENT_NAME } = registerComponentMate({ COMPONENT_NAME: 'DTimePicker' as const });
@@ -74,6 +75,7 @@ function TimePicker(props: DTimePickerProps, ref: React.ForwardedRef<DTimePicker
7475
onModelChange,
7576
onVisibleChange,
7677
afterVisibleChange,
78+
onClear,
7779

7880
...restProps
7981
} = useComponentConfig(COMPONENT_NAME, props);
@@ -123,6 +125,7 @@ function TimePicker(props: DTimePickerProps, ref: React.ForwardedRef<DTimePicker
123125
updatePanelRef.current?.(date);
124126
}}
125127
afterVisibleChange={afterVisibleChange}
128+
onClear={onClear}
126129
>
127130
{({ date, isFocus, changeDate, renderPopup }) =>
128131
renderPopup(

0 commit comments

Comments
 (0)