@jelper/hooks 1.0.0 → 1.1.1

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 (94) hide show
  1. package/es/index.js +7 -5
  2. package/es/index.js.map +1 -0
  3. package/es/useAsync.js +11 -11
  4. package/es/useAsync.js.map +1 -0
  5. package/es/useBoolState.js +2 -1
  6. package/es/useBoolState.js.map +1 -0
  7. package/es/useCreate.js +1 -0
  8. package/es/useCreate.js.map +1 -0
  9. package/es/useDebounce.js +6 -5
  10. package/es/useDebounce.js.map +1 -0
  11. package/es/useIgnoreAbortErrCb.js +1 -0
  12. package/es/useIgnoreAbortErrCb.js.map +1 -0
  13. package/es/useInterval.js +13 -3
  14. package/es/useInterval.js.map +1 -0
  15. package/es/useIsMounted.js +1 -0
  16. package/es/useIsMounted.js.map +1 -0
  17. package/es/{useIsUnmounted.js → useIsUnmount.js} +6 -4
  18. package/es/useIsUnmount.js.map +1 -0
  19. package/es/useMount.js +1 -0
  20. package/es/useMount.js.map +1 -0
  21. package/es/useOption.js +2 -1
  22. package/es/useOption.js.map +1 -0
  23. package/es/useResizeObserver.js +37 -28
  24. package/es/useResizeObserver.js.map +1 -0
  25. package/es/useRtCb.js +3 -2
  26. package/es/useRtCb.js.map +1 -0
  27. package/es/useRtRef.js +2 -1
  28. package/es/useRtRef.js.map +1 -0
  29. package/es/useSafeRunner.js +2 -1
  30. package/es/useSafeRunner.js.map +1 -0
  31. package/es/useThrottle.js +7 -6
  32. package/es/useThrottle.js.map +1 -0
  33. package/es/useTimeout.js +13 -2
  34. package/es/useTimeout.js.map +1 -0
  35. package/es/useUnmount.js +1 -0
  36. package/es/useUnmount.js.map +1 -0
  37. package/es/useUpdateEff.js +4 -3
  38. package/es/useUpdateEff.js.map +1 -0
  39. package/es/useValue.js +12 -14
  40. package/es/useValue.js.map +1 -0
  41. package/lib/index.js +10 -4
  42. package/lib/index.js.map +1 -0
  43. package/lib/useAsync.js +12 -11
  44. package/lib/useAsync.js.map +1 -0
  45. package/lib/useBoolState.js +2 -1
  46. package/lib/useBoolState.js.map +1 -0
  47. package/lib/useCreate.js +1 -0
  48. package/lib/useCreate.js.map +1 -0
  49. package/lib/useDebounce.js +7 -5
  50. package/lib/useDebounce.js.map +1 -0
  51. package/lib/useIgnoreAbortErrCb.js +1 -0
  52. package/lib/useIgnoreAbortErrCb.js.map +1 -0
  53. package/lib/useInterval.js +33 -4
  54. package/lib/useInterval.js.map +1 -0
  55. package/lib/useIsMounted.js +1 -0
  56. package/lib/useIsMounted.js.map +1 -0
  57. package/lib/{useIsUnmounted.js → useIsUnmount.js} +6 -4
  58. package/lib/useIsUnmount.js.map +1 -0
  59. package/lib/useMount.js +1 -0
  60. package/lib/useMount.js.map +1 -0
  61. package/lib/useOption.js +2 -1
  62. package/lib/useOption.js.map +1 -0
  63. package/lib/useResizeObserver.js +41 -28
  64. package/lib/useResizeObserver.js.map +1 -0
  65. package/lib/useRtCb.js +3 -3
  66. package/lib/useRtCb.js.map +1 -0
  67. package/lib/useRtRef.js +2 -1
  68. package/lib/useRtRef.js.map +1 -0
  69. package/lib/useSafeRunner.js +3 -2
  70. package/lib/useSafeRunner.js.map +1 -0
  71. package/lib/useThrottle.js +9 -7
  72. package/lib/useThrottle.js.map +1 -0
  73. package/lib/useTimeout.js +33 -3
  74. package/lib/useTimeout.js.map +1 -0
  75. package/lib/useUnmount.js +1 -0
  76. package/lib/useUnmount.js.map +1 -0
  77. package/lib/useUpdateEff.js +4 -3
  78. package/lib/useUpdateEff.js.map +1 -0
  79. package/lib/useValue.js +11 -13
  80. package/lib/useValue.js.map +1 -0
  81. package/package.json +51 -47
  82. package/types/index.d.ts +6 -5
  83. package/types/useAsync.d.ts +3 -2
  84. package/types/useBoolState.d.ts +5 -2
  85. package/types/useDebounce.d.ts +3 -3
  86. package/types/useInterval.d.ts +2 -1
  87. package/types/useIsUnmount.d.ts +8 -0
  88. package/types/useResizeObserver.d.ts +8 -1
  89. package/types/useRtCb.d.ts +1 -2
  90. package/types/useRtRef.d.ts +1 -1
  91. package/types/useThrottle.d.ts +3 -3
  92. package/types/useTimeout.d.ts +3 -2
  93. package/types/useUpdateEff.d.ts +3 -3
  94. package/types/useIsUnmounted.d.ts +0 -8
package/lib/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.useResizeObserver = exports.useInterval = exports.useTimeout = exports.useAsync = exports.useThrottle = exports.useDebounce = exports.useIgnoreAbortErrCb = exports.useUnmount = exports.useMount = exports.useCreate = exports.useIsUnmount = exports.useIsMounted = exports.useUpdateEffect = exports.useRtCb = exports.useRtRef = exports.useOption = exports.useValue = exports.useBoolState = void 0;
6
+ exports.useResizeObserverHandler = exports.useResizeObserver = exports.useIntervalHandler = exports.useInterval = exports.useTimeoutHandler = exports.useTimeout = exports.useAsync = exports.useSafeRunner = exports.useThrottle = exports.useDebounce = exports.useIgnoreAbortErrCb = exports.useUnmount = exports.useMount = exports.useCreate = exports.useIsUnmount = exports.useIsMounted = exports.useUpdateEff = exports.useRtCb = exports.useRtRef = exports.useOption = exports.useValue = exports.useBoolState = void 0;
7
7
  // 特殊state
8
8
  var useBoolState_1 = require("./useBoolState");
9
9
  Object.defineProperty(exports, "useBoolState", { enumerable: true, get: function () { return __importDefault(useBoolState_1).default; } });
@@ -18,12 +18,12 @@ var useRtCb_1 = require("./useRtCb");
18
18
  Object.defineProperty(exports, "useRtCb", { enumerable: true, get: function () { return __importDefault(useRtCb_1).default; } });
19
19
  // 特殊 Effect
20
20
  var useUpdateEff_1 = require("./useUpdateEff");
21
- Object.defineProperty(exports, "useUpdateEffect", { enumerable: true, get: function () { return __importDefault(useUpdateEff_1).default; } });
21
+ Object.defineProperty(exports, "useUpdateEff", { enumerable: true, get: function () { return __importDefault(useUpdateEff_1).default; } });
22
22
  // 模拟生命周期
