@rc-component/select 1.1.2 → 1.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/es/OptionList.js +1 -1
- package/es/Select.d.ts +1 -1
- package/es/hooks/useDelayReset.js +16 -7
- package/lib/OptionList.js +1 -1
- package/lib/Select.d.ts +1 -1
- package/lib/hooks/useDelayReset.js +16 -7
- package/package.json +1 -1
package/es/OptionList.js
CHANGED
|
@@ -351,7 +351,7 @@ const OptionList = (_, ref) => {
|
|
|
351
351
|
optionTitle = title;
|
|
352
352
|
}
|
|
353
353
|
return /*#__PURE__*/React.createElement("div", _extends({}, pickAttrs(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {
|
|
354
|
-
"aria-selected": isAriaSelected(value),
|
|
354
|
+
"aria-selected": virtual ? undefined : isAriaSelected(value),
|
|
355
355
|
className: optionClassName,
|
|
356
356
|
title: optionTitle,
|
|
357
357
|
onMouseMove: () => {
|
package/es/Select.d.ts
CHANGED
|
@@ -125,7 +125,7 @@ export interface SelectProps<ValueType = any, OptionType extends BaseOptionType
|
|
|
125
125
|
classNames?: Partial<Record<SemanticName, string>>;
|
|
126
126
|
styles?: Partial<Record<SemanticName, React.CSSProperties>>;
|
|
127
127
|
}
|
|
128
|
-
declare const TypedSelect: (<ValueType = any, OptionType extends
|
|
128
|
+
declare const TypedSelect: (<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(props: React.PropsWithChildren<SelectProps<ValueType, OptionType>> & React.RefAttributes<BaseSelectRef>) => React.ReactElement) & {
|
|
129
129
|
Option: typeof Option;
|
|
130
130
|
OptGroup: typeof OptGroup;
|
|
131
131
|
};
|
|
@@ -10,15 +10,24 @@ export default function useDelayReset(timeout = 10) {
|
|
|
10
10
|
const cancelLatest = () => {
|
|
11
11
|
window.clearTimeout(delayRef.current);
|
|
12
12
|
};
|
|
13
|
-
React.useEffect(() =>
|
|
13
|
+
React.useEffect(() => {
|
|
14
|
+
return () => {
|
|
15
|
+
cancelLatest();
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
14
18
|
const delaySetBool = (value, callback) => {
|
|
15
19
|
cancelLatest();
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
if (value === true) {
|
|
21
|
+
// true 值立即设置
|
|
22
|
+
setBool(true);
|
|
23
|
+
callback?.();
|
|
24
|
+
} else {
|
|
25
|
+
// false 值延迟设置
|
|
26
|
+
delayRef.current = window.setTimeout(() => {
|
|
27
|
+
setBool(false);
|
|
28
|
+
callback?.();
|
|
29
|
+
}, timeout);
|
|
30
|
+
}
|
|
22
31
|
};
|
|
23
32
|
return [bool, delaySetBool, cancelLatest];
|
|
24
33
|
}
|
package/lib/OptionList.js
CHANGED
|
@@ -359,7 +359,7 @@ const OptionList = (_, ref) => {
|
|
|
359
359
|
optionTitle = title;
|
|
360
360
|
}
|
|
361
361
|
return /*#__PURE__*/React.createElement("div", _extends({}, (0, _pickAttrs.default)(passedProps), !virtual ? getItemAriaProps(item, itemIndex) : {}, {
|
|
362
|
-
"aria-selected": isAriaSelected(value),
|
|
362
|
+
"aria-selected": virtual ? undefined : isAriaSelected(value),
|
|
363
363
|
className: optionClassName,
|
|
364
364
|
title: optionTitle,
|
|
365
365
|
onMouseMove: () => {
|
package/lib/Select.d.ts
CHANGED
|
@@ -125,7 +125,7 @@ export interface SelectProps<ValueType = any, OptionType extends BaseOptionType
|
|
|
125
125
|
classNames?: Partial<Record<SemanticName, string>>;
|
|
126
126
|
styles?: Partial<Record<SemanticName, React.CSSProperties>>;
|
|
127
127
|
}
|
|
128
|
-
declare const TypedSelect: (<ValueType = any, OptionType extends
|
|
128
|
+
declare const TypedSelect: (<ValueType = any, OptionType extends BaseOptionType | DefaultOptionType = DefaultOptionType>(props: React.PropsWithChildren<SelectProps<ValueType, OptionType>> & React.RefAttributes<BaseSelectRef>) => React.ReactElement) & {
|
|
129
129
|
Option: typeof Option;
|
|
130
130
|
OptGroup: typeof OptGroup;
|
|
131
131
|
};
|
|
@@ -17,15 +17,24 @@ function useDelayReset(timeout = 10) {
|
|
|
17
17
|
const cancelLatest = () => {
|
|
18
18
|
window.clearTimeout(delayRef.current);
|
|
19
19
|
};
|
|
20
|
-
React.useEffect(() =>
|
|
20
|
+
React.useEffect(() => {
|
|
21
|
+
return () => {
|
|
22
|
+
cancelLatest();
|
|
23
|
+
};
|
|
24
|
+
}, []);
|
|
21
25
|
const delaySetBool = (value, callback) => {
|
|
22
26
|
cancelLatest();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
27
|
+
if (value === true) {
|
|
28
|
+
// true 值立即设置
|
|
29
|
+
setBool(true);
|
|
30
|
+
callback?.();
|
|
31
|
+
} else {
|
|
32
|
+
// false 值延迟设置
|
|
33
|
+
delayRef.current = window.setTimeout(() => {
|
|
34
|
+
setBool(false);
|
|
35
|
+
callback?.();
|
|
36
|
+
}, timeout);
|
|
37
|
+
}
|
|
29
38
|
};
|
|
30
39
|
return [bool, delaySetBool, cancelLatest];
|
|
31
40
|
}
|