@jelper/hooks 1.2.1 → 1.3.2

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.
Files changed (56) hide show
  1. package/es/useAsync.js +2 -1
  2. package/es/useBoolState.js +1 -7
  3. package/es/useCreate.js +0 -6
  4. package/es/useDebounce.js +1 -7
  5. package/es/useIgnoreAbortErrCb.js +1 -7
  6. package/es/useInterval.js +6 -10
  7. package/es/useIsMounted.js +0 -6
  8. package/es/useIsUnmount.js +0 -6
  9. package/es/useMount.js +0 -6
  10. package/es/useOption.js +0 -6
  11. package/es/useResizeObserver.js +0 -6
  12. package/es/useRtCb.js +0 -6
  13. package/es/useRtRef.js +1 -7
  14. package/es/useSafeRunner.js +0 -6
  15. package/es/useThrottle.js +1 -7
  16. package/es/useTimeout.js +6 -10
  17. package/es/useUnmount.js +0 -6
  18. package/es/useUpdateEff.js +1 -7
  19. package/es/useValue.js +0 -7
  20. package/lib/useAsync.js +2 -2
  21. package/lib/useBoolState.js +0 -6
  22. package/lib/useCreate.js +0 -6
  23. package/lib/useDebounce.js +1 -7
  24. package/lib/useIgnoreAbortErrCb.js +0 -6
  25. package/lib/useInterval.js +7 -11
  26. package/lib/useIsMounted.js +0 -6
  27. package/lib/useIsUnmount.js +0 -6
  28. package/lib/useMount.js +0 -6
  29. package/lib/useOption.js +0 -6
  30. package/lib/useResizeObserver.js +0 -6
  31. package/lib/useRtCb.js +0 -6
  32. package/lib/useRtRef.js +1 -7
  33. package/lib/useSafeRunner.js +0 -6
  34. package/lib/useThrottle.js +1 -7
  35. package/lib/useTimeout.js +7 -11
  36. package/lib/useUnmount.js +0 -6
  37. package/lib/useUpdateEff.js +0 -6
  38. package/lib/useValue.js +0 -7
  39. package/package.json +1 -1
  40. package/types/useAsync.d.ts +6 -5
  41. package/types/useBoolState.d.ts +0 -6
  42. package/types/useCreate.d.ts +0 -6
  43. package/types/useDebounce.d.ts +0 -6
  44. package/types/useIgnoreAbortErrCb.d.ts +0 -6
  45. package/types/useInterval.d.ts +1 -1
  46. package/types/useIsMounted.d.ts +0 -6
  47. package/types/useIsUnmount.d.ts +0 -6
  48. package/types/useMount.d.ts +0 -6
  49. package/types/useOption.d.ts +0 -6
  50. package/types/useRtCb.d.ts +0 -6
  51. package/types/useRtRef.d.ts +0 -6
  52. package/types/useSafeRunner.d.ts +0 -6
  53. package/types/useThrottle.d.ts +0 -6
  54. package/types/useTimeout.d.ts +1 -7
  55. package/types/useUnmount.d.ts +0 -6
  56. package/types/useUpdateEff.d.ts +0 -6
package/es/useAsync.js CHANGED
@@ -5,7 +5,8 @@ import useSafeRunner from './useSafeRunner';
5
5
  const defOpt = {
6
6
  catchParam: false,
7
7
  };