23
23
  var useIsMounted_1 = require("./useIsMounted");
24
24
  Object.defineProperty(exports, "useIsMounted", { enumerable: true, get: function () { return __importDefault(useIsMounted_1).default; } });
25
- var useIsUnmounted_1 = require("./useIsUnmounted");
26
- Object.defineProperty(exports, "useIsUnmount", { enumerable: true, get: function () { return __importDefault(useIsUnmounted_1).default; } });
25
+ var useIsUnmount_1 = require("./useIsUnmount");
26
+ Object.defineProperty(exports, "useIsUnmount", { enumerable: true, get: function () { return __importDefault(useIsUnmount_1).default; } });
27
27
  var useCreate_1 = require("./useCreate");
28
28
  Object.defineProperty(exports, "useCreate", { enumerable: true, get: function () { return __importDefault(useCreate_1).default; } });
29
29
  var useMount_1 = require("./useMount");
@@ -39,12 +39,18 @@ Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function
39
39
  var useThrottle_1 = require("./useThrottle");
40
40
  Object.defineProperty(exports, "useThrottle", { enumerable: true, get: function () { return __importDefault(useThrottle_1).default; } });
41
41
  // 使用异步
42
+ var useSafeRunner_1 = require("./useSafeRunner");
43
+ Object.defineProperty(exports, "useSafeRunner", { enumerable: true, get: function () { return __importDefault(useSafeRunner_1).default; } });
42
44
  var useAsync_1 = require("./useAsync");
43
45
  Object.defineProperty(exports, "useAsync", { enumerable: true, get: function () { return __importDefault(useAsync_1).default; } });
44
46
  // 浏览器api
45
47
  var useTimeout_1 = require("./useTimeout");
46
48
  Object.defineProperty(exports, "useTimeout", { enumerable: true, get: function () { return __importDefault(useTimeout_1).default; } });
49
+ Object.defineProperty(exports, "useTimeoutHandler", { enumerable: true, get: function () { return useTimeout_1.useTimeoutHandler; } });
47
50
  var useInterval_1 = require("./useInterval");
48
51
  Object.defineProperty(exports, "useInterval", { enumerable: true, get: function () { return __importDefault(useInterval_1).default; } });
52
+ Object.defineProperty(exports, "useIntervalHandler", { enumerable: true, get: function () { return useInterval_1.useIntervalHandler; } });
49
53
  var useResizeObserver_1 = require("./useResizeObserver");
50
54
  Object.defineProperty(exports, "useResizeObserver", { enumerable: true, get: function () { return __importDefault(useResizeObserver_1).default; } });
55
+ Object.defineProperty(exports, "useResizeObserverHandler", { enumerable: true, get: function () { return useResizeObserver_1.useResizeObserverHandler; } });
56
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"/","sources":["index.tsx"],"names":[],"mappings":";;;;;;AACA,UAAU;AACV,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAE7B,oBAAoB;AACpB,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,qCAA+C;AAAtC,mHAAA,OAAO,OAAW;AAE3B,YAAY;AACZ,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAEhC,UAAU;AACV,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,+CAAyD;AAAhD,6HAAA,OAAO,OAAgB;AAChC,yCAAmD;AAA1C,uHAAA,OAAO,OAAa;AAC7B,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAC5B,2CAAqD;AAA5C,yHAAA,OAAO,OAAc;AAE9B,WAAW;AACX,6DAAuE;AAA9D,2IAAA,OAAO,OAAuB;AAEvC,OAAO;AACP,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAC/B,6CAAuD;AAA9C,2HAAA,OAAO,OAAe;AAE/B,OAAO;AACP,iDAA2D;AAAlD,+HAAA,OAAO,OAAiB;AACjC,uCAAiD;AAAxC,qHAAA,OAAO,OAAY;AAE5B,SAAS;AACT,2CAAwE;AAA/D,yHAAA,OAAO,OAAc;AAAE,+GAAA,iBAAiB,OAAA;AACjD,6CAA2E;AAAlE,2HAAA,OAAO,OAAe;AAAE,iHAAA,kBAAkB,OAAA;AACnD,yDAA6F;AAApF,uIAAA,OAAO,OAAqB;AAAE,6HAAA,wBAAwB,OAAA","sourcesContent":["\n// 特殊state\nexport { default as useBoolState } from './useBoolState';\nexport { default as useValue } from './useValue';\nexport { default as useOption } from './useOption';\n\n// 传入参数实时更新,保证内部最新数据\nexport { default as useRtRef } from './useRtRef';\nexport { default as useRtCb } from './useRtCb';\n\n// 特殊 Effect\nexport { default as useUpdateEff } from './useUpdateEff';\n\n// 模拟生命周期\nexport { default as useIsMounted } from './useIsMounted';\nexport { default as useIsUnmount } from './useIsUnmount';\nexport { default as useCreate } from './useCreate';\nexport { default as useMount } from './useMount';\nexport { default as useUnmount } from './useUnmount';\n\n// callback\nexport { default as useIgnoreAbortErrCb } from './useIgnoreAbortErrCb';\n\n// 防抖节流\nexport { default as useDebounce } from './useDebounce';\nexport { default as useThrottle } from './useThrottle';\n\n// 使用异步\nexport { default as useSafeRunner } from './useSafeRunner';\nexport { default as useAsync } from './useAsync';\n\n// 浏览器api\nexport { default as useTimeout, useTimeoutHandler } from './useTimeout';\nexport { default as useInterval, useIntervalHandler } from './useInterval';\nexport { default as useResizeObserver, useResizeObserverHandler } from './useResizeObserver';\n"]}
package/lib/useAsync.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-18 23:44:38
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:53:22
6
+ * @Last Modified time: 2025-05-29 17:58:54
7
7
  */
