Skip to content

Commit 3fd9f9a

Browse files
committed
fix: update EventHandlerNonNull to EventHandler
1 parent 1f34aed commit 3fd9f9a

File tree

12 files changed

+108
-66
lines changed

12 files changed

+108
-66
lines changed

components/_util/EventInterface.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export type FocusEventHandler = (e: FocusEvent) => void;
2+
export type MouseEventHandler = (e: MouseEvent) => void;
3+
export type KeyboardEventHandler = (e: KeyboardEvent) => void;
4+
export type ChangeEvent = Event & {
5+
target: {
6+
value?: string | undefined;
7+
};
8+
};
9+
10+
export type EventHandler = (...args: any[]) => void;

components/checkbox/Checkbox.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import hasProp, { getOptionProps, getSlot } from '../_util/props-util';
66
import { defaultConfigProvider } from '../config-provider';
77
import warning from '../_util/warning';
88
import type { RadioChangeEvent } from '../radio/interface';
9+
import type { EventHandler } from '../_util/EventInterface';
910
function noop() {}
1011

1112
export default defineComponent({
@@ -127,8 +128,8 @@ export default defineComponent({
127128
<label
128129
class={classString}
129130
style={style}
130-
onMouseenter={onMouseenter as EventHandlerNonNull}
131-
onMouseleave={onMouseleave as EventHandlerNonNull}
131+
onMouseenter={onMouseenter as EventHandler}
132+
onMouseleave={onMouseleave as EventHandler}
132133
>
133134
<VcCheckbox {...checkboxProps} class={checkboxClass} ref="vcCheckbox" />
134135
{children.length ? <span>{children}</span> : null}

components/date-picker/interface.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type moment from 'moment';
22
import type { CSSProperties } from 'vue';
3+
import type { EventHandler } from '../_util/EventInterface';
34
import type { VueNode } from '../_util/type';
45
import { tuple } from '../_util/type';
56

@@ -37,8 +38,8 @@ export interface PickerProps {
3738
disabledDate?: (current: moment.Moment | null) => boolean;
3839
dateRender?: (current: moment.Moment, today: moment.Moment) => any;
3940
autofocus?: boolean;
40-
onFocus?: EventHandlerNonNull;
41-
onBlur?: EventHandlerNonNull;
41+
onFocus?: EventHandler;
42+
onBlur?: EventHandler;
4243
}
4344

4445
export interface SinglePickerProps {

components/input-number/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import DownOutlined from '@ant-design/icons-vue/DownOutlined';
88
import VcInputNumber from '../vc-input-number/src';
99
import { defaultConfigProvider } from '../config-provider';
1010
import { tuple, withInstall } from '../_util/type';
11+
import type { EventHandler } from '../_util/EventInterface';
1112

1213
const inputNumberProps = {
1314
prefixCls: PropTypes.string,
@@ -28,7 +29,7 @@ const inputNumberProps = {
2829
precision: PropTypes.number,
2930
autofocus: PropTypes.looseBool,
3031
onPressEnter: {
31-
type: Function as PropType<EventHandlerNonNull>,
32+
type: Function as PropType<EventHandler>,
3233
},
3334
onChange: Function as PropType<(num: number) => void>,
3435
};

components/typography/Base.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ import {
3030
} from 'vue';
3131
import type { AutoSizeType } from '../input/ResizableTextArea';
3232
import useConfigInject from '../_util/hooks/useConfigInject';
33+
import type { EventHandler } from '../_util/EventInterface';
3334

3435
export type BaseType = 'secondary' | 'success' | 'warning' | 'danger';
3536

@@ -58,7 +59,7 @@ export interface EllipsisConfig {
5859
expandable?: boolean;
5960
suffix?: string;
6061
symbol?: string;
61-
onExpand?: EventHandlerNonNull;
62+
onExpand?: EventHandler;
6263
onEllipsis?: (ellipsis: boolean) => void;
6364
tooltip?: boolean;
6465
}

components/vc-select/OptionList.tsx

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import type {
1616
} from './interface';
1717
import type { RawValueType, FlattenOptionsType } from './interface/generator';
1818
import useMemo from '../_util/hooks/useMemo';
19+
import type { EventHandler } from '../_util/EventInterface';
1920
export interface OptionListProps {
2021
prefixCls: string;
2122
id: string;
@@ -37,10 +38,10 @@ export interface OptionListProps {
3738
onToggleOpen: (open?: boolean) => void;
3839
/** Tell Select that some value is now active to make accessibility work */
3940
onActiveValue: OnActiveValue;
40-
onScroll: EventHandlerNonNull;
41+
onScroll: EventHandler;
4142

4243
/** Tell Select that mouse enter the popup to force re-render */
43-
onMouseenter?: EventHandlerNonNull;
44+
onMouseenter?: EventHandler;
4445
}
4546

4647
const OptionListProps = {
@@ -90,7 +91,7 @@ const OptionList = defineComponent<OptionListProps, { state?: any }>({
9091
// =========================== List ===========================
9192
const listRef = createRef();
9293

93-
const onListMouseDown: EventHandlerNonNull = event => {
94+
const onListMouseDown: EventHandler = event => {
9495
event.preventDefault();
9596
};
9697

components/vc-select/Selector/Input.tsx

Lines changed: 59 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import PropTypes from '../../_util/vue-types';
55
import type { RefObject } from '../../_util/createRef';
66
import antInput from '../../_util/antInputDirective';
77
import classNames from '../../_util/classNames';
8+
import type { EventHandler } from '../../_util/EventInterface';
89

910
interface InputProps {
1011
prefixCls: string;
@@ -21,19 +22,43 @@ interface InputProps {
2122
/** Pass accessibility props to input */
2223
attrs: object;
2324
inputRef: RefObject;
24-
onKeydown: EventHandlerNonNull;
25-
onMousedown: EventHandlerNonNull;
26-
onChange: EventHandlerNonNull;
27-
onPaste: EventHandlerNonNull;
28-
onCompositionstart: EventHandlerNonNull;
29-
onCompositionend: EventHandlerNonNull;
30-
onFocus: EventHandlerNonNull;
31-
onBlur: EventHandlerNonNull;
25+
onKeydown: EventHandler;
26+
onMousedown: EventHandler;
27+
onChange: EventHandler;
28+
onPaste: EventHandler;
29+
onCompositionstart: EventHandler;
30+
onCompositionend: EventHandler;
31+
onFocus: EventHandler;
32+
onBlur: EventHandler;
3233
}
3334

34-
const Input = defineComponent<InputProps, { VCSelectContainerEvent: any; blurTimeout: any }>({
35+
const Input = defineComponent({
3536
name: 'Input',
3637
inheritAttrs: false,
38+
props: {
39+
inputRef: PropTypes.any,
40+
prefixCls: PropTypes.string,
41+
id: PropTypes.string,
42+
inputElement: PropTypes.any,
43+
disabled: PropTypes.looseBool,
44+
autofocus: PropTypes.looseBool,
45+
autocomplete: PropTypes.string,
46+
editable: PropTypes.looseBool,
47+
accessibilityIndex: PropTypes.number,
48+
value: PropTypes.string,
49+
open: PropTypes.looseBool,
50+
tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
51+
/** Pass accessibility props to input */
52+
attrs: PropTypes.object,
53+
onKeydown: PropTypes.func,
54+
onMousedown: PropTypes.func,
55+
onChange: PropTypes.func,
56+
onPaste: PropTypes.func,
57+
onCompositionstart: PropTypes.func,
58+
onCompositionend: PropTypes.func,
59+
onFocus: PropTypes.func,
60+
onBlur: PropTypes.func,
61+
},
3762
setup(props) {
3863
if (process.env.NODE_ENV === 'test') {
3964
onMounted(() => {
@@ -47,7 +72,7 @@ const Input = defineComponent<InputProps, { VCSelectContainerEvent: any; blurTim
4772
}
4873
return {
4974
blurTimeout: null,
50-
VCSelectContainerEvent: inject('VCSelectContainerEvent'),
75+
VCSelectContainerEvent: inject('VCSelectContainerEvent') as any,
5176
};
5277
},
5378
render() {
@@ -164,29 +189,29 @@ const Input = defineComponent<InputProps, { VCSelectContainerEvent: any; blurTim
164189
},
165190
});
166191

167-
Input.props = {
168-
inputRef: PropTypes.any,
169-
prefixCls: PropTypes.string,
170-
id: PropTypes.string,
171-
inputElement: PropTypes.any,
172-
disabled: PropTypes.looseBool,
173-
autofocus: PropTypes.looseBool,
174-
autocomplete: PropTypes.string,
175-
editable: PropTypes.looseBool,
176-
accessibilityIndex: PropTypes.number,
177-
value: PropTypes.string,
178-
open: PropTypes.looseBool,
179-
tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
180-
/** Pass accessibility props to input */
181-
attrs: PropTypes.object,
182-
onKeydown: PropTypes.func,
183-
onMousedown: PropTypes.func,
184-
onChange: PropTypes.func,
185-
onPaste: PropTypes.func,
186-
onCompositionstart: PropTypes.func,
187-
onCompositionend: PropTypes.func,
188-
onFocus: PropTypes.func,
189-
onBlur: PropTypes.func,
190-
};
192+
// Input.props = {
193+
// inputRef: PropTypes.any,
194+
// prefixCls: PropTypes.string,
195+
// id: PropTypes.string,
196+
// inputElement: PropTypes.any,
197+
// disabled: PropTypes.looseBool,
198+
// autofocus: PropTypes.looseBool,
199+
// autocomplete: PropTypes.string,
200+
// editable: PropTypes.looseBool,
201+
// accessibilityIndex: PropTypes.number,
202+
// value: PropTypes.string,
203+
// open: PropTypes.looseBool,
204+
// tabindex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),
205+
// /** Pass accessibility props to input */
206+
// attrs: PropTypes.object,
207+
// onKeydown: PropTypes.func,
208+
// onMousedown: PropTypes.func,
209+
// onChange: PropTypes.func,
210+
// onPaste: PropTypes.func,
211+
// onCompositionstart: PropTypes.func,
212+
// onCompositionend: PropTypes.func,
213+
// onFocus: PropTypes.func,
214+
// onBlur: PropTypes.func,
215+
// };
191216

192217
export default Input;

components/vc-select/Selector/index.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { defineComponent } from 'vue';
1919
import createRef from '../../_util/createRef';
2020
import PropTypes from '../../_util/vue-types';
2121
import type { VueNode } from '../../_util/type';
22+
import type { EventHandler } from '../../_util/EventInterface';
2223

2324
export interface SelectorProps {
2425
id: string;
@@ -57,7 +58,7 @@ export interface SelectorProps {
5758
onSearch: (searchText: string, fromTyping: boolean, isCompositing: boolean) => boolean;
5859
onSearchSubmit: (searchText: string) => void;
5960
onSelect: (value: RawValueType, option: { selected: boolean }) => void;
60-
onInputKeyDown?: EventHandlerNonNull;
61+
onInputKeyDown?: EventHandler;
6162

6263
/**
6364
* @private get real dom for trigger align.
@@ -106,7 +107,7 @@ const Selector = defineComponent<SelectorProps>({
106107
onSearch: PropTypes.func,
107108
onSearchSubmit: PropTypes.func,
108109
onSelect: PropTypes.func,
109-
onInputKeyDown: PropTypes.func,
110+
onInputKeyDown: { type: Function as PropType<EventHandler> },
110111

111112
/**
112113
* @private get real dom for trigger align.

components/vc-select/Selector/interface.ts

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import type { RefObject } from '../../_util/createRef';
22
import type { VNodeChild } from 'vue';
33
import type { Mode } from '../interface';
44
import type { LabelValueType } from '../interface/generator';
5+
import type { EventHandler } from '../../_util/EventInterface';
56

67
export interface InnerSelectorProps {
78
prefixCls: string;
@@ -18,10 +19,10 @@ export interface InnerSelectorProps {
1819
accessibilityIndex: number;
1920
open: boolean;
2021
tabindex?: number | string;
21-
onInputKeyDown: EventHandlerNonNull;
22-
onInputMouseDown: EventHandlerNonNull;
23-
onInputChange: EventHandlerNonNull;
24-
onInputPaste: EventHandlerNonNull;
25-
onInputCompositionStart: EventHandlerNonNull;
26-
onInputCompositionEnd: EventHandlerNonNull;
22+
onInputKeyDown: EventHandler;
23+
onInputMouseDown: EventHandler;
24+
onInputChange: EventHandler;
25+
onInputPaste: EventHandler;
26+
onInputCompositionStart: EventHandler;
27+
onInputCompositionEnd: EventHandler;
2728
}

components/vc-select/generate.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ import { getSeparatedContent } from './utils/valueUtil';
3838
import useSelectTriggerControl from './hooks/useSelectTriggerControl';
3939
import useCacheDisplayValue from './hooks/useCacheDisplayValue';
4040
import useCacheOptions from './hooks/useCacheOptions';
41-
import type { CSSProperties, DefineComponent, VNode, VNodeChild } from 'vue';
41+
import type { CSSProperties, DefineComponent, PropType, VNode, VNodeChild } from 'vue';
4242
import {
4343
computed,
4444
defineComponent,
@@ -54,6 +54,7 @@ import PropTypes, { withUndefined } from '../_util/vue-types';
5454
import initDefaultProps from '../_util/props-util/initDefaultProps';
5555
import warning from '../_util/warning';
5656
import isMobile from '../vc-util/isMobile';
57+
import type { EventHandler } from '../_util/EventInterface';
5758

5859
const DEFAULT_OMIT_PROPS = [
5960
'children',
@@ -148,7 +149,7 @@ export const BaseProps = () => ({
148149
onDropdownVisibleChange: PropTypes.func,
149150
onSelect: PropTypes.func,
150151
onDeselect: PropTypes.func,
151-
onInputKeyDown: PropTypes.func,
152+
onInputKeyDown: { type: Function as PropType<EventHandler> },
152153
onClick: PropTypes.func,
153154
onChange: PropTypes.func,
154155
onBlur: PropTypes.func,
@@ -244,20 +245,20 @@ export interface SelectProps<OptionsType extends object[], ValueType> {
244245
tabindex?: number | string;
245246

246247
// Events
247-
onKeyup?: EventHandlerNonNull;
248-
onKeydown?: EventHandlerNonNull;
249-
onPopupScroll?: EventHandlerNonNull;
248+
onKeyup?: EventHandler;
249+
onKeydown?: EventHandler;
250+
onPopupScroll?: EventHandler;
250251
onDropdownVisibleChange?: (open: boolean) => void;
251252
onSelect?: (value: SingleType<ValueType>, option: OptionsType[number]) => void;
252253
onDeselect?: (value: SingleType<ValueType>, option: OptionsType[number]) => void;
253-
onInputKeyDown?: EventHandlerNonNull;
254-
onClick?: EventHandlerNonNull;
254+
onInputKeyDown?: EventHandler;
255+
onClick?: EventHandler;
255256
onChange?: (value: ValueType, option: OptionsType[number] | OptionsType) => void;
256-
onBlur?: EventHandlerNonNull;
257-
onFocus?: EventHandlerNonNull;
258-
onMousedown?: EventHandlerNonNull;
259-
onMouseenter?: EventHandlerNonNull;
260-
onMouseleave?: EventHandlerNonNull;
257+
onBlur?: EventHandler;
258+
onFocus?: EventHandler;
259+
onMousedown?: EventHandler;
260+
onMouseenter?: EventHandler;
261+
onMouseleave?: EventHandler;
261262

262263
// Motion
263264
choiceTransitionName?: string;
@@ -1326,7 +1327,7 @@ export default function generateSelector<
13261327
getTriggerDOMNode={() => selectorDomRef.current}
13271328
>
13281329
<Selector
1329-
{...this.$props}
1330+
{...(this.$props as any)}
13301331
domRef={selectorDomRef}
13311332
prefixCls={prefixCls}
13321333
inputElement={customizeInputElement}

0 commit comments

Comments
 (0)