@rc-component/select 1.1.3 → 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/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/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.3",
3
+ "version": "1.1.4",
4
4
  "description": "React Select",
5
5
  "engines": {
6
6
  "node": ">=8.x"