8
8
  var __assign = (this && this.__assign) || function () {
9
9
  __assign = Object.assign || function(t) {
@@ -23,20 +23,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
23
  var react_1 = require("react");
24
24
  var useRtCb_1 = __importDefault(require("./useRtCb"));
25
25
  var useCreate_1 = __importDefault(require("./useCreate"));
26
- var useIsUnmounted_1 = __importDefault(require("./useIsUnmounted"));
26
+ var useIsUnmount_1 = __importDefault(require("./useIsUnmount"));
27
27
  var useUnmount_1 = __importDefault(require("./useUnmount"));
28
28
  var defOpt = {
29
29
  immediate: false,
30
30
  catchParam: false,
31
31
  };
32
32
  var useAsync = function (asyncFn, opt) {
33
- if (opt === void 0) { opt = defOpt; }
34
- var _a = (0, react_1.useState)(), data = _a[0], setData = _a[1];
33
+ if (opt === void 0) { opt = __assign({}, defOpt); }
34
+ var _a = (0, react_1.useState)(undefined), data = _a[0], setData = _a[1];
35
35
  var _b = (0, react_1.useState)(opt.defParam || {}), param = _b[0], setParam = _b[1];
36
36
  var _c = (0, react_1.useState)(false), loading = _c[0], setLoading = _c[1];
37
- var _d = (0, react_1.useState)(), error = _d[0], setError = _d[1];
37
+ var _d = (0, react_1.useState)(undefined), error = _d[0], setError = _d[1];
38
38
  var _e = (0, react_1.useState)(), controller = _e[0], setController = _e[1];
39
- var isUnmounted = (0, useIsUnmounted_1.default)();
39
+ var isUnmounted = (0, useIsUnmount_1.default)();
40
40
  (0, react_1.useEffect)(function () {
41
41
  if (!controller || !opt.onAbort) {
42
42
  return;
@@ -48,7 +48,8 @@ var useAsync = function (asyncFn, opt) {
48
48
  };
49
49
  }, [controller]);
50
50
  var run = (0, useRtCb_1.default)(function (runParam) {
51
- var currParam = opt.catchParam ? __assign(__assign({}, param), (runParam || {})) : runParam;
51
+ if (runParam === void 0) { runParam = {}; }
52
+ var currParam = opt.catchParam ? __assign(__assign({}, param), runParam) : runParam;
52
53
  setLoading(true);
53
54
  setError(undefined);
54
55
  if (controller) {
@@ -62,15 +63,14 @@ var useAsync = function (asyncFn, opt) {
62
63
  return;
63
64
  setData(opt.format ? opt.format(resData) : resData);
64
65
  setParam(currParam);
65
- setLoading(false);
66
66
  }, function (err) {
67
67
  if (isUnmounted() || abortController.signal.aborted)
68
- return Promise.reject(err);
68
+ return;
69
69
  setError(err);
70
- setLoading(false);
71
70
  }).finally(function () {
72
71
  if (isUnmounted())
73
72
  return;
73
+ setLoading(false);
74
74
  setController(undefined);
75
75
  });
76
76
  });
@@ -85,6 +85,7 @@ var useAsync = function (asyncFn, opt) {
85
85
  controller.abort();
86
86
  }
87
87
  });
88
- return [data, { run: run, refresh: refresh, loading: loading, error: error, param: param }];
88
+ return [data, { run: run, refresh: refresh, loading: loading, error: error, param: param, controller: controller }];
89
89
  };
90
90
  exports.default = useAsync;
91
+ //# sourceMappingURL=useAsync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAsync.js","sourceRoot":"/","sources":["useAsync.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-18 23:44:38\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-29 17:58:54\n */\n\nimport { useEffect, useState } from 'react';\nimport useRtCb from './useRtCb';\nimport useCreate from './useCreate';\nimport useIsUnmounted from './useIsUnmount';\nimport useUnmount from './useUnmount';\n\ntype Parameter<T extends (p: any) => any> = Parameters<T>[0]\n\ninterface Opt<T extends (p: any) => any, R> {\n defParam?: Partial<Parameter<T>>;\n immediate?: boolean;\n format?: (p: ReturnType<T>) => R;\n catchParam?: boolean;\n onAbort?: (this: AbortSignal, ev: Event) => any;\n}\n\nconst defOpt = {\n immediate: false,\n catchParam: false,\n}\n\nconst useAsync = <T extends (p: any, opt?: { signal: AbortController['signal'] }) => Promise<any>, R = any>(\n asyncFn: T,\n opt: Opt<T, R> = { ...defOpt }\n): [\n R | undefined,\n {\n run: (runParam?: Partial<Parameter<T>>) => Promise<void>;\n refresh: () => Promise<void>;\n loading: boolean;\n error?: Error;\n param: Partial<Parameter<T>>;\n controller: AbortController|undefined;\n }\n] => {\n const [data, setData] = useState<R | undefined>(undefined);\n const [param, setParam] = useState<Partial<Parameter<T>>>(opt.defParam || {});\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<Error | undefined>(undefined);\n const [controller, setController] = useState<AbortController>();\n const isUnmounted = useIsUnmounted();\n\n useEffect(() => {\n if (!controller || !opt.onAbort) {\n return;\n }\n const onAbort = opt.onAbort\n controller.signal.addEventListener('abort', onAbort);\n return () => {\n controller.signal.removeEventListener('abort', onAbort);\n }\n }, [controller]);\n\n const run = useRtCb((runParam: Partial<Parameter<T>> = {}) => {\n const currParam = opt.catchParam ? {\n ...param,\n ...runParam,\n } : runParam;\n setLoading(true);\n setError(undefined);\n\n if (controller) {\n controller.abort();\n }\n\n const abortController = new AbortController();\n setController(abortController);\n\n return asyncFn(currParam, { signal: abortController.signal })\n .then((resData) => {\n if (isUnmounted() || abortController.signal.aborted) return;\n setData(opt.format ? opt.format(resData) : resData);\n setParam(currParam as any);\n }, (err) => {\n if (isUnmounted() || abortController.signal.aborted) return;\n setError(err);\n }).finally(() => {\n if (isUnmounted()) return;\n setLoading(false);\n setController(undefined);\n });\n });\n const refresh = useRtCb(() => run(param));\n useCreate(() => {\n if (opt.immediate) {\n run(param);\n }\n });\n useUnmount(() => {\n if (controller) {\n controller.abort();\n }\n });\n return [data, { run, refresh, loading, error, param, controller }];\n};\n\nexport default useAsync;\n"]}
@@ -3,7 +3,7 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-16 11:16:34
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-16 11:21:54
6
+ * @Last Modified time: 2025-05-29 18:08:43
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  var react_1 = require("react");
@@ -23,3 +23,4 @@ var useBoolState = function (value) {
23
23
  return [val, switchFn];
24
24
  };
25
25
  exports.default = useBoolState;
26
+ //# sourceMappingURL=useBoolState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useBoolState.js","sourceRoot":"/","sources":["useBoolState.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAA8C;AAE9C,IAAM,YAAY,GAAG,UAAC,KAAc;IAI5B,IAAA,KAAgB,IAAA,gBAAQ,EAAU,KAAK,CAAC,EAAvC,GAAG,QAAA,EAAE,MAAM,QAA4B,CAAC;IAC/C,IAAM,QAAQ,GAAG,IAAA,mBAAW,EAAC,UAAC,WAA2C;QACvE,IAAI,WAAW,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACtD,MAAM,CAAC,UAAC,MAAM,IAAK,OAAA,CAAC,MAAM,EAAP,CAAO,CAAC,CAAC;QAC9B,CAAC;aAAM,IAAI,OAAO,WAAW,KAAK,SAAS,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE,CAAC;YACjF,MAAM,CAAC,WAAW,CAAC,CAAC;QACtB,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;QACxB,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;AACzB,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 11:16:34\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-29 18:08:43\n */\n\nimport { useState, useCallback } from 'react';\n\nconst useBoolState = (value: boolean): [\n boolean,\n (switchValue?: React.SetStateAction<boolean>) => void\n] => {\n const [val, setVal] = useState<boolean>(value);\n const switchFn = useCallback((switchValue?: React.SetStateAction<boolean>) => {\n if (switchValue === undefined || switchValue === null) {\n setVal((oldVal) => !oldVal);\n } else if (typeof switchValue === 'boolean' || typeof switchValue === 'function') {\n setVal(switchValue);\n } else {\n setVal(!!switchValue);\n }\n }, []);\n return [val, switchFn];\n};\n\nexport default useBoolState;\n"]}
package/lib/useCreate.js CHANGED
@@ -11,3 +11,4 @@ var useCreate = function (cb) {
11
11
  (0, react_1.useState)(cb);
12
12
  };
13
13
  exports.default = useCreate;
14
+ //# sourceMappingURL=useCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCreate.js","sourceRoot":"/","sources":["useCreate.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAAiC;AAEjC,IAAM,SAAS,GAAG,UAAC,EAAc;IAC/B,IAAA,gBAAQ,EAAC,EAAE,CAAC,CAAC;AACf,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 11:34:59\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-19 22:53:33\n */\n\nimport { useState } from 'react';\n\nconst useCreate = (cb: () => void) => {\n useState(cb);\n};\n\nexport default useCreate;\n"]}
@@ -3,25 +3,27 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-19 22:55:14
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:55:14
6
+ * @Last Modified time: 2025-05-29 18:56:33
7
7
  */
8
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- var lodash_es_1 = require("lodash-es");
12
+ var lodash_1 = require("lodash");
13
13
  var react_1 = require("react");
14
14
  var useRtCb_1 = __importDefault(require("./useRtCb"));
15
15
  var useDebounce = function (cb, wait, opts) {
16
+ if (wait === void 0) { wait = 200; }
16
17
  var rtCb = (0, useRtCb_1.default)(cb);
17
18
  return (0, react_1.useMemo)(function () {
18
- return (0, lodash_es_1.debounce)(function () {
19
+ return (0, lodash_1.debounce)(function () {
19
20
  var arg = [];
20
21
  for (var _i = 0; _i < arguments.length; _i++) {
21
22
  arg[_i] = arguments[_i];
22
23
  }
23
- rtCb.apply(void 0, arg);
24
+ return rtCb.apply(void 0, arg);
24
25
  }, wait, opts);
25
- }, []);
26
+ }, [wait, opts]);
26
27
  };
27
28
  exports.default = useDebounce;
29
+ //# sourceMappingURL=useDebounce.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useDebounce.js","sourceRoot":"/","sources":["useDebounce.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,iCAAmE;AACnE,+BAAgC;AAChC,sDAAgC;AAChC,IAAM,WAAW,GAAG,UAClB,EAAK,EACL,IAAkB,EAClB,IAAuB;IADvB,qBAAA,EAAA,UAAkB;IAGlB,IAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,EAAE,CAAC,CAAC;IACzB,OAAO,IAAA,eAAO,EAAC;QACb,OAAO,IAAA,iBAAQ,EAAC;YAAC,aAAqB;iBAArB,UAAqB,EAArB,qBAAqB,EAArB,IAAqB;gBAArB,wBAAqB;;YACpC,OAAO,IAAI,eAAI,GAAG,EAAE;QACtB,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAC;AAEF,kBAAe,WAAW,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-19 22:55:14\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-29 18:56:33\n */\n\nimport { debounce, DebounceSettings, DebouncedFunc } from 'lodash';\nimport { useMemo } from 'react';\nimport useRtCb from './useRtCb';\nconst useDebounce = <T extends (...args: any[]) => any>(\n cb: T,\n wait: number = 200,\n opts?: DebounceSettings\n): DebouncedFunc<T> => {\n const rtCb = useRtCb(cb);\n return useMemo(() => {\n return debounce((...arg: Parameters<T>) => {\n return rtCb(...arg);\n }, wait, opts);\n }, [wait, opts]);\n};\n\nexport default useDebounce;\n"]}
@@ -17,3 +17,4 @@ var useIgnoreAbortErrCb = function (cb, deps, opts) {
17
17
  }, deps);
