@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/useTimeout.js
CHANGED
|
@@ -1,39 +1,64 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
/**
|
|
3
3
|
* @Author: apathyjade
|
|
4
|
-
* @Date:
|
|
4
|
+
* @Date: 2025-03-19 23:10:13
|
|
5
5
|
* @Last Modified by: apathyjade
|
|
6
|
-
* @Last Modified time:
|
|
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
|
+
};
|
|
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.useTimeout = exports.useTimeoutHandler = void 0;
|
|
12
22
|
var react_1 = require("react");
|
|
13
23
|
var useRtCb_1 = __importDefault(require("./useRtCb"));
|
|
14
|
-
|
|
15
|
-
* 使用定时器在指定延迟后执行回调函数
|
|
16
|
-
* @param callback - 回调函数
|
|
17
|
-
* @param delay - 延迟时间(毫秒)
|
|
18
|
-
* @returns clearTimer - 清除定时器的函数
|
|
19
|
-
*/
|
|
20
|
-
var useTimeout = function (callback, delay) {
|
|
24
|
+
var useTimeoutHandler = function () {
|
|
21
25
|
var timerRef = (0, react_1.useRef)();
|
|
22
|
-
/**
|
|
23
|
-
* 清除定时器
|
|
24
|
-
*/
|
|
25
26
|
var clearTimer = (0, react_1.useCallback)(function () {
|
|
26
27
|
if (timerRef.current) {
|
|
27
|
-
clearTimeout(timerRef.current);
|
|
28
|
+
window.clearTimeout(timerRef.current);
|
|
29
|
+
timerRef.current = undefined;
|
|
30
|
+
}
|
|
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];
|
|
28
36
|
}
|
|
37
|
+
clearTimer();
|
|
38
|
+
timerRef.current = window.setTimeout(function () {
|
|
39
|
+
timerRef.current = undefined;
|
|
40
|
+
callback.apply(void 0, arg);
|
|
41
|
+
}, timeout);
|
|
29
42
|
}, []);
|
|
43
|
+
(0, react_1.useEffect)(function () { return clearTimer; });
|
|
44
|
+
return [
|
|
45
|
+
bindTimer,
|
|
46
|
+
clearTimer,
|
|
47
|
+
];
|
|
48
|
+
};
|
|
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];
|
|
30
56
|
var cb = (0, useRtCb_1.default)(callback);
|
|
31
57
|
(0, react_1.useEffect)(function () {
|
|
32
|
-
|
|
33
|
-
return
|
|
34
|
-
|
|
35
|
-
};
|
|
36
|
-
}, [delay]);
|
|
58
|
+
bindTimer.apply(void 0, __spreadArray([cb, timeout], arg, false));
|
|
59
|
+
return clearTimer;
|
|
60
|
+
}, __spreadArray([cb, timeout], arg, true));
|
|
37
61
|
return clearTimer;
|
|
38
62
|
};
|
|
39
|
-
exports.
|
|
63
|
+
exports.useTimeout = useTimeout;
|
|
64
|
+
exports.default = exports.useTimeout;
|
package/lib/useUnmount.js
CHANGED
|
@@ -1,9 +1,18 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
9
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
10
|
+
};
|
|
2
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
12
|
var react_1 = require("react");
|
|
13
|
+
var useRtRef_1 = __importDefault(require("./useRtRef"));
|
|
4
14
|
var useUnmount = function (cb) {
|
|
5
|
-
var ref = (0,
|
|
6
|
-
ref.current = cb;
|
|
15
|
+
var ref = (0, useRtRef_1.default)(cb);
|
|
7
16
|
(0, react_1.useEffect)(function () {
|
|
8
17
|
return function () {
|
|
9
18
|
ref.current();
|
|
@@ -0,0 +1,19 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
var react_1 = require("react");
|
|
10
|
+
var useUpdateEff = function (cb, deps) {
|
|
11
|
+
var ref = (0, react_1.useRef)(false);
|
|
12
|
+
(0, react_1.useEffect)(function () {
|
|
13
|
+
if (ref.current) {
|
|
14
|
+
return cb();
|
|
15
|
+
}
|
|
16
|
+
ref.current = true;
|
|
17
|
+
}, deps);
|
|
18
|
+
};
|
|
19
|
+
exports.default = useUpdateEff;
|
|
@@ -11,24 +11,21 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
var react_1 = require("react");
|
|
14
|
-
var
|
|
14
|
+
var useUpdateEff_1 = __importDefault(require("./useUpdateEff"));
|
|
15
15
|
var defEqual = function (a, b) { return a === b; };
|
|
16
|
-
function
|
|
16
|
+
var useValue = function (value, onChange, opts) {
|
|
17
17
|
var _a = (opts || {}).isEqual, isEqual = _a === void 0 ? defEqual : _a;
|
|
18
18
|
var _b = (0, react_1.useState)(value), val = _b[0], setVal = _b[1];
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
}, []);
|
|
23
|
-
var _c = (0, react_1.useState)(value), oldValue = _c[0], setOldValue = _c[1];
|
|
24
|
-
(0, react_1.useEffect)(function () {
|
|
25
|
-
if (!isEqual(value, oldValue)) {
|
|
26
|
-
setOldValue(value);
|
|
27
|
-
if (!isEqual(value, val)) {
|
|
28
|
-
updateValue(value);
|
|
29
|
-
}
|
|
19
|
+
(0, useUpdateEff_1.default)(function () {
|
|
20
|
+
if (!isEqual(value, val)) {
|
|
21
|
+
onChange === null || onChange === void 0 ? void 0 : onChange(val);
|
|
30
22
|
}
|
|
31
|
-
}, [
|
|
23
|
+
}, [val]);
|
|
24
|
+
(0, useUpdateEff_1.default)(function () {
|
|
25
|
+
if (!isEqual(value, val)) {
|
|
26
|
+
setVal(value);
|
|
27
|
+
}
|
|
28
|
+
}, [value]);
|
|
32
29
|
return [val, setVal];
|
|
33
|
-
}
|
|
34
|
-
exports.default =
|
|
30
|
+
};
|
|
31
|
+
exports.default = useValue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jelper/hooks",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "react hooks helper",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -20,10 +20,16 @@
|
|
|
20
20
|
"access": "public"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@jelper/builder": "
|
|
23
|
+
"@jelper/builder": "1.1.0",
|
|
24
24
|
"@types/node": "~18.0.0",
|
|
25
25
|
"@types/react": "~18.2.17",
|
|
26
|
-
"@types/lodash-es": "~4.17.8"
|
|
26
|
+
"@types/lodash-es": "~4.17.8",
|
|
27
|
+
"@jest/globals": "~29.7.0",
|
|
28
|
+
"@testing-library/react": "~16.2.0",
|
|
29
|
+
"@testing-library/dom": "~10.4.0",
|
|
30
|
+
"@jest/environment": "~29.7.0",
|
|
31
|
+
"jest-environment-jsdom": "~29.7.0",
|
|
32
|
+
"jsdom": "~26.0.0"
|
|
27
33
|
},
|
|
28
34
|
"dependencies": {
|
|
29
35
|
"react": "~18.2.0",
|
|
@@ -32,10 +38,10 @@
|
|
|
32
38
|
"author": "apathyjade@outlook.com",
|
|
33
39
|
"license": "ISC",
|
|
34
40
|
"scripts": {
|
|
35
|
-
"
|
|
41
|
+
"serve": "jelper serve",
|
|
36
42
|
"build": "jelper build",
|
|
37
43
|
"build:debug": "jelper build --debug",
|
|
38
44
|
"build:help": "jelper build --help",
|
|
39
|
-
"
|
|
45
|
+
"test": "jelper test"
|
|
40
46
|
}
|
|
41
47
|
}
|
package/types/index.d.ts
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
export { default as
|
|
2
|
-
export { default as
|
|
1
|
+
export { default as useBoolState } from './useBoolState';
|
|
2
|
+
export { default as useValue } from './useValue';
|
|
3
|
+
export { default as useOption } from './useOption';
|
|
3
4
|
export { default as useRtRef } from './useRtRef';
|
|
4
|
-
export { default as useRtState } from './useRtState';
|
|
5
5
|
export { default as useRtCb } from './useRtCb';
|
|
6
|
-
export { default as
|
|
7
|
-
export { default as
|
|
8
|
-
export { default as useParamsState } from './useParamsState';
|
|
9
|
-
export { default as useUpdateEffect } from './useUpdateEffect';
|
|
6
|
+
export { default as useUpdateEff } from './useUpdateEff';
|
|
7
|
+
export { default as useIsMounted } from './useIsMounted';
|
|
10
8
|
export { default as useIsUnmount } from './useIsUnmount';
|
|
11
9
|
export { default as useCreate } from './useCreate';
|
|
12
10
|
export { default as useMount } from './useMount';
|
|
13
11
|
export { default as useUnmount } from './useUnmount';
|
|
14
|
-
export { default as
|
|
12
|
+
export { default as useIgnoreAbortErrCb } from './useIgnoreAbortErrCb';
|
|
15
13
|
export { default as useDebounce } from './useDebounce';
|
|
14
|
+
export { default as useThrottle } from './useThrottle';
|
|
15
|
+
export { default as useSafeRunner } from './useSafeRunner';
|
|
16
16
|
export { default as useAsync } from './useAsync';
|
|
17
|
-
export { default as useTimeout } from './useTimeout';
|
|
18
|
-
export { default as useInterval } from './useInterval';
|
|
19
|
-
export { default as
|
|
20
|
-
export { default as useResizeObserver } from './useResizeObserver';
|
|
17
|
+
export { default as useTimeout, useTimeoutHandler } from './useTimeout';
|
|
18
|
+
export { default as useInterval, useIntervalHandler } from './useInterval';
|
|
19
|
+
export { default as useResizeObserver, useResizeObserverHandler } from './useResizeObserver';
|
package/types/useAsync.d.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* @Author: apathyjade
|
|
3
|
+
* @Date: 2025-03-18 23:44:38
|
|
4
|
+
* @Last Modified by: apathyjade
|
|
5
|
+
* @Last Modified time: 2025-05-29 17:58:54
|
|
6
|
+
*/
|
|
7
|
+
type Parameter<T extends (p: any) => any> = Parameters<T>[0];
|
|
8
|
+
interface Opt<T extends (p: any) => any, R> {
|
|
9
|
+
defParam?: Parameter<T>;
|
|
3
10
|
immediate?: boolean;
|
|
4
11
|
format?: (p: ReturnType<T>) => R;
|
|
5
12
|
catchParam?: boolean;
|
|
13
|
+
onAbort?: (this: AbortSignal, ev: Event) => any;
|
|
6
14
|
}
|
|
7
|
-
declare const useAsync: <T extends (
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
15
|
+
declare const useAsync: <T extends (p: any, opt?: {
|
|
16
|
+
signal: AbortController['signal'];
|
|
17
|
+
}) => Promise<any>, R = any>(asyncFn: T, opt?: Opt<T, R>) => [
|
|
18
|
+
R | undefined,
|
|
19
|
+
{
|
|
20
|
+
run: (runParam?: Partial<Parameter<T>>) => Promise<void>;
|
|
21
|
+
refresh: () => Promise<void>;
|
|
22
|
+
loading: boolean;
|
|
23
|
+
error?: Error;
|
|
24
|
+
param: Partial<Parameter<T>>;
|
|
25
|
+
controller: AbortController | undefined;
|
|
26
|
+
}
|
|
27
|
+
];
|
|
13
28
|
export default useAsync;
|
package/types/useBoolState.d.ts
CHANGED
|
@@ -1,2 +1,11 @@
|
|
|
1
|
-
|
|
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
|
+
declare const useBoolState: (value: boolean) => [
|
|
8
|
+
boolean,
|
|
9
|
+
(val?: boolean) => void
|
|
10
|
+
];
|
|
2
11
|
export default useBoolState;
|
package/types/useCreate.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
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
|
+
declare const useCreate: (cb: () => void) => void;
|
|
2
8
|
export default useCreate;
|
package/types/useDebounce.d.ts
CHANGED
|
@@ -1,3 +1,9 @@
|
|
|
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:32
|
|
6
|
+
*/
|
|
1
7
|
import { DebounceSettings, DebouncedFunc } from 'lodash-es';
|
|
2
8
|
declare const useDebounce: <T extends (...args: any) => any>(cb: T, wait?: number, opts?: DebounceSettings) => DebouncedFunc<T>;
|
|
3
9
|
export default useDebounce;
|
|
@@ -0,0 +1,12 @@
|
|
|
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
|
+
/// <reference types="react" />
|
|
8
|
+
interface Opts<T> {
|
|
9
|
+
onAbort: (err: Error) => T;
|
|
10
|
+
}
|
|
11
|
+
declare const useIgnoreAbortErrCb: <T = any>(cb: (err: Error) => T, deps?: import("react").DependencyList, opts?: Opts<T>) => (err: Error) => T | undefined;
|
|
12
|
+
export default useIgnoreAbortErrCb;
|
package/types/useInterval.d.ts
CHANGED
|
@@ -1,2 +1,6 @@
|
|
|
1
|
-
declare const
|
|
1
|
+
export declare const useIntervalHandler: () => [
|
|
2
|
+
(callback: Function, timeout?: number, ...arg: any[]) => void,
|
|
3
|
+
() => void
|
|
4
|
+
];
|
|
5
|
+
export declare const useInterval: (callback: Function, timeout?: number, ...arg: any[]) => (() => void);
|
|
2
6
|
export default useInterval;
|
package/types/useIsUnmount.d.ts
CHANGED
package/types/useMount.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
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
|
+
declare const useMount: (cb: () => void) => void;
|
|
2
8
|
export default useMount;
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
declare const useOption: <T extends {}>(defOpt?: Partial<T>) => [
|
|
8
|
+
Partial<T>,
|
|
9
|
+
{
|
|
10
|
+
reset: () => void;
|
|
11
|
+
setOption: React.Dispatch<React.SetStateAction<Partial<T>>>;
|
|
12
|
+
update: React.Dispatch<React.SetStateAction<Partial<T>>>;
|
|
13
|
+
}
|
|
14
|
+
];
|
|
15
|
+
export default useOption;
|
|
@@ -1 +1,3 @@
|
|
|
1
|
-
export
|
|
1
|
+
export declare const useResizeObserverHandler: () => ((target: HTMLElement, cb: (dom: ResizeObserverEntry) => void) => void)[];
|
|
2
|
+
export declare const useResizeObserver: <T extends HTMLElement>(domRef: React.RefObject<T>, cb: (entry: ResizeObserverEntry) => void) => () => void;
|
|
3
|
+
export default useResizeObserver;
|
package/types/useRtCb.d.ts
CHANGED
|
@@ -1,2 +1,9 @@
|
|
|
1
|
-
|
|
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
|
+
import { DependencyList } from 'react';
|
|
8
|
+
declare const useRtCb: <T extends Function>(cb: T, deps?: DependencyList) => T;
|
|
2
9
|
export default useRtCb;
|
package/types/useRtRef.d.ts
CHANGED
|
@@ -1,2 +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
|
+
*/
|
|
1
7
|
/// <reference types="react" />
|
|
2
|
-
|
|
8
|
+
declare const useRtRef: <T>(val: T) => import("react").MutableRefObject<T>;
|
|
9
|
+
export default useRtRef;
|
package/types/useThrottle.d.ts
CHANGED
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
import { ThrottleSettings } from 'lodash-es';
|
|
2
1
|
/**
|
|
3
|
-
*
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
6
|
-
* @
|
|
7
|
-
* @returns 节流函数
|
|
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
|
|
8
6
|
*/
|
|
9
|
-
|
|
7
|
+
import { ThrottleSettings, DebouncedFunc } from 'lodash-es';
|
|
8
|
+
declare const useThrottle: <T extends (...args: any) => any>(cb: T, wait?: number, opts?: ThrottleSettings) => DebouncedFunc<T>;
|
|
10
9
|
export default useThrottle;
|
package/types/useTimeout.d.ts
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
* @
|
|
4
|
-
* @
|
|
5
|
-
* @
|
|
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
6
|
*/
|
|
7
|
-
declare const
|
|
7
|
+
export declare const useTimeoutHandler: () => [
|
|
8
|
+
(callback: Function, timeout?: number, ...arg: any[]) => void,
|
|
9
|
+
() => void
|
|
10
|
+
];
|
|
11
|
+
export declare const useTimeout: (callback: Function, timeout?: number, ...arg: any[]) => () => void;
|
|
8
12
|
export default useTimeout;
|
package/types/useUnmount.d.ts
CHANGED
|
@@ -1,2 +1,8 @@
|
|
|
1
|
-
|
|
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
|
+
declare const useUnmount: (cb: () => void) => void;
|
|
2
8
|
export default useUnmount;
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
+
declare const useUpdateEff: (cb: React.EffectCallback, deps?: React.DependencyList) => void;
|
|
8
|
+
export default useUpdateEff;
|
package/es/useListener.js
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
|
-
import useRtCb from './useRtCb';
|
|
3
|
-
import useRtEffect from './useRtEffect';
|
|
4
|
-
const useListener = (type, listener, options) => {
|
|
5
|
-
const cb = useRtCb(listener);
|
|
6
|
-
const remove = useCallback(() => {
|
|
7
|
-
window.removeEventListener(type, cb);
|
|
8
|
-
}, []);
|
|
9
|
-
useRtEffect(() => {
|
|
10
|
-
window.addEventListener(type, cb, options);
|
|
11
|
-
return () => {
|
|
12
|
-
window.removeEventListener(type, cb);
|
|
13
|
-
};
|
|
14
|
-
});
|
|
15
|
-
return remove;
|
|
16
|
-
};
|
|
17
|
-
export default useListener;
|
package/es/useParamsState.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
|
-
import useSafeState from './useSafeState';
|
|
3
|
-
export default function useParamsState(defData) {
|
|
4
|
-
const [data, setData] = useSafeState(defData);
|
|
5
|
-
const update = useCallback((params) => {
|
|
6
|
-
setData((oldVal) => (Object.assign(Object.assign({}, (oldVal || {})), params)));
|
|
7
|
-
}, []);
|
|
8
|
-
return [data, update, setData];
|
|
9
|
-
}
|
package/es/useRtEffect.js
DELETED
package/es/useRtState.js
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
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
|
-
import { useState, useEffect } from 'react';
|
|
9
|
-
import useRtCb from './useRtCb';
|
|
10
|
-
const defEqual = (a, b) => a === b;
|
|
11
|
-
export default function useRtState(value, onChange, opts) {
|
|
12
|
-
const { isEqual = defEqual } = opts || {};
|
|
13
|
-
const [val, setVal] = useState(value);
|
|
14
|
-
const updateValue = useRtCb((value) => {
|
|
15
|
-
setVal(value);
|
|
16
|
-
onChange === null || onChange === void 0 ? void 0 : onChange(value);
|
|
17
|
-
}, []);
|
|
18
|
-
const [oldValue, setOldValue] = useState(value);
|
|
19
|
-
useEffect(() => {
|
|
20
|
-
if (!isEqual(value, oldValue)) {
|
|
21
|
-
setOldValue(value);
|
|
22
|
-
if (!isEqual(value, val)) {
|
|
23
|
-
updateValue(value);
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
}, [value, oldValue, val]);
|
|
27
|
-
return [val, setVal];
|
|
28
|
-
}
|
package/es/useSafeCb.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { useCallback } from 'react';
|
|
2
|
-
import useIsUnmount from './useIsUnmount';
|
|
3
|
-
const useSafeCb = (cb, deps) => {
|
|
4
|
-
const isUnmount = useIsUnmount();
|
|
5
|
-
return useCallback((...arg) => {
|
|
6
|
-
if (!isUnmount()) {
|
|
7
|
-
return cb(...arg);
|
|
8
|
-
}
|
|
9
|
-
}, deps || []);
|
|
10
|
-
};
|
|
11
|
-
export default useSafeCb;
|
package/es/useSafeState.js
DELETED
package/es/useUpdateEffect.js
DELETED
package/lib/useListener.js
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
var react_1 = require("react");
|
|
7
|
-
var useRtCb_1 = __importDefault(require("./useRtCb"));
|
|
8
|
-
var useRtEffect_1 = __importDefault(require("./useRtEffect"));
|
|
9
|
-
var useListener = function (type, listener, options) {
|
|
10
|
-
var cb = (0, useRtCb_1.default)(listener);
|
|
11
|
-
var remove = (0, react_1.useCallback)(function () {
|
|
12
|
-
window.removeEventListener(type, cb);
|
|
13
|
-
}, []);
|
|
14
|
-
(0, useRtEffect_1.default)(function () {
|
|
15
|
-
window.addEventListener(type, cb, options);
|
|
16
|
-
return function () {
|
|
17
|
-
window.removeEventListener(type, cb);
|
|
18
|
-
};
|
|
19
|
-
});
|
|
20
|
-
return remove;
|
|
21
|
-
};
|
|
22
|
-
exports.default = useListener;
|
package/lib/useParamsState.js
DELETED
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
var react_1 = require("react");
|
|
18
|
-
var useSafeState_1 = __importDefault(require("./useSafeState"));
|
|
19
|
-
function useParamsState(defData) {
|
|
20
|
-
var _a = (0, useSafeState_1.default)(defData), data = _a[0], setData = _a[1];
|
|
21
|
-
var update = (0, react_1.useCallback)(function (params) {
|
|
22
|
-
setData(function (oldVal) { return (__assign(__assign({}, (oldVal || {})), params)); });
|
|
23
|
-
}, []);
|
|
24
|
-
return [data, update, setData];
|
|
25
|
-
}
|
|
26
|
-
exports.default = useParamsState;
|