8
- const useAsync = (asyncFn, opt = Object.assign({}, defOpt)) => {
8
+ const useAsync = (asyncFn, inputOpt) => {
9
+ const opt = inputOpt ? Object.assign(Object.assign({}, defOpt), inputOpt) : defOpt;
9
10
  const [data, setData] = useState(undefined);
10
11
  const [param, setParam] = useState(opt.defParam || {});
11
12
  const [loading, setLoading] = useState(false);
@@ -1,10 +1,4 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:16:34
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 18:08:43
6
- */
7
- import { useState, useCallback } from 'react';
1
+ import { useCallback, useState } from 'react';
8
2
  const useBoolState = (value) => {
9
3
  const [val, setVal] = useState(value);
10
4
  const switchFn = useCallback((switchValue) => {
package/es/useCreate.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:34:59
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:53:33
6
- */
7
1
  import { useState } from 'react';
8
2
  const useCreate = (cb) => {
9
3
  useState(cb);
package/es/useDebounce.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:55:14
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 18:56:33
6
- */
7
1
  import { debounce } from 'lodash';
8
2
  import { useMemo } from 'react';
9
3
  import useRtCb from './useRtCb';
@@ -13,6 +7,6 @@ const useDebounce = (cb, wait = 200, opts) => {
13
7
  return debounce((...arg) => {
14
8
  return rtCb(...arg);
15
9
  }, wait, opts);
16
- }, [wait, opts]);
10
+ }, [wait, rtCb]);
17
11
  };
18
12
  export default useDebounce;
@@ -1,10 +1,4 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:28:14
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:57:23
6
- */
7
- import { useCallback } from "react";
1
+ import { useCallback } from 'react';
8
2
  const useIgnoreAbortErrCb = (cb, deps = [], opts) => {
9
3
  return useCallback((err) => {
10
4
  var _a;
package/es/useInterval.js CHANGED
@@ -1,13 +1,8 @@
1
- /*
2
- * @Author: apathyjade
3
- * @Date: 2023-12-14 16:51:29
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 18:24:00
6
- */
7
1
  import { useCallback, useEffect, useRef } from 'react';
8
2
  import useRtCb from './useRtCb';
3
+ import useRtRef from './useRtRef';
9
4
  export const useIntervalHandler = () => {
10
- const timerRef = useRef();
5
+ const timerRef = useRef(undefined);
11
6
  const clearTimer = useCallback(() => {
12
7
  if (timerRef.current) {
13
8
  window.clearInterval(timerRef.current);
@@ -26,13 +21,14 @@ export const useIntervalHandler = () => {
26
21
  clearTimer,
27
22
  ];
28
23
  };
29
- export const useInterval = (callback, timeout, ...arg) => {
24
+ export const useInterval = (callback, timeout, ...args) => {
30
25
  const [bindTimer, clearTimer] = useIntervalHandler();
31
26
  const cb = useRtCb(callback);
27
+ const argsRef = useRtRef(args);
32
28
  useEffect(() => {
33
- bindTimer(cb, timeout, ...arg);
29
+ bindTimer(cb, timeout, ...argsRef.current);
34
30
  return clearTimer;
35
- }, [cb, timeout, ...arg]);
31
+ }, [cb, timeout]);
36
32
  return clearTimer;
37
33
  };
38
34
  export default useInterval;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 21:34:27
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-16 21:37:21
6
- */
7
1
  import { useCallback, useEffect, useRef } from 'react';
8
2
  const useIsMounted = () => {
9
3
  const ref = useRef(false);
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 21:33:24
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 20:15:50
6
- */
7
1
  import { useCallback, useEffect, useRef } from 'react';
8
2
  const useIsUnmount = () => {
9
3
  const ref = useRef(true);
package/es/useMount.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-18 00:21:16
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-18 00:21:16
6
- */
7
1
  import { useEffect } from 'react';
8
2
  const useMount = (cb) => {
9
3
  useEffect(cb, []);
package/es/useOption.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:37
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-16 21:31:54
6
- */
7
1
  import { useCallback, useState } from 'react';
8
2
  const useOption = (defOpt = {}) => {
9
3
  const [initOpt] = useState(defOpt);
@@ -1,9 +1,3 @@
1
- /*
2
- * @Author: apathyjade
3
- * @Date: 2023-11-24 10:52:51
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 14:35:56
6
- */
7
1
  import { useCallback, useEffect } from 'react';
8
2
  let resizeObserver;
9
3
  let observeCatch;
package/es/useRtCb.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-17 00:22:11
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-17 00:22:56
6
- */
7
1
  import { useCallback } from 'react';
8
2
  import useRtRef from './useRtRef';
9
3
  const useRtCb = (cb) => {
package/es/useRtRef.js CHANGED
@@ -1,15 +1,9 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 22:19:57
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:05:26
6
- */
7
1
  import { useEffect, useRef } from 'react';
8
2
  const useRtRef = (val) => {
9
3
  const ref = useRef(val);
10
4
  useEffect(() => {
11
5
  ref.current = val;
12
- });
6
+ }, [val]);
13
7
  return ref;
14
8
  };
15
9
  export default useRtRef;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:36:09
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:41:39
6
- */
7
1
  import { useCallback } from 'react';
8
2
  import useIsUnmount from "./useIsUnmount";
9
3
  const useSafeRunner = () => {
package/es/useThrottle.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:55:28
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:31:34
6
- */
7
1
  import { throttle } from 'lodash';
8
2
  import { useMemo } from 'react';
9
3
  import useRtCb from './useRtCb';
@@ -13,6 +7,6 @@ const useThrottle = (cb, wait = 200, opts) => {
13
7
  return throttle((...args) => {
14
8
  rtCb(...args);
15
9
  }, wait, opts);
16
- }, [wait, opts]);
10
+ }, [wait, rtCb]);
17
11
  };
18
12
  export default useThrottle;
package/es/useTimeout.js CHANGED
@@ -1,13 +1,8 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 23:10:13
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 18:24:42
6
- */
7
1
  import { useCallback, useEffect, useRef } from 'react';
8
2
  import useRtCb from './useRtCb';
3
+ import useRtRef from './useRtRef';
9
4
  export const useTimeoutHandler = () => {
10
- const timerRef = useRef();
5
+ const timerRef = useRef(undefined);
11
6
  const clearTimer = useCallback(() => {
12
7
  if (timerRef.current) {
13
8
  window.clearTimeout(timerRef.current);
@@ -27,13 +22,14 @@ export const useTimeoutHandler = () => {
27
22
  clearTimer,
28
23
  ];
29
24
  };
30
- export const useTimeout = (callback, timeout, ...arg) => {
25
+ export const useTimeout = (callback, timeout, ...args) => {
31
26
  const [bindTimer, clearTimer] = useTimeoutHandler();
32
27
  const cb = useRtCb(callback);
28
+ const argsRef = useRtRef(args);
33
29
  useEffect(() => {
34
- bindTimer(cb, timeout, ...arg);
30
+ bindTimer(cb, timeout, ...argsRef.current);
35
31
  return clearTimer;
36
- }, [cb, timeout, ...arg]);
32
+ }, [cb, timeout]);
37
33
  return clearTimer;
38
34
  };
39
35
  export default useTimeout;
package/es/useUnmount.js CHANGED
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:20
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-18 00:17:09
6
- */
7
1
  import { useEffect } from 'react';
8
2
  import useRtRef from './useRtRef';
9
3
  const useUnmount = (cb) => {
@@ -1,10 +1,4 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:13
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:51:14
6
- */
7
- import { useRef, useEffect } from 'react';
1
+ import { useEffect, useRef } from 'react';
8
2
  const useUpdateEff = (cb, deps) => {
9
3
  const ref = useRef(false);
10
4
  useEffect(() => {
package/es/useValue.js CHANGED
@@ -1,10 +1,3 @@
1
- /*
2
- * @Author: jade <apathyjade@outlook.com>
3
- * @Version: 0.0.1
4
- * @Date: 2023-04-05 14:39:52
5
- * @Last Modified by: jade
6
- * @Last Modified Time: 2023-04-05 14:39:52
7
- */
8
1
  import { useState } from 'react';
9
2
  import useUpdateEff from './useUpdateEff';
10
3
  const defEqual = (a, b) => a === b;
package/lib/useAsync.js CHANGED
@@ -21,8 +21,8 @@ var useSafeRunner_1 = __importDefault(require("./useSafeRunner"));
21
21
  var defOpt = {
22
22
  catchParam: false,
23
23
  };
24
- var useAsync = function (asyncFn, opt) {
25
- if (opt === void 0) { opt = __assign({}, defOpt); }
24
+ var useAsync = function (asyncFn, inputOpt) {
25
+ var opt = inputOpt ? __assign(__assign({}, defOpt), inputOpt) : defOpt;
26
26
  var _a = (0, react_1.useState)(undefined), data = _a[0], setData = _a[1];
27
27
  var _b = (0, react_1.useState)(opt.defParam || {}), param = _b[0], setParam = _b[1];
28
28
  var _c = (0, react_1.useState)(false), loading = _c[0], setLoading = _c[1];
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:16:34
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-29 18:08:43
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useBoolState = function (value) {
package/lib/useCreate.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:34:59
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:53:33
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useCreate = function (cb) {
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-19 22:55:14
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-29 18:56:33
7
- */
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
@@ -23,6 +17,6 @@ var useDebounce = function (cb, wait, opts) {
23
17
  }
24
18
  return rtCb.apply(void 0, arg);
25
19
  }, wait, opts);
26
- }, [wait, opts]);
20
+ }, [wait, rtCb]);
27
21
  };
28
22
  exports.default = useDebounce;
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-19 22:28:14
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:57:23
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useIgnoreAbortErrCb = function (cb, deps, opts) {
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /*
3
- * @Author: apathyjade
4
- * @Date: 2023-12-14 16:51:29
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 18:24:00
7
- */
8
2
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
3
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
10
4
  if (ar || !(i in from)) {
@@ -21,8 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
15
  exports.useInterval = exports.useIntervalHandler = void 0;
22
16
  var react_1 = require("react");
23
17
  var useRtCb_1 = __importDefault(require("./useRtCb"));
18
+ var useRtRef_1 = __importDefault(require("./useRtRef"));
24
19
  var useIntervalHandler = function () {
25
- var timerRef = (0, react_1.useRef)();
20
+ var timerRef = (0, react_1.useRef)(undefined);
26
21
  var clearTimer = (0, react_1.useCallback)(function () {
27
22
  if (timerRef.current) {
28
23
  window.clearInterval(timerRef.current);
@@ -47,16 +42,17 @@ var useIntervalHandler = function () {
47
42
  };
48
43
  exports.useIntervalHandler = useIntervalHandler;
49
44
  var useInterval = function (callback, timeout) {
50
- var arg = [];
45
+ var args = [];
51
46
  for (var _i = 2; _i < arguments.length; _i++) {
52
- arg[_i - 2] = arguments[_i];
47
+ args[_i - 2] = arguments[_i];
53
48
  }
54
49
  var _a = (0, exports.useIntervalHandler)(), bindTimer = _a[0], clearTimer = _a[1];
55
50
  var cb = (0, useRtCb_1.default)(callback);
51
+ var argsRef = (0, useRtRef_1.default)(args);
56
52
  (0, react_1.useEffect)(function () {
57
- bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
53
+ bindTimer.apply(void 0, __spreadArray([cb, timeout], argsRef.current, false));
58
54
  return clearTimer;
59
- }, __spreadArray([cb, timeout], arg, true));
55
+ }, [cb, timeout]);
60
56
  return clearTimer;
61
57
  };
62
58
  exports.useInterval = useInterval;
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 21:34:27
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-16 21:37:21
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useIsMounted = function () {
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 21:33:24
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-29 20:15:50
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useIsUnmount = function () {
package/lib/useMount.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-18 00:21:16
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-18 00:21:16
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useMount = function (cb) {
package/lib/useOption.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:35:37
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-16 21:31:54
7
- */
8
2
  var __assign = (this && this.__assign) || function () {
9
3
  __assign = Object.assign || function(t) {
10
4
  for (var s, i = 1, n = arguments.length; i < n; i++) {
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /*
3
- * @Author: apathyjade
4
- * @Date: 2023-11-24 10:52:51
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 14:35:56
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  exports.useResizeObserver = exports.useResizeObserverHandler = void 0;
10
4
  var react_1 = require("react");
package/lib/useRtCb.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-17 00:22:11
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-17 00:22:56
7
- */
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
package/lib/useRtRef.js CHANGED
@@ -1,17 +1,11 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 22:19:57
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 15:05:26
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useRtRef = function (val) {
11
5
  var ref = (0, react_1.useRef)(val);
12
6
  (0, react_1.useEffect)(function () {
13
7
  ref.current = val;
14
- });
8
+ }, [val]);
15
9
  return ref;
16
10
  };
17
11
  exports.default = useRtRef;
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:36:09
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:41:39
7
- */
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-19 22:55:28
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 15:31:34
7
- */
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
@@ -23,6 +17,6 @@ var useThrottle = function (cb, wait, opts) {
23
17
  }
24
18
  rtCb.apply(void 0, args);
25
19
  }, wait, opts);
26
- }, [wait, opts]);
20
+ }, [wait, rtCb]);
27
21
  };
28
22
  exports.default = useThrottle;
package/lib/useTimeout.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-19 23:10:13
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 18:24:42
7
- */
8
2
  var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
3
  if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
10
4
  if (ar || !(i in from)) {
@@ -21,8 +15,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
21
15
  exports.useTimeout = exports.useTimeoutHandler = void 0;
22
16
  var react_1 = require("react");
23
17
  var useRtCb_1 = __importDefault(require("./useRtCb"));
18
+ var useRtRef_1 = __importDefault(require("./useRtRef"));
24
19
  var useTimeoutHandler = function () {
25
- var timerRef = (0, react_1.useRef)();
20
+ var timerRef = (0, react_1.useRef)(undefined);
26
21
  var clearTimer = (0, react_1.useCallback)(function () {
27
22
  if (timerRef.current) {
28
23
  window.clearTimeout(timerRef.current);
@@ -48,16 +43,17 @@ var useTimeoutHandler = function () {
48
43
  };
49
44
  exports.useTimeoutHandler = useTimeoutHandler;
50
45
  var useTimeout = function (callback, timeout) {
51
- var arg = [];
46
+ var args = [];
52
47
  for (var _i = 2; _i < arguments.length; _i++) {
53
- arg[_i - 2] = arguments[_i];
48
+ args[_i - 2] = arguments[_i];
54
49
  }
55
50
  var _a = (0, exports.useTimeoutHandler)(), bindTimer = _a[0], clearTimer = _a[1];
56
51
  var cb = (0, useRtCb_1.default)(callback);
52
+ var argsRef = (0, useRtRef_1.default)(args);
57
53
  (0, react_1.useEffect)(function () {
58
- bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
54
+ bindTimer.apply(void 0, __spreadArray([cb, timeout], argsRef.current, false));
59
55
  return clearTimer;
60
- }, __spreadArray([cb, timeout], arg, true));
56
+ }, [cb, timeout]);
61
57
  return clearTimer;
62
58
  };
63
59
  exports.useTimeout = useTimeout;
package/lib/useUnmount.js CHANGED
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:35:20
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-18 00:17:09
7
- */
8
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
4
  };
@@ -1,10 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * @Author: apathyjade
4
- * @Date: 2025-03-16 11:35:13
5
- * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-05-30 15:51:14
7
- */
8
2
  Object.defineProperty(exports, "__esModule", { value: true });
9
3
  var react_1 = require("react");
10
4
  var useUpdateEff = function (cb, deps) {
package/lib/useValue.js CHANGED
@@ -1,11 +1,4 @@
1
1
  "use strict";
2
- /*
3
- * @Author: jade <apathyjade@outlook.com>
4
- * @Version: 0.0.1
5
- * @Date: 2023-04-05 14:39:52
6
- * @Last Modified by: jade
7
- * @Last Modified Time: 2023-04-05 14:39:52
8
- */
9
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
10
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
11
4
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jelper/hooks",
3
- "version": "1.2.1",
3
+ "version": "1.3.2",
4
4
  "description": "react hooks helper",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.js",
@@ -1,13 +1,14 @@
1
- type Parameter<T extends (p: any) => any> = Parameters<T>[0];
2
- interface Opt<T extends (p: any) => any, R> {
1
+ type AsyncFn<T = any, R = any> = (p: T, opt: {
2
+ signal: AbortSignal;
3
+ }) => Promise<R>;
4
+ type Parameter<T extends AsyncFn> = Parameters<T>[0];
5
+ interface Opt<T extends AsyncFn, R> {
3
6
  defParam?: Partial<Parameter<T>>;
4
7
  format?: (p: ReturnType<T>) => R;
5
8
  catchParam?: boolean;
6
9
  onAbort?: (this: AbortSignal, ev: Event) => any;
7
10
  }
8
- declare const useAsync: <T extends (p: any, opt?: {
9
- signal: AbortController['signal'];
10
- }) => Promise<any>, R = ReturnType<T>>(asyncFn: T, opt?: Opt<T, R>) => [
11
+ declare const useAsync: <T extends AsyncFn<any, any>, R = Awaited<ReturnType<T>>>(asyncFn: T, inputOpt?: Opt<T, R>) => [
11
12
  R | undefined,
12
13
  {
13
14
  run: (runParam?: Partial<Parameter<T>>) => Promise<void>;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:16:34
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 18:08:43
6
- */
7
1
  declare const useBoolState: (value: boolean) => [
8
2
  boolean,
9
3
  (switchValue?: React.SetStateAction<boolean>) => void
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:34:59
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:53:33
6
- */
7
1
  declare const useCreate: (cb: () => void) => void;
8
2
  export default useCreate;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:55:14
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 18:56:33
6
- */
7
1
  import { DebounceSettings, DebouncedFunc } from 'lodash';
8
2
  declare const useDebounce: <T extends (...args: any[]) => any>(cb: T, wait?: number, opts?: DebounceSettings) => DebouncedFunc<T>;
9
3
  export default useDebounce;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:28:14
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:57:23
6
- */
7
1
  /// <reference types="react" />
8
2
  interface Opts<T> {
9
3
  onAbort: (err: Error) => T;
@@ -2,5 +2,5 @@ export declare const useIntervalHandler: () => [
2
2
  (callback: Function, timeout?: number, ...arg: any[]) => void,
3
3
  () => void
4
4
  ];
5
- export declare const useInterval: (callback: (args: any[]) => any, timeout?: number, ...arg: any[]) => (() => void);
5
+ export declare const useInterval: <T extends (...args: any[]) => any>(callback: T, timeout?: number, ...args: Parameters<T> | []) => (() => void);
6
6
  export default useInterval;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 21:34:27
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-16 21:37:21
6
- */
7
1
  declare const useIsMounted: () => (() => boolean);
8
2
  export default useIsMounted;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 21:33:24
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-29 20:15:50
6
- */
7
1
  declare const useIsUnmount: () => (() => boolean);
8
2
  export default useIsUnmount;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-18 00:21:16
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-18 00:21:16
6
- */
7
1
  declare const useMount: (cb: () => void) => void;
8
2
  export default useMount;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:37
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-16 21:31:54
6
- */
7
1
  declare const useOption: <T extends {}>(defOpt?: Partial<T>) => [
8
2
  Partial<T>,
9
3
  {
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-17 00:22:11
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-17 00:22:56
6
- */
7
1
  declare const useRtCb: <T extends (...args: any[]) => any>(cb: T) => T;
8
2
  export default useRtCb;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 22:19:57
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:05:26
6
- */
7
1
  /// <reference types="react" />
8
2
  declare const useRtRef: <T>(val: T) => import("react").MutableRefObject<T>;
9
3
  export default useRtRef;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:36:09
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-19 22:41:39
6
- */
7
1
  declare const useSafeRunner: () => (cb: () => void, unmountCb?: () => void) => void;
8
2
  export default useSafeRunner;
@@ -1,9 +1,3 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 22:55:28
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:31:34
6
- */
7
1
  import { ThrottleSettings, DebouncedFuncLeading } from 'lodash';
8
2
  declare const useThrottle: <T extends (...args: any) => any>(cb: T, wait?: number, opts?: ThrottleSettings) => DebouncedFuncLeading<T>;
9
3
  export default useThrottle;
@@ -1,12 +1,6 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-19 23:10:13
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 18:24:42
6
- */
7
1
  export declare const useTimeoutHandler: () => [
8
2
  (callback: Function, timeout?: number, ...arg: any[]) => void,
9
3
  () => void
10
4
  ];
11
- export declare const useTimeout: (callback: (...any: any[]) => any, timeout?: number, ...arg: any[]) => () => void;
5
+ export declare const useTimeout: <T extends (...any: any[]) => any>(callback: T, timeout?: number, ...args: any[] | []) => () => void;
12
6
  export default useTimeout;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:20
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-03-18 00:17:09
6
- */
7
1
  declare const useUnmount: (cb: () => void) => void;
8
2
  export default useUnmount;
@@ -1,8 +1,2 @@
1
- /**
2
- * @Author: apathyjade
3
- * @Date: 2025-03-16 11:35:13
4
- * @Last Modified by: apathyjade
5
- * @Last Modified time: 2025-05-30 15:51:14
6
- */
7
1
  declare const useUpdateEff: (cb: React.EffectCallback, deps?: React.DependencyList) => void;
8
2
  export default useUpdateEff;