@jelper/hooks 0.3.0 → 1.1.0
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/index.js +15 -16
- package/es/useAsync.js +54 -14
- package/es/useBoolState.js +13 -5
- package/es/useCreate.js +6 -0
- package/es/useDebounce.js +7 -1
- package/es/useIgnoreAbortErrCb.js +16 -0
- package/es/useInterval.js +20 -7
- package/es/useIsMounted.js +18 -0
- package/es/useIsUnmount.js +9 -2
- package/es/useMount.js +7 -6
- package/es/useOption.js +19 -0
- package/es/useResizeObserver.js +25 -14
- package/es/useRtCb.js +10 -5
- package/es/useRtRef.js +11 -5
- package/es/useSafeRunner.js +20 -0
- package/es/useThrottle.js +7 -8
- package/es/useTimeout.js +24 -19
- package/es/useUnmount.js +9 -3
- package/es/useUpdateEff.js +17 -0
- package/es/useValue.js +26 -0
- package/lib/index.js +24 -23
- package/lib/useAsync.js +56 -16
- package/lib/useBoolState.js +12 -7
- package/lib/useCreate.js +6 -0
- package/lib/useDebounce.js +7 -1
- package/lib/useIgnoreAbortErrCb.js +19 -0
- package/lib/useInterval.js +41 -8
- package/lib/useIsMounted.js +20 -0
- package/lib/useIsUnmount.js +9 -2
- package/lib/useMount.js +7 -9
- package/lib/useOption.js +33 -0
- package/lib/useResizeObserver.js +27 -17
- package/lib/useRtCb.js +12 -15
- package/lib/useRtRef.js +9 -4
- package/lib/useSafeRunner.js +25 -0
- package/lib/useThrottle.js +7 -8
- package/lib/useTimeout.js +45 -20
- package/lib/useUnmount.js +11 -2
- package/lib/useUpdateEff.js +19 -0
- package/lib/{useRtState.js → useValue.js} +13 -16
- package/package.json +11 -5
- package/types/index.d.ts +11 -12
- package/types/useAsync.d.ts +23 -8
- package/types/useBoolState.d.ts +10 -1
- package/types/useCreate.d.ts +7 -1
- package/types/useDebounce.d.ts +6 -0
- package/types/useIgnoreAbortErrCb.d.ts +12 -0
- package/types/useInterval.d.ts +5 -1
- package/types/useIsMounted.d.ts +8 -0
- package/types/useIsUnmount.d.ts +6 -0
- package/types/useMount.d.ts +7 -1
- package/types/useOption.d.ts +15 -0
- package/types/useResizeObserver.d.ts +3 -1
- package/types/useRtCb.d.ts +8 -1
- package/types/useRtRef.d.ts +8 -1
- package/types/useSafeRunner.d.ts +8 -0
- package/types/useThrottle.d.ts +6 -7
- package/types/useTimeout.d.ts +9 -5
- package/types/useUnmount.d.ts +7 -1
- package/types/useUpdateEff.d.ts +8 -0
- package/types/useValue.d.ts +8 -0
- package/es/useListener.js +0 -17
- package/es/useParamsState.js +0 -9
- package/es/useRtEffect.js +0 -7
- package/es/useRtState.js +0 -28
- package/es/useSafeCb.js +0 -11
- package/es/useSafeState.js +0 -8
- package/es/useUpdateEffect.js +0 -12
- package/lib/useListener.js +0 -22
- package/lib/useParamsState.js +0 -26
- package/lib/useRtEffect.js +0 -12
- package/lib/useSafeCb.js +0 -20
- package/lib/useSafeState.js +0 -13
- package/lib/useUpdateEffect.js +0 -15
- package/types/useListener.d.ts +0 -2
- package/types/useParamsState.d.ts +0 -6
- package/types/useRtEffect.d.ts +0 -2
- package/types/useRtState.d.ts +0 -6
- package/types/useSafeCb.d.ts +0 -2
- package/types/useSafeState.d.ts +0 -5
- package/types/useUpdateEffect.d.ts +0 -1
package/lib/index.js
CHANGED
|
@@ -3,30 +3,25 @@ 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.
|
|
7
|
-
//
|
|
8
|
-
var
|
|
9
|
-
Object.defineProperty(exports, "
|
|
10
|
-
var
|
|
11
|
-
Object.defineProperty(exports, "
|
|
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
|
+
// 特殊state
|
|
8
|
+
var useBoolState_1 = require("./useBoolState");
|
|
9
|
+
Object.defineProperty(exports, "useBoolState", { enumerable: true, get: function () { return __importDefault(useBoolState_1).default; } });
|
|
10
|
+
var useValue_1 = require("./useValue");
|
|
11
|
+
Object.defineProperty(exports, "useValue", { enumerable: true, get: function () { return __importDefault(useValue_1).default; } });
|
|
12
|
+
var useOption_1 = require("./useOption");
|
|
13
|
+
Object.defineProperty(exports, "useOption", { enumerable: true, get: function () { return __importDefault(useOption_1).default; } });
|
|
12
14
|
// 传入参数实时更新,保证内部最新数据
|
|
13
15
|
var useRtRef_1 = require("./useRtRef");
|
|
14
16
|
Object.defineProperty(exports, "useRtRef", { enumerable: true, get: function () { return __importDefault(useRtRef_1).default; } });
|
|
15
|
-
var useRtState_1 = require("./useRtState");
|
|
16
|
-
Object.defineProperty(exports, "useRtState", { enumerable: true, get: function () { return __importDefault(useRtState_1).default; } });
|
|
17
17
|
var useRtCb_1 = require("./useRtCb");
|
|
18
18
|
Object.defineProperty(exports, "useRtCb", { enumerable: true, get: function () { return __importDefault(useRtCb_1).default; } });
|
|
19
|
-
var useRtEffect_1 = require("./useRtEffect"); // 保证卸载回调能拿到最新数据
|
|
20
|
-
Object.defineProperty(exports, "useRtEffect", { enumerable: true, get: function () { return __importDefault(useRtEffect_1).default; } });
|
|
21
|
-
// 特殊state
|
|
22
|
-
var useBoolState_1 = require("./useBoolState");
|
|
23
|
-
Object.defineProperty(exports, "useBoolState", { enumerable: true, get: function () { return __importDefault(useBoolState_1).default; } });
|
|
24
|
-
var useParamsState_1 = require("./useParamsState");
|
|
25
|
-
Object.defineProperty(exports, "useParamsState", { enumerable: true, get: function () { return __importDefault(useParamsState_1).default; } });
|
|
26
19
|
// 特殊 Effect
|
|
27
|
-
var
|
|
28
|
-
Object.defineProperty(exports, "
|
|
29
|
-
//
|
|
20
|
+
var useUpdateEff_1 = require("./useUpdateEff");
|
|
21
|
+
Object.defineProperty(exports, "useUpdateEff", { enumerable: true, get: function () { return __importDefault(useUpdateEff_1).default; } });
|
|
22
|
+
// 模拟生命周期
|
|
23
|
+
var useIsMounted_1 = require("./useIsMounted");
|
|
24
|
+
Object.defineProperty(exports, "useIsMounted", { enumerable: true, get: function () { return __importDefault(useIsMounted_1).default; } });
|
|
30
25
|
var useIsUnmount_1 = require("./useIsUnmount");
|
|
31
26
|
Object.defineProperty(exports, "useIsUnmount", { enumerable: true, get: function () { return __importDefault(useIsUnmount_1).default; } });
|
|
32
27
|
var useCreate_1 = require("./useCreate");
|
|
@@ -35,20 +30,26 @@ var useMount_1 = require("./useMount");
|
|
|
35
30
|
Object.defineProperty(exports, "useMount", { enumerable: true, get: function () { return __importDefault(useMount_1).default; } });
|
|
36
31
|
var useUnmount_1 = require("./useUnmount");
|
|
37
32
|
Object.defineProperty(exports, "useUnmount", { enumerable: true, get: function () { return __importDefault(useUnmount_1).default; } });
|
|
38
|
-
//
|
|
39
|
-
var
|
|
40
|
-
Object.defineProperty(exports, "
|
|
33
|
+
// callback
|
|
34
|
+
var useIgnoreAbortErrCb_1 = require("./useIgnoreAbortErrCb");
|
|
35
|
+
Object.defineProperty(exports, "useIgnoreAbortErrCb", { enumerable: true, get: function () { return __importDefault(useIgnoreAbortErrCb_1).default; } });
|
|
36
|
+
// 防抖节流
|
|
41
37
|
var useDebounce_1 = require("./useDebounce");
|
|
42
38
|
Object.defineProperty(exports, "useDebounce", { enumerable: true, get: function () { return __importDefault(useDebounce_1).default; } });
|
|
39
|
+
var useThrottle_1 = require("./useThrottle");
|
|
40
|
+
Object.defineProperty(exports, "useThrottle", { enumerable: true, get: function () { return __importDefault(useThrottle_1).default; } });
|
|
43
41
|
// 使用异步
|
|
42
|
+
var useSafeRunner_1 = require("./useSafeRunner");
|
|
43
|
+
Object.defineProperty(exports, "useSafeRunner", { enumerable: true, get: function () { return __importDefault(useSafeRunner_1).default; } });
|
|
44
44
|
var useAsync_1 = require("./useAsync");
|
|
45
45
|
Object.defineProperty(exports, "useAsync", { enumerable: true, get: function () { return __importDefault(useAsync_1).default; } });
|
|
46
46
|
// 浏览器api
|
|
47
47
|
var useTimeout_1 = require("./useTimeout");
|
|
48
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; } });
|
|
49
50
|
var useInterval_1 = require("./useInterval");
|
|
50
51
|
Object.defineProperty(exports, "useInterval", { enumerable: true, get: function () { return __importDefault(useInterval_1).default; } });
|
|
51
|
-
|
|
52
|
-
Object.defineProperty(exports, "useListener", { enumerable: true, get: function () { return __importDefault(useListener_1).default; } });
|
|
52
|
+
Object.defineProperty(exports, "useIntervalHandler", { enumerable: true, get: function () { return useInterval_1.useIntervalHandler; } });
|
|
53
53
|
var useResizeObserver_1 = require("./useResizeObserver");
|
|
54
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; } });
|
package/lib/useAsync.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @Author: apathyjade
|
|
4
|
+
* @Date: 2025-03-18 23:44:38
|
|
5
|
+
* @Last Modified by: apathyjade
|
|
6
|
+
* @Last Modified time: 2025-05-29 17:58:54
|
|
7
|
+
*/
|
|
2
8
|
var __assign = (this && this.__assign) || function () {
|
|
3
9
|
__assign = Object.assign || function(t) {
|
|
4
10
|
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
@@ -14,37 +20,71 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
14
20
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
21
|
};
|
|
16
22
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var
|
|
23
|
+
var react_1 = require("react");
|
|
18
24
|
var useRtCb_1 = __importDefault(require("./useRtCb"));
|
|
19
25
|
var useCreate_1 = __importDefault(require("./useCreate"));
|
|
26
|
+
var useIsUnmount_1 = __importDefault(require("./useIsUnmount"));
|
|
27
|
+
var useUnmount_1 = __importDefault(require("./useUnmount"));
|
|
28
|
+
var defOpt = {
|
|
29
|
+
immediate: false,
|
|
30
|
+
catchParam: false,
|
|
31
|
+
};
|
|
20
32
|
var useAsync = function (asyncFn, opt) {
|
|
21
|
-
if (opt === void 0) { opt =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
var
|
|
26
|
-
var
|
|
27
|
-
var
|
|
28
|
-
|
|
33
|
+
if (opt === void 0) { opt = defOpt; }
|
|
34
|
+
var _a = (0, react_1.useState)(), data = _a[0], setData = _a[1];
|
|
35
|
+
var _b = (0, react_1.useState)(opt.defParam || {}), param = _b[0], setParam = _b[1];
|
|
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];
|
|
38
|
+
var _e = (0, react_1.useState)(), controller = _e[0], setController = _e[1];
|
|
39
|
+
var isUnmounted = (0, useIsUnmount_1.default)();
|
|
40
|
+
(0, react_1.useEffect)(function () {
|
|
41
|
+
if (!controller || !opt.onAbort) {
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
var onAbort = opt.onAbort;
|
|
45
|
+
controller.signal.addEventListener('abort', onAbort);
|
|
46
|
+
return function () {
|
|
47
|
+
controller.signal.removeEventListener('abort', onAbort);
|
|
48
|
+
};
|
|
49
|
+
}, [controller]);
|
|
29
50
|
var run = (0, useRtCb_1.default)(function (runParam) {
|
|
30
51
|
var currParam = opt.catchParam ? __assign(__assign({}, param), (runParam || {})) : runParam;
|
|
31
52
|
setLoading(true);
|
|
32
|
-
setError(
|
|
33
|
-
|
|
34
|
-
.
|
|
53
|
+
setError(undefined);
|
|
54
|
+
if (controller) {
|
|
55
|
+
controller.abort();
|
|
56
|
+
}
|
|
57
|
+
var abortController = new AbortController();
|
|
58
|
+
setController(abortController);
|
|
59
|
+
return asyncFn(currParam, { signal: abortController.signal })
|
|
35
60
|
.then(function (resData) {
|
|
36
|
-
|
|
61
|
+
if (isUnmounted() || abortController.signal.aborted)
|
|
62
|
+
return;
|
|
63
|
+
setData(opt.format ? opt.format(resData) : resData);
|
|
37
64
|
setParam(currParam);
|
|
38
|
-
}, setError)
|
|
39
|
-
.finally(function () {
|
|
40
65
|
setLoading(false);
|
|
66
|
+
}, function (err) {
|
|
67
|
+
if (isUnmounted() || abortController.signal.aborted)
|
|
68
|
+
return Promise.reject(err);
|
|
69
|
+
setError(err);
|
|
70
|
+
setLoading(false);
|
|
71
|
+
}).finally(function () {
|
|
72
|
+
if (isUnmounted())
|
|
73
|
+
return;
|
|
74
|
+
setController(undefined);
|
|
41
75
|
});
|
|
42
76
|
});
|
|
77
|
+
var refresh = (0, useRtCb_1.default)(function () { return run(param); });
|
|
43
78
|
(0, useCreate_1.default)(function () {
|
|
44
79
|
if (opt.immediate) {
|
|
45
80
|
run(param);
|
|
46
81
|
}
|
|
47
82
|
});
|
|
48
|
-
|
|
83
|
+
(0, useUnmount_1.default)(function () {
|
|
84
|
+
if (controller) {
|
|
85
|
+
controller.abort();
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
return [data, { run: run, refresh: refresh, loading: loading, error: error, param: param, controller: controller }];
|
|
49
89
|
};
|
|
50
90
|
exports.default = useAsync;
|
package/lib/useBoolState.js
CHANGED
|
@@ -1,18 +1,23 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
*/
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
var react_1 = require("react");
|
|
7
|
-
var useSafeState_1 = __importDefault(require("./useSafeState"));
|
|
8
10
|
var useBoolState = function (value) {
|
|
9
|
-
var _a = (0,
|
|
11
|
+
var _a = (0, react_1.useState)(value), val = _a[0], setVal = _a[1];
|
|
10
12
|
var switchFn = (0, react_1.useCallback)(function (switchValue) {
|
|
11
|
-
if (
|
|
13
|
+
if (switchValue === undefined || switchValue === null) {
|
|
14
|
+
setVal(function (oldVal) { return !oldVal; });
|
|
15
|
+
}
|
|
16
|
+
else if (typeof switchValue === 'boolean' || typeof switchValue === 'function') {
|
|
12
17
|
setVal(switchValue);
|
|
13
18
|
}
|
|
14
19
|
else {
|
|
15
|
-
setVal(
|
|
20
|
+
setVal(!!switchValue);
|
|
16
21
|
}
|
|
17
22
|
}, []);
|
|
18
23
|
return [val, switchFn];
|
package/lib/useCreate.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
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
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
var react_1 = require("react");
|
|
4
10
|
var useCreate = function (cb) {
|
package/lib/useDebounce.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
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:32
|
|
7
|
+
*/
|
|
2
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
10
|
};
|
|
@@ -16,6 +22,6 @@ var useDebounce = function (cb, wait, opts) {
|
|
|
16
22
|
}
|
|
17
23
|
rtCb.apply(void 0, arg);
|
|
18
24
|
}, wait, opts);
|
|
19
|
-
}, []);
|
|
25
|
+
}, [wait, opts]);
|
|
20
26
|
};
|
|
21
27
|
exports.default = useDebounce;
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
var react_1 = require("react");
|
|
10
|
+
var useIgnoreAbortErrCb = function (cb, deps, opts) {
|
|
11
|
+
if (deps === void 0) { deps = []; }
|
|
12
|
+
return (0, react_1.useCallback)(function (err) {
|
|
13
|
+
var _a;
|
|
14
|
+
if (err.name === 'AbortError')
|
|
15
|
+
return (_a = opts === null || opts === void 0 ? void 0 : opts.onAbort) === null || _a === void 0 ? void 0 : _a.call(opts, err);
|
|
16
|
+
return cb(err);
|
|
17
|
+
}, deps);
|
|
18
|
+
};
|
|
19
|
+
exports.default = useIgnoreAbortErrCb;
|
package/lib/useInterval.js
CHANGED
|
@@ -3,28 +3,61 @@
|
|
|
3
3
|
* @Author: apathyjade
|
|
4
4
|
* @Date: 2023-12-14 16:51:29
|
|
5
5
|
* @Last Modified by: apathyjade
|
|
6
|
-
* @Last Modified time:
|
|
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
|
+
};
|
|
8
17
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
18
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
19
|
};
|
|
11
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
+
exports.useInterval = exports.useIntervalHandler = void 0;
|
|
12
22
|
var react_1 = require("react");
|
|
13
23
|
var useRtCb_1 = __importDefault(require("./useRtCb"));
|
|
14
|
-
var
|
|
24
|
+
var useIntervalHandler = function () {
|
|
15
25
|
var timerRef = (0, react_1.useRef)();
|
|
16
26
|
var clearTimer = (0, react_1.useCallback)(function () {
|
|
17
27
|
if (timerRef.current) {
|
|
18
28
|
window.clearInterval(timerRef.current);
|
|
29
|
+
timerRef.current = undefined;
|
|
19
30
|
}
|
|
20
31
|
}, []);
|
|
32
|
+
var bindTimer = (0, react_1.useCallback)(function (callback, timeout) {
|
|
33
|
+
var arg = [];
|
|
34
|
+
for (var _i = 2; _i < arguments.length; _i++) {
|
|
35
|
+
arg[_i - 2] = arguments[_i];
|
|
36
|
+
}
|
|
37
|
+
clearTimer();
|
|
38
|
+
timerRef.current = window.setInterval(function () {
|
|
39
|
+
callback.apply(void 0, arg);
|
|
40
|
+
}, timeout);
|
|
41
|
+
}, []);
|
|
42
|
+
(0, react_1.useEffect)(function () { return clearTimer; });
|
|
43
|
+
return [
|
|
44
|
+
bindTimer,
|
|
45
|
+
clearTimer,
|
|
46
|
+
];
|
|
47
|
+
};
|
|
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];
|
|
21
55
|
var cb = (0, useRtCb_1.default)(callback);
|
|
22
56
|
(0, react_1.useEffect)(function () {
|
|
23
|
-
|
|
24
|
-
return
|
|
25
|
-
|
|
26
|
-
};
|
|
27
|
-
}, [delay]);
|
|
57
|
+
bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
|
|
58
|
+
return clearTimer;
|
|
59
|
+
}, __spreadArray([cb, timeout], arg, true));
|
|
28
60
|
return clearTimer;
|
|
29
61
|
};
|
|
30
|
-
exports.
|
|
62
|
+
exports.useInterval = useInterval;
|
|
63
|
+
exports.default = exports.useInterval;
|
|
@@ -0,0 +1,20 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
var react_1 = require("react");
|
|
10
|
+
var useIsMounted = function () {
|
|
11
|
+
var ref = (0, react_1.useRef)(false);
|
|
12
|
+
(0, react_1.useEffect)(function () {
|
|
13
|
+
ref.current = true;
|
|
14
|
+
return function () {
|
|
15
|
+
ref.current = false;
|
|
16
|
+
};
|
|
17
|
+
}, []);
|
|
18
|
+
return (0, react_1.useCallback)(function () { return ref.current; }, []);
|
|
19
|
+
};
|
|
20
|
+
exports.default = useIsMounted;
|
package/lib/useIsUnmount.js
CHANGED
|
@@ -1,13 +1,20 @@
|
|
|
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
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
var react_1 = require("react");
|
|
4
10
|
var useIsUnmount = function () {
|
|
5
11
|
var ref = (0, react_1.useRef)(true);
|
|
6
12
|
(0, react_1.useEffect)(function () {
|
|
13
|
+
ref.current = false;
|
|
7
14
|
return function () {
|
|
8
|
-
ref.current =
|
|
15
|
+
ref.current = true;
|
|
9
16
|
};
|
|
10
17
|
}, []);
|
|
11
|
-
return (0, react_1.useCallback)(function () { return
|
|
18
|
+
return (0, react_1.useCallback)(function () { return ref.current; }, []);
|
|
12
19
|
};
|
|
13
20
|
exports.default = useIsUnmount;
|
package/lib/useMount.js
CHANGED
|
@@ -1,15 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
+
*/
|
|
5
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
9
|
var react_1 = require("react");
|
|
7
|
-
var useRtRef_1 = __importDefault(require("./useRtRef"));
|
|
8
10
|
var useMount = function (cb) {
|
|
9
|
-
|
|
10
|
-
(0, react_1.useEffect)(function () {
|
|
11
|
-
var _a;
|
|
12
|
-
(_a = ref.current) === null || _a === void 0 ? void 0 : _a.call(ref);
|
|
13
|
-
});
|
|
11
|
+
(0, react_1.useEffect)(cb, []);
|
|
14
12
|
};
|
|
15
13
|
exports.default = useMount;
|
package/lib/useOption.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
var __assign = (this && this.__assign) || function () {
|
|
9
|
+
__assign = Object.assign || function(t) {
|
|
10
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
11
|
+
s = arguments[i];
|
|
12
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
13
|
+
t[p] = s[p];
|
|
14
|
+
}
|
|
15
|
+
return t;
|
|
16
|
+
};
|
|
17
|
+
return __assign.apply(this, arguments);
|
|
18
|
+
};
|
|
19
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
+
var react_1 = require("react");
|
|
21
|
+
var useOption = function (defOpt) {
|
|
22
|
+
if (defOpt === void 0) { defOpt = {}; }
|
|
23
|
+
var initOpt = (0, react_1.useState)(defOpt)[0];
|
|
24
|
+
var _a = (0, react_1.useState)(initOpt), option = _a[0], setOption = _a[1];
|
|
25
|
+
var reset = (0, react_1.useCallback)(function () {
|
|
26
|
+
setOption(initOpt);
|
|
27
|
+
}, [initOpt]);
|
|
28
|
+
var update = (0, react_1.useCallback)(function (newOpts) {
|
|
29
|
+
setOption(function (oldOpts) { return (__assign(__assign({}, (oldOpts || {})), (typeof newOpts === 'function' ? newOpts(oldOpts) : newOpts || {}))); });
|
|
30
|
+
}, []);
|
|
31
|
+
return [option, { setOption: setOption, reset: reset, update: update }];
|
|
32
|
+
};
|
|
33
|
+
exports.default = useOption;
|
package/lib/useResizeObserver.js
CHANGED
|
@@ -3,14 +3,11 @@
|
|
|
3
3
|
* @Author: apathyjade
|
|
4
4
|
* @Date: 2023-11-24 10:52:51
|
|
5
5
|
* @Last Modified by: apathyjade
|
|
6
|
-
* @Last Modified time:
|
|
6
|
+
* @Last Modified time: 2025-05-30 14:35:56
|
|
7
7
|
*/
|
|
8
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
-
};
|
|
11
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.useResizeObserver = exports.useResizeObserverHandler = void 0;
|
|
12
10
|
var react_1 = require("react");
|
|
13
|
-
var useSafeCb_1 = __importDefault(require("./useSafeCb"));
|
|
14
11
|
var resizeObserver = null;
|
|
15
12
|
var observeCatch = null;
|
|
16
13
|
function init() {
|
|
@@ -25,10 +22,14 @@ function init() {
|
|
|
25
22
|
});
|
|
26
23
|
});
|
|
27
24
|
}
|
|
25
|
+
;
|
|
28
26
|
var observe = function (target, cb) {
|
|
29
27
|
if (!resizeObserver) {
|
|
30
28
|
init();
|
|
31
29
|
}
|
|
30
|
+
if (!target) {
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
32
33
|
observeCatch === null || observeCatch === void 0 ? void 0 : observeCatch.set(target, cb);
|
|
33
34
|
resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.observe(target);
|
|
34
35
|
};
|
|
@@ -36,21 +37,30 @@ var unobserve = function (target) {
|
|
|
36
37
|
if (!resizeObserver) {
|
|
37
38
|
init();
|
|
38
39
|
}
|
|
40
|
+
if (!target) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
39
43
|
resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.unobserve(target);
|
|
40
44
|
observeCatch === null || observeCatch === void 0 ? void 0 : observeCatch.delete(target);
|
|
41
45
|
};
|
|
42
|
-
function
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
var useResizeObserverHandler = function () {
|
|
47
|
+
return [observe, unobserve];
|
|
48
|
+
};
|
|
49
|
+
exports.useResizeObserverHandler = useResizeObserverHandler;
|
|
50
|
+
var useResizeObserver = function (domRef, cb) {
|
|
51
|
+
var selfUnobserve = (0, react_1.useCallback)(function () {
|
|
52
|
+
if (domRef.current) {
|
|
53
|
+
unobserve(domRef.current);
|
|
54
|
+
}
|
|
55
|
+
}, [domRef.current]);
|
|
49
56
|
(0, react_1.useEffect)(function () {
|
|
57
|
+
if (!domRef.current)
|
|
58
|
+
return;
|
|
59
|
+
var dom = domRef.current;
|
|
50
60
|
observe(dom, cb);
|
|
51
61
|
return function () { return unobserve(dom); };
|
|
52
|
-
}, [
|
|
53
|
-
return
|
|
54
|
-
}
|
|
55
|
-
exports.
|
|
56
|
-
;
|
|
62
|
+
}, [domRef.current, cb]);
|
|
63
|
+
return selfUnobserve;
|
|
64
|
+
};
|
|
65
|
+
exports.useResizeObserver = useResizeObserver;
|
|
66
|
+
exports.default = exports.useResizeObserver;
|
package/lib/useRtCb.js
CHANGED
|
@@ -1,28 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
}
|
|
9
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
-
};
|
|
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
|
+
*/
|
|
11
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
12
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
13
10
|
};
|
|
14
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
var
|
|
12
|
+
var react_1 = require("react");
|
|
16
13
|
var useRtRef_1 = __importDefault(require("./useRtRef"));
|
|
17
14
|
var useRtCb = function (cb, deps) {
|
|
15
|
+
if (deps === void 0) { deps = []; }
|
|
18
16
|
var ref = (0, useRtRef_1.default)(cb);
|
|
19
|
-
return (0,
|
|
20
|
-
var
|
|
21
|
-
var arg = [];
|
|
17
|
+
return (0, react_1.useCallback)(function () {
|
|
18
|
+
var args = [];
|
|
22
19
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
23
|
-
|
|
20
|
+
args[_i] = arguments[_i];
|
|
24
21
|
}
|
|
25
|
-
return
|
|
22
|
+
return ref.current.apply(ref, args);
|
|
26
23
|
}, deps);
|
|
27
24
|
};
|
|
28
25
|
exports.default = useRtCb;
|
package/lib/useRtRef.js
CHANGED
|
@@ -1,10 +1,15 @@
|
|
|
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
|
+
*/
|
|
2
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
9
|
var react_1 = require("react");
|
|
4
|
-
function
|
|
5
|
-
var ref = (0, react_1.useRef)();
|
|
10
|
+
var useRtRef = function (val) {
|
|
11
|
+
var ref = (0, react_1.useRef)(val);
|
|
6
12
|
ref.current = val;
|
|
7
13
|
return ref;
|
|
8
|
-
}
|
|
14
|
+
};
|
|
9
15
|
exports.default = useRtRef;
|
|
10
|
-
;
|
|
@@ -0,0 +1,25 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
var react_1 = require("react");
|
|
13
|
+
var useIsUnmount_1 = __importDefault(require("./useIsUnmount"));
|
|
14
|
+
var useSafeRunner = function () {
|
|
15
|
+
var isUnmount = (0, useIsUnmount_1.default)();
|
|
16
|
+
return (0, react_1.useCallback)(function (cb, unmountCb) {
|
|
17
|
+
if (isUnmount()) {
|
|
18
|
+
unmountCb === null || unmountCb === void 0 ? void 0 : unmountCb();
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
cb();
|
|
22
|
+
}
|
|
23
|
+
}, []);
|
|
24
|
+
};
|
|
25
|
+
exports.default = useSafeRunner;
|
package/lib/useThrottle.js
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
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
|
+
*/
|
|
2
8
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
9
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
10
|
};
|
|
@@ -6,13 +12,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
12
|
var lodash_es_1 = require("lodash-es");
|
|
7
13
|
var react_1 = require("react");
|
|
8
14
|
var useRtCb_1 = __importDefault(require("./useRtCb"));
|
|
9
|
-
/**
|
|
10
|
-
* 用于节流函数的钩子函数
|
|
11
|
-
* @param cb - 要节流的函数
|
|
12
|
-
* @param wait - 节流延迟时间,默认为0
|
|
13
|
-
* @param opts - 节流选项对象,默认为{}
|
|
14
|
-
* @returns 节流函数
|
|
15
|
-
*/
|
|
16
15
|
var useThrottle = function (cb, wait, opts) {
|
|
17
16
|
var rtCb = (0, useRtCb_1.default)(cb);
|
|
18
17
|
return (0, react_1.useMemo)(function () {
|
|
@@ -23,6 +22,6 @@ var useThrottle = function (cb, wait, opts) {
|
|
|
23
22
|
}
|
|
24
23
|
rtCb.apply(void 0, arg);
|
|
25
24
|
}, wait, opts);
|
|
26
|
-
}, []);
|
|
25
|
+
}, [wait, opts]);
|
|
27
26
|
};
|
|
28
27
|
exports.default = useThrottle;
|