18
18
  };
19
19
  exports.default = useIgnoreAbortErrCb;
20
+ //# sourceMappingURL=useIgnoreAbortErrCb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIgnoreAbortErrCb.js","sourceRoot":"/","sources":["useIgnoreAbortErrCb.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAAoC;AAKpC,IAAM,mBAAmB,GAAG,UAAU,EAAqB,EAAE,IAA+B,EAAE,IAAc;IAA/C,qBAAA,EAAA,SAA+B;IAC1F,OAAO,IAAA,mBAAW,EAAC,UAAC,GAAU;;QAC5B,IAAI,GAAG,CAAC,IAAI,KAAK,YAAY;YAAE,OAAO,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,GAAG,CAAC,CAAC;QAC3D,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;IACjB,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC,CAAC;AACF,kBAAe,mBAAmB,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-19 22:28:14\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-19 22:57:23\n */\n\nimport { useCallback } from \"react\";\n\ninterface Opts<T> {\n onAbort: (err: Error) => T;\n}\nconst useIgnoreAbortErrCb = <T = any>(cb: (err: Error) => T, deps: React.DependencyList = [], opts?: Opts<T>) => {\n return useCallback((err: Error) => {\n if (err.name === 'AbortError') return opts?.onAbort?.(err);\n return cb(err);\n }, deps);\n};\nexport default useIgnoreAbortErrCb;\n"]}
@@ -3,11 +3,25 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2023-12-14 16:51:29
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 23:11:26
6
+ * @Last Modified time: 2025-05-30 18:24:00
7
7
  */
8
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
10
+ if (ar || !(i in from)) {
11
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
12
+ ar[i] = from[i];
13
+ }
14
+ }
15
+ return to.concat(ar || Array.prototype.slice.call(from));
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
8
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.useInterval = exports.useIntervalHandler = void 0;
9
22
  var react_1 = require("react");
