@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 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 DefaultOptionType | BaseOptionType = DefaultOptionType>(props: React.PropsWithChildren<SelectProps<ValueType, OptionType>> & React.RefAttributes<BaseSelectRef>) => React.ReactElement) & {
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(() => cancelLatest, []);
13
+ React.useEffect(() => {
14
+ return () => {
15
+ cancelLatest();
16
+ };
17
+ }, []);
14
18
  const delaySetBool = (value, callback) => {
15
19
  cancelLatest();
16
- delayRef.current = window.setTimeout(() => {
17
- setBool(value);
18
- if (callback) {
19
- callback();
20
- }
21
- }, timeout);
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 DefaultOptionType | BaseOptionType = DefaultOptionType>(props: React.PropsWithChildren<SelectProps<ValueType, OptionType>> & React.RefAttributes<BaseSelectRef>) => React.ReactElement) & {
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(() => cancelLatest, []);
20
+ React.useEffect(() => {
21
+ return () => {
22
+ cancelLatest();
23
+ };
24
+ }, []);
21
25
  const delaySetBool = (value, callback) => {
22
26
  cancelLatest();
23
- delayRef.current = window.setTimeout(() => {
24
- setBool(value);
25
- if (callback) {
26
- callback();
27
- }
28
- }, timeout);
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
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/select",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "React Select",
5
5
  "engines": {
6
6
  "node": ">=8.x"