10
- var useInterval = function () {
23
+ var useRtCb_1 = __importDefault(require("./useRtCb"));
24
+ var useIntervalHandler = function () {
11
25
  var timerRef = (0, react_1.useRef)();
12
26
  var clearTimer = (0, react_1.useCallback)(function () {
13
27
  if (timerRef.current) {
@@ -22,7 +36,6 @@ var useInterval = function () {
22
36
  }
23
37
  clearTimer();
24
38
  timerRef.current = window.setInterval(function () {
25
- timerRef.current = undefined;
26
39
  callback.apply(void 0, arg);
27
40
  }, timeout);
28
41
  }, []);
@@ -32,4 +45,20 @@ var useInterval = function () {
32
45
  clearTimer,
33
46
  ];
34
47
  };
35
- exports.default = useInterval;
48
+ exports.useIntervalHandler = useIntervalHandler;
49
+ var useInterval = function (callback, timeout) {
50
+ var arg = [];
51
+ for (var _i = 2; _i < arguments.length; _i++) {
52
+ arg[_i - 2] = arguments[_i];
53
+ }
54
+ var _a = (0, exports.useIntervalHandler)(), bindTimer = _a[0], clearTimer = _a[1];
55
+ var cb = (0, useRtCb_1.default)(callback);
56
+ (0, react_1.useEffect)(function () {
57
+ bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
58
+ return clearTimer;
59
+ }, __spreadArray([cb, timeout], arg, true));
60
+ return clearTimer;
61
+ };
62
+ exports.useInterval = useInterval;
63
+ exports.default = exports.useInterval;
64
+ //# sourceMappingURL=useInterval.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useInterval.js","sourceRoot":"/","sources":["useInterval.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;AAEH,+BAAuD;AACvD,sDAAgC;AAEzB,IAAM,kBAAkB,GAAG;IAIhC,IAAM,QAAQ,GAAG,IAAA,cAAM,GAAU,CAAC;IAClC,IAAM,UAAU,GAAG,IAAA,mBAAW,EAAC;QAC7B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YACvC,QAAQ,CAAC,OAAO,GAAG,SAAS,CAAC;QAC/B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,IAAM,SAAS,GAAG,IAAA,mBAAW,EAAC,UAAC,QAAkB,EAAE,OAAgB;QAAE,aAAa;aAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;YAAb,4BAAa;;QAChF,UAAU,EAAE,CAAC;QACb,QAAQ,CAAC,OAAO,GAAG,MAAM,CAAC,WAAW,CAAC;YACpC,QAAQ,eAAI,GAAG,EAAE;QACnB,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,IAAA,iBAAS,EAAC,cAAM,OAAA,UAAU,EAAV,CAAU,CAAC,CAAC;IAC5B,OAAO;QACL,SAAS;QACT,UAAU;KACX,CAAC;AACJ,CAAC,CAAA;AAtBY,QAAA,kBAAkB,sBAsB9B;AAEM,IAAM,WAAW,GAAG,UAAC,QAA8B,EAAE,OAAgB;IAAE,aAAa;SAAb,UAAa,EAAb,qBAAa,EAAb,IAAa;QAAb,4BAAa;;IACnF,IAAA,KAA0B,IAAA,0BAAkB,GAAE,EAA7C,SAAS,QAAA,EAAE,UAAU,QAAwB,CAAC;IACrD,IAAM,EAAE,GAAG,IAAA,iBAAO,EAAC,QAAQ,CAAC,CAAC;IAC7B,IAAA,iBAAS,EAAC;QACR,SAAS,8BAAC,EAAE,EAAE,OAAO,GAAK,GAAG,UAAC;QAC9B,OAAO,UAAU,CAAA;IACnB,CAAC,iBAAG,EAAE,EAAE,OAAO,GAAK,GAAG,QAAE,CAAC;IAC1B,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AARW,QAAA,WAAW,eAQtB;AAEF,kBAAe,mBAAW,CAAC","sourcesContent":["/*\n * @Author: apathyjade\n * @Date: 2023-12-14 16:51:29\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-30 18:24:00\n */\n\nimport { useCallback, useEffect, useRef } from 'react';\nimport useRtCb from './useRtCb';\n\nexport const useIntervalHandler = (): [\n (callback: Function, timeout?: number, ...arg: any[]) => void,\n () => void,\n] => {\n const timerRef = useRef<number>();\n const clearTimer = useCallback(() => {\n if (timerRef.current) {\n window.clearInterval(timerRef.current);\n timerRef.current = undefined;\n }\n }, []);\n const bindTimer = useCallback((callback: Function, timeout?: number, ...arg: any[]) => {\n clearTimer();\n timerRef.current = window.setInterval(() => {\n callback(...arg);\n }, timeout);\n }, []);\n useEffect(() => clearTimer);\n return [\n bindTimer,\n clearTimer,\n ];\n}\n\nexport const useInterval = (callback: (args: any[]) => any, timeout?: number, ...arg: any[]): (() => void) => {\n const [bindTimer, clearTimer] = useIntervalHandler();\n const cb = useRtCb(callback);\n useEffect(() => {\n bindTimer(cb, timeout, ...arg)\n return clearTimer\n }, [cb, timeout, ...arg]);\n return clearTimer;\n};\n\nexport default useInterval;\n"]}
@@ -18,3 +18,4 @@ var useIsMounted = function () {
18
18
  return (0, react_1.useCallback)(function () { return ref.current; }, []);
19
19
  };
20
20
  exports.default = useIsMounted;
21
+ //# sourceMappingURL=useIsMounted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsMounted.js","sourceRoot":"/","sources":["useIsMounted.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAAuD;AAEvD,IAAM,YAAY,GAAG;IACnB,IAAM,GAAG,GAAG,IAAA,cAAM,EAAC,KAAK,CAAC,CAAC;IAC1B,IAAA,iBAAS,EAAC;QACR,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;QACnB,OAAO;YACL,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;QACtB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAA,mBAAW,EAAC,cAAM,OAAA,GAAG,CAAC,OAAO,EAAX,CAAW,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 21:34:27\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-16 21:37:21\n */\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nconst useIsMounted = (): (() => boolean) => {\n const ref = useRef(false);\n useEffect(() => {\n ref.current = true;\n return () => {\n ref.current = false;\n };\n }, []);\n return useCallback(() => ref.current, []);\n};\n\nexport default useIsMounted;\n"]}
@@ -3,17 +3,19 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-16 21:33:24
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-16 21:35:46
6
+ * @Last Modified time: 2025-05-29 20:15:50
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  var react_1 = require("react");
10
- var useIsUnmounted = function () {
11
- var ref = (0, react_1.useRef)(false);
10
+ var useIsUnmount = function () {
11
+ var ref = (0, react_1.useRef)(true);
12
12
  (0, react_1.useEffect)(function () {
13
+ ref.current = false;
13
14
  return function () {
14
15
  ref.current = true;
15
16
  };
16
17
  }, []);
17
18
  return (0, react_1.useCallback)(function () { return ref.current; }, []);
18
19
  };
19
- exports.default = useIsUnmounted;
20
+ exports.default = useIsUnmount;
21
+ //# sourceMappingURL=useIsUnmount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useIsUnmount.js","sourceRoot":"/","sources":["useIsUnmount.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAAuD;AAEvD,IAAM,YAAY,GAAG;IACnB,IAAM,GAAG,GAAG,IAAA,cAAM,EAAC,IAAI,CAAC,CAAC;IACzB,IAAA,iBAAS,EAAC;QACR,GAAG,CAAC,OAAO,GAAG,KAAK,CAAA;QACnB,OAAO;YACL,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAA,mBAAW,EAAC,cAAM,OAAA,GAAG,CAAC,OAAO,EAAX,CAAW,EAAE,EAAE,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,kBAAe,YAAY,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 21:33:24\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-29 20:15:50\n */\n\nimport { useCallback, useEffect, useRef } from 'react';\n\nconst useIsUnmount = (): (() => boolean) => {\n const ref = useRef(true);\n useEffect(() => {\n ref.current = false\n return () => {\n ref.current = true;\n };\n }, []);\n return useCallback(() => ref.current, []);\n};\n\nexport default useIsUnmount;\n"]}
package/lib/useMount.js CHANGED
@@ -11,3 +11,4 @@ var useMount = function (cb) {
11
11
  (0, react_1.useEffect)(cb, []);
12
12
  };
13
13
  exports.default = useMount;
14
+ //# sourceMappingURL=useMount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMount.js","sourceRoot":"/","sources":["useMount.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAAkC;AAElC,IAAM,QAAQ,GAAG,UAAC,EAAc;IAC9B,IAAA,iBAAS,EAAC,EAAE,EAAE,EAAE,CAAC,CAAC;AACpB,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-18 00:21:16\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-18 00:21:16\n */\n\nimport { useEffect } from 'react';\n\nconst useMount = (cb: () => void) => {\n useEffect(cb, []);\n};\n\nexport default useMount;\n"]}
package/lib/useOption.js CHANGED
@@ -26,8 +26,9 @@ var useOption = function (defOpt) {
26
26
  setOption(initOpt);
27
27
  }, [initOpt]);
28
28
  var update = (0, react_1.useCallback)(function (newOpts) {
29
- setOption(function (oldOpts) { return (__assign(__assign({}, (oldOpts || {})), (typeof newOpts === 'function' ? newOpts(oldOpts) : newOpts || {}))); });
29
+ setOption(function (oldOpts) { return (__assign(__assign({}, oldOpts), (typeof newOpts === 'function' ? newOpts(oldOpts) : newOpts))); });
30
30
  }, []);
31
31
  return [option, { setOption: setOption, reset: reset, update: update }];
32
32
  };
33
33
  exports.default = useOption;
34
+ //# sourceMappingURL=useOption.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOption.js","sourceRoot":"/","sources":["useOption.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;AAEH,+BAA8C;AAE9C,IAAM,SAAS,GAAG,UAAe,MAAuB;IAAvB,uBAAA,EAAA,WAAuB;IAQ/C,IAAA,OAAO,GAAI,IAAA,gBAAQ,EAAa,MAAM,CAAC,GAAhC,CAAiC;IACzC,IAAA,KAAsB,IAAA,gBAAQ,EAAa,OAAO,CAAC,EAAlD,MAAM,QAAA,EAAE,SAAS,QAAiC,CAAC;IAE1D,IAAM,KAAK,GAAG,IAAA,mBAAW,EAAC;QACxB,SAAS,CAAC,OAAO,CAAC,CAAC;IACrB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,IAAM,MAAM,GAAqD,IAAA,mBAAW,EAAC,UAAC,OAAyC;QACrH,SAAS,CAAC,UAAC,OAAO,IAAK,OAAA,uBAClB,OAAO,GACP,CAAC,OAAO,OAAO,KAAK,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAC/D,EAHqB,CAGrB,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,MAAM,EAAE,EAAE,SAAS,WAAA,EAAE,KAAK,OAAA,EAAE,MAAM,QAAA,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,kBAAe,SAAS,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 11:35:37\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-16 21:31:54\n */\n\nimport { useCallback, useState } from 'react';\n\nconst useOption = <T extends {}>(defOpt: Partial<T> = {}): [\n Partial<T>,\n {\n reset: () => void;\n setOption: React.Dispatch<React.SetStateAction<Partial<T>>>;\n update: React.Dispatch<React.SetStateAction<Partial<T>>>;\n },\n ] => {\n const [initOpt] = useState<Partial<T>>(defOpt);\n const [option, setOption] = useState<Partial<T>>(initOpt);\n\n const reset = useCallback(() => {\n setOption(initOpt);\n }, [initOpt]);\n\n const update: React.Dispatch<React.SetStateAction<Partial<T>>> = useCallback((newOpts: React.SetStateAction<Partial<T>>) => {\n setOption((oldOpts) => ({\n ...oldOpts,\n ...(typeof newOpts === 'function' ? newOpts(oldOpts) : newOpts),\n }));\n }, []);\n\n return [option, { setOption, reset, update }];\n};\n\nexport default useOption;\n"]}
@@ -3,51 +3,64 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2023-11-24 10:52:51
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 23:17:45
6
+ * @Last Modified time: 2025-05-30 14:35:56
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.useResizeObserver = exports.useResizeObserverHandler = void 0;
9
10
  var react_1 = require("react");
10
- var resizeObserver = null;
11
- var observeCatch = null;
12
- function init() {
13
- if (resizeObserver) {
14
- return;
15
- }
11
+ var resizeObserver;
12
+ var observeCatch;
13
+ var init = function () {
16
14
  observeCatch = new Map();
17
15
  resizeObserver = new window.ResizeObserver(function (targets) {
18
- targets === null || targets === void 0 ? void 0 : targets.forEach(function (item) {
16
+ if (targets === void 0) { targets = []; }
17
+ targets.forEach(function (item) {
19
18
  var _a;
20
- (_a = observeCatch === null || observeCatch === void 0 ? void 0 : observeCatch.get(item === null || item === void 0 ? void 0 : item.target)) === null || _a === void 0 ? void 0 : _a(item);
19
+ if (item === void 0) { item = {}; }
20
+ (_a = observeCatch.get(item.target)) === null || _a === void 0 ? void 0 : _a(item);
21
21
  });
22
22
  });
23
- }
24
- ;
23
+ init = null;
24
+ };
25
25
  var observe = function (target, cb) {
26
- if (!resizeObserver) {
26
+ if (init) {
27
27
  init();
28
28
  }
29
- observeCatch === null || observeCatch === void 0 ? void 0 : observeCatch.set(target, cb);
30
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(target);
29
+ if (!target) {
30
+ return;
31
+ }
32
+ observeCatch.set(target, cb);
33
+ resizeObserver.observe(target);
31
34
  };
32
35
  var unobserve = function (target) {
33
- if (!resizeObserver) {
36
+ if (init) {
34
37
  init();
35
38
  }
36
- resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(target);
37
- observeCatch === null || observeCatch === void 0 ? void 0 : observeCatch.delete(target);
39
+ if (!target) {
40
+ return;
41
+ }
42
+ resizeObserver.unobserve(target);
43
+ observeCatch.delete(target);
38
44
  };
39
- function useResizeObserver(dom, cb) {
40
- var selfObserve = (0, react_1.useCallback)(function () {
41
- observe(dom, cb);
42
- }, [dom, cb]);
45
+ var useResizeObserverHandler = function () {
46
+ return [observe, unobserve];
47
+ };
48
+ exports.useResizeObserverHandler = useResizeObserverHandler;
49
+ var useResizeObserver = function (domRef, cb) {
43
50
  var selfUnobserve = (0, react_1.useCallback)(function () {
44
- unobserve(dom);
45
- }, [dom]);
51
+ if (domRef.current) {
52
+ unobserve(domRef.current);
53
+ }
54
+ }, [domRef.current]);
46
55
  (0, react_1.useEffect)(function () {
56
+ if (!domRef.current)
57
+ return;
58
+ var dom = domRef.current;
47
59
  observe(dom, cb);
48
60
  return function () { return unobserve(dom); };
49
- }, [dom, cb]);
50
- return [selfObserve, selfUnobserve];
51
- }
52
- exports.default = useResizeObserver;
53
- ;
61
+ }, [domRef.current, cb]);
62
+ return selfUnobserve;
63
+ };
64
+ exports.useResizeObserver = useResizeObserver;
65
+ exports.default = exports.useResizeObserver;
66
+ //# sourceMappingURL=useResizeObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResizeObserver.js","sourceRoot":"/","sources":["useResizeObserver.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,+BAA+C;AAE/C,IAAI,cAA8B,CAAC;AACnC,IAAI,YAAwC,CAAC;AAG7C,IAAI,IAAI,GAAoB;IAC1B,YAAY,GAAG,IAAI,GAAG,EAAE,CAAC;IACzB,cAAc,GAAG,IAAI,MAAM,CAAC,cAAc,CACxC,UAAC,OAAY;QAAZ,wBAAA,EAAA,YAAY;QACX,OAAO,CAAC,OAAO,CAAC,UAAC,IAAc;;YAAd,qBAAA,EAAA,SAAc;YAC7B,MAAA,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,0CAAG,IAAI,CAAC,CAAC;QACxC,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;IACF,IAAI,GAAG,IAAI,CAAA;AACb,CAAC,CAAC;AAEF,IAAM,OAAO,GAAG,UAAC,MAAmB,EAAE,EAAsC;IAC1E,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;IACT,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7B,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;AACjC,CAAC,CAAC;AACF,IAAM,SAAS,GAAG,UAAC,MAAmB;IACpC,IAAI,IAAI,EAAE,CAAC;QACT,IAAI,EAAE,CAAC;IACT,CAAC;IACD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO;IACT,CAAC;IACD,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACjC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9B,CAAC,CAAC;AAEK,IAAM,wBAAwB,GAAG;IAItC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;AAC9B,CAAC,CAAC;AALW,QAAA,wBAAwB,4BAKnC;AAEK,IAAM,iBAAiB,GAAG,UAAyB,MAA0B,EAAE,EAAwC;IAC5H,IAAM,aAAa,GAAG,IAAA,mBAAW,EAAC;QAChC,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;YACnB,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACrB,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,MAAM,CAAC,OAAO;YAAE,OAAO;QAC5B,IAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAA;QAC1B,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACjB,OAAO,cAAM,OAAA,SAAS,CAAC,GAAG,CAAC,EAAd,CAAc,CAAC;IAC9B,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IACzB,OAAO,aAAa,CAAC;AACvB,CAAC,CAAC;AAbW,QAAA,iBAAiB,qBAa5B;AAEF,kBAAe,yBAAiB,CAAC","sourcesContent":["/*\n * @Author: apathyjade\n * @Date: 2023-11-24 10:52:51\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-30 14:35:56\n */\n\nimport { useCallback, useEffect } from 'react';\n\nlet resizeObserver: ResizeObserver;\nlet observeCatch: Map<HTMLElement, Function>;\n\n\nlet init: Function | null = () => {\n observeCatch = new Map();\n resizeObserver = new window.ResizeObserver(\n (targets = []) => {\n targets.forEach((item: any = {}) => {\n observeCatch.get(item.target)?.(item);\n });\n },\n );\n init = null\n};\n\nconst observe = (target: HTMLElement, cb: (dom: ResizeObserverEntry) => void) => {\n if (init) {\n init();\n }\n if (!target) {\n return;\n }\n observeCatch.set(target, cb);\n resizeObserver.observe(target);\n};\nconst unobserve = (target: HTMLElement) => {\n if (init) {\n init();\n }\n if (!target) {\n return;\n }\n resizeObserver.unobserve(target);\n observeCatch.delete(target);\n};\n\nexport const useResizeObserverHandler = (): [\n typeof observe,\n typeof unobserve\n] => {\n return [observe, unobserve];\n};\n\nexport const useResizeObserver = <T extends HTMLElement >(domRef: React.RefObject<T>, cb: (entry: ResizeObserverEntry) => void) => {\n const selfUnobserve = useCallback(() => {\n if (domRef.current) {\n unobserve(domRef.current);\n }\n }, [domRef.current]);\n useEffect(() => {\n if (!domRef.current) return;\n const dom = domRef.current\n observe(dom, cb);\n return () => unobserve(dom);\n }, [domRef.current, cb]);\n return selfUnobserve;\n};\n\nexport default useResizeObserver;\n"]}
package/lib/useRtCb.js CHANGED
@@ -11,8 +11,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  var react_1 = require("react");
13
13
  var useRtRef_1 = __importDefault(require("./useRtRef"));
14
- var useRtCb = function (cb, deps) {
15
- if (deps === void 0) { deps = []; }
14
+ var useRtCb = function (cb) {
16
15
  var ref = (0, useRtRef_1.default)(cb);
17
16
  return (0, react_1.useCallback)(function () {
18
17
  var args = [];
@@ -20,6 +19,7 @@ var useRtCb = function (cb, deps) {
20
19
  args[_i] = arguments[_i];
21
20
  }
22
21
  return ref.current.apply(ref, args);
23
- }, deps);
22
+ }, []);
24
23
  };
25
24
  exports.default = useRtCb;
25
+ //# sourceMappingURL=useRtCb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRtCb.js","sourceRoot":"/","sources":["useRtCb.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,+BAAoC;AACpC,wDAAkC;AAElC,IAAM,OAAO,GAAG,UAAoC,EAAK;IACvD,IAAM,GAAG,GAAG,IAAA,kBAAQ,EAAI,EAAE,CAAC,CAAC;IAC5B,OAAO,IAAA,mBAAW,EAAC;QAAC,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAChC,OAAQ,GAAG,CAAC,OAAO,OAAX,GAAG,EAAkB,IAAI,EAAE;IACrC,CAAC,EAAE,EAAE,CAAM,CAAC;AACd,CAAC,CAAC;AAEF,kBAAe,OAAO,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-17 00:22:11\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-17 00:22:56\n */\n\nimport { useCallback } from 'react';\nimport useRtRef from './useRtRef';\n\nconst useRtCb = <T extends (...args: any[]) => any>(cb: T): T => {\n const ref = useRtRef<T>(cb);\n return useCallback((...args: any[]) => {\n return (ref.current as T)(...args);\n }, []) as T;\n};\n\nexport default useRtCb;\n"]}
package/lib/useRtRef.js CHANGED
@@ -3,7 +3,7 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-16 22:19:57
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-17 00:10:45
6
+ * @Last Modified time: 2025-05-30 15:05:26
7
7
  */
8
8
  Object.defineProperty(exports, "__esModule", { value: true });
9
9
  var react_1 = require("react");
@@ -13,3 +13,4 @@ var useRtRef = function (val) {
13
13
  return ref;
14
14
  };
15
15
  exports.default = useRtRef;
16
+ //# sourceMappingURL=useRtRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRtRef.js","sourceRoot":"/","sources":["useRtRef.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAEH,+BAA+B;AAE/B,IAAM,QAAQ,GAAG,UAAI,GAAM;IACzB,IAAM,GAAG,GAAG,IAAA,cAAM,EAAI,GAAG,CAAC,CAAA;IAC1B,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;IAClB,OAAO,GAAG,CAAC;AACb,CAAC,CAAC;AAEF,kBAAe,QAAQ,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 22:19:57\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-30 15:05:26\n */\n\nimport { useRef } from 'react';\n\nconst useRtRef = <T>(val: T) => {\n const ref = useRef<T>(val)\n ref.current = val;\n return ref;\n};\n\nexport default useRtRef;\n"]}
@@ -10,9 +10,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  var react_1 = require("react");
13
- var useIsUnmounted_1 = __importDefault(require("./useIsUnmounted"));
13
+ var useIsUnmount_1 = __importDefault(require("./useIsUnmount"));
14
14
  var useSafeRunner = function () {
15
- var isUnmount = (0, useIsUnmounted_1.default)();
15
+ var isUnmount = (0, useIsUnmount_1.default)();
16
16
  return (0, react_1.useCallback)(function (cb, unmountCb) {
17
17
  if (isUnmount()) {
18
18
  unmountCb === null || unmountCb === void 0 ? void 0 : unmountCb();
@@ -23,3 +23,4 @@ var useSafeRunner = function () {
23
23
  }, []);
24
24
  };
25
25
  exports.default = useSafeRunner;
26
+ //# sourceMappingURL=useSafeRunner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSafeRunner.js","sourceRoot":"/","sources":["useSafeRunner.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,+BAAoC;AACpC,gEAA0C;AAE1C,IAAM,aAAa,GAAG;IACpB,IAAM,SAAS,GAAG,IAAA,sBAAY,GAAE,CAAC;IACjC,OAAO,IAAA,mBAAW,EAAC,UAAC,EAAc,EAAE,SAAsB;QACxD,IAAI,SAAS,EAAE,EAAE,CAAC;YAChB,SAAS,aAAT,SAAS,uBAAT,SAAS,EAAI,CAAC;QAChB,CAAC;aAAM,CAAC;YACN,EAAE,EAAE,CAAC;QACP,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,kBAAe,aAAa,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-16 11:36:09\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-03-19 22:41:39\n */\n\nimport { useCallback } from 'react';\nimport useIsUnmount from \"./useIsUnmount\";\n\nconst useSafeRunner = () => {\n const isUnmount = useIsUnmount();\n return useCallback((cb: () => void, unmountCb?: () => void) => {\n if (isUnmount()) {\n unmountCb?.();\n } else {\n cb();\n }\n }, []);\n};\n\nexport default useSafeRunner;\n"]}
@@ -3,25 +3,27 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-19 22:55:28
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 22:55:48
6
+ * @Last Modified time: 2025-05-30 15:31:34
7
7
  */
8
8
  var __importDefault = (this && this.__importDefault) || function (mod) {
9
9
  return (mod && mod.__esModule) ? mod : { "default": mod };
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- var lodash_es_1 = require("lodash-es");
12
+ var lodash_1 = require("lodash");
13
13
  var react_1 = require("react");
14
14
  var useRtCb_1 = __importDefault(require("./useRtCb"));
15
15
  var useThrottle = function (cb, wait, opts) {
16
+ if (wait === void 0) { wait = 200; }
16
17
  var rtCb = (0, useRtCb_1.default)(cb);
17
18
  return (0, react_1.useMemo)(function () {
18
- return (0, lodash_es_1.throttle)(function () {
19
- var arg = [];
19
+ return (0, lodash_1.throttle)(function () {
20
+ var args = [];
20
21
  for (var _i = 0; _i < arguments.length; _i++) {
21
- arg[_i] = arguments[_i];
22
+ args[_i] = arguments[_i];
22
23
  }
23
- rtCb.apply(void 0, arg);
24
+ rtCb.apply(void 0, args);
24
25
  }, wait, opts);
25
- }, []);
26
+ }, [wait, opts]);
26
27
  };
27
28
  exports.default = useThrottle;
29
+ //# sourceMappingURL=useThrottle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useThrottle.js","sourceRoot":"/","sources":["useThrottle.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;AAEH,iCAA0E;AAC1E,+BAAgC;AAChC,sDAAgC;AAEhC,IAAM,WAAW,GAAG,UAClB,EAAK,EACL,IAAkB,EAClB,IAAuB;IADvB,qBAAA,EAAA,UAAkB;IAGlB,IAAM,IAAI,GAAG,IAAA,iBAAO,EAAC,EAAE,CAAC,CAAC;IACzB,OAAO,IAAA,eAAO,EAAC;QACb,OAAO,IAAA,iBAAQ,EAAC;YAAC,cAAsB;iBAAtB,UAAsB,EAAtB,qBAAsB,EAAtB,IAAsB;gBAAtB,yBAAsB;;YACrC,IAAI,eAAI,IAAI,EAAC;QACf,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;AACnB,CAAC,CAAA;AAED,kBAAe,WAAW,CAAC","sourcesContent":["/**\n * @Author: apathyjade\n * @Date: 2025-03-19 22:55:28\n * @Last Modified by: apathyjade\n * @Last Modified time: 2025-05-30 15:31:34\n */\n\nimport { throttle, ThrottleSettings, DebouncedFuncLeading } from 'lodash';\nimport { useMemo } from 'react';\nimport useRtCb from './useRtCb';\n\nconst useThrottle = <T extends (...args: any) => any >(\n cb: T,\n wait: number = 200,\n opts?: ThrottleSettings,\n): DebouncedFuncLeading<T> => {\n const rtCb = useRtCb(cb);\n return useMemo(() => {\n return throttle((...args: Parameters<T>) => {\n rtCb(...args)\n }, wait, opts);\n }, [wait, opts]);\n}\n\nexport default useThrottle;\n"]}
package/lib/useTimeout.js CHANGED
@@ -3,11 +3,25 @@
3
3
  * @Author: apathyjade
4
4
  * @Date: 2025-03-19 23:10:13
5
5
  * @Last Modified by: apathyjade
6
- * @Last Modified time: 2025-03-19 23:10:13
6
+ * @Last Modified time: 2025-05-30 18:24:42
7
7
  */
8
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
9
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
10
+ if (ar || !(i in from)) {
11
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
12
+ ar[i] = from[i];
13
+ }
14
+ }
15
+ return to.concat(ar || Array.prototype.slice.call(from));
16
+ };
17
+ var __importDefault = (this && this.__importDefault) || function (mod) {
18
+ return (mod && mod.__esModule) ? mod : { "default": mod };
19
+ };
8
20
  Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.useTimeout = exports.useTimeoutHandler = void 0;
9
22
  var react_1 = require("react");
10
- var useTimeout = function () {
23
+ var useRtCb_1 = __importDefault(require("./useRtCb"));
24
+ var useTimeoutHandler = function () {
11
25
  var timerRef = (0, react_1.useRef)();
12
26
  var clearTimer = (0, react_1.useCallback)(function () {
13
27
  if (timerRef.current) {
@@ -32,4 +46,20 @@ var useTimeout = function () {
32
46
  clearTimer,
33
47
  ];
34
48
  };
35
- exports.default = useTimeout;
49
+ exports.useTimeoutHandler = useTimeoutHandler;
50
+ var useTimeout = function (callback, timeout) {
51
+ var arg = [];
52
+ for (var _i = 2; _i < arguments.length; _i++) {
53
+ arg[_i - 2] = arguments[_i];
54
+ }
55
+ var _a = (0, exports.useTimeoutHandler)(), bindTimer = _a[0], clearTimer = _a[1];
56
+ var cb = (0, useRtCb_1.default)(callback);
57
+ (0, react_1.useEffect)(function () {
58
+ bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
59
+ return clearTimer;
60
+ }, __spreadArray([cb, timeout], arg, true));
61
+ return clearTimer;
62
+ };
63
+ exports.useTimeout = useTimeout;
64
+ exports.default = exports.useTimeout;
65
+ //# sourceMappingURL=useTimeout.js.map