@cclr/react 0.1.11 → 0.1.13
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/lib/cjs/index.js +52 -1
- package/lib/esm/index.js +51 -2
- package/lib/type/index.d.ts +17 -2
- package/package.json +6 -6
package/lib/cjs/index.js
CHANGED
|
@@ -100,7 +100,30 @@ function useCallbackRef(fn, deps) {
|
|
|
100
100
|
}
|
|
101
101
|
|
|
102
102
|
Function.prototype.call.bind(Object.prototype.hasOwnProperty);
|
|
103
|
-
Function.prototype.call.bind(Object.prototype.toString)
|
|
103
|
+
var t = Function.prototype.call.bind(Object.prototype.toString),
|
|
104
|
+
r = {
|
|
105
|
+
boolean: "boolean",
|
|
106
|
+
undefined: "undefined",
|
|
107
|
+
number: "number",
|
|
108
|
+
string: "string",
|
|
109
|
+
symbol: "symbol",
|
|
110
|
+
null: "null",
|
|
111
|
+
"[object Object]": "object",
|
|
112
|
+
"[object Function]": "function",
|
|
113
|
+
"[object RegExp]": "regexp",
|
|
114
|
+
"[object Array]": "array",
|
|
115
|
+
"[object Date]": "date",
|
|
116
|
+
"[object Error]": "error",
|
|
117
|
+
"[object Blob]": "blob",
|
|
118
|
+
"[object File]": "file",
|
|
119
|
+
"[object ArrayBuffer]": "arrayBuffer"
|
|
120
|
+
};
|
|
121
|
+
function e(n) {
|
|
122
|
+
return r[typeof n] || r[t(n)] || (n ? "object" : "null");
|
|
123
|
+
}
|
|
124
|
+
function y$1(n) {
|
|
125
|
+
return "function" === e(n);
|
|
126
|
+
}
|
|
104
127
|
|
|
105
128
|
function c(t, r) {
|
|
106
129
|
(null == r || r > t.length) && (r = t.length);
|
|
@@ -321,6 +344,32 @@ var useEventListenerMultipleRef = function useEventListenerMultipleRef(eventMap)
|
|
|
321
344
|
};
|
|
322
345
|
};
|
|
323
346
|
|
|
347
|
+
/**
|
|
348
|
+
* 仅执行一次
|
|
349
|
+
* @param fun 函数
|
|
350
|
+
* @returns
|
|
351
|
+
*/
|
|
352
|
+
var useOnceFun = function useOnceFun(fun) {
|
|
353
|
+
var ref = react.useRef(false);
|
|
354
|
+
if (ref.current) return;
|
|
355
|
+
ref.current = true;
|
|
356
|
+
fun();
|
|
357
|
+
};
|
|
358
|
+
|
|
359
|
+
/**
|
|
360
|
+
* 可以传函数的 useRef,
|
|
361
|
+
* 为了解决 useRef 初始化,调用运算复杂函数的问题
|
|
362
|
+
* @param initFun 初始化函数
|
|
363
|
+
* @returns
|
|
364
|
+
*/
|
|
365
|
+
var useRefPro = function useRefPro(initFun) {
|
|
366
|
+
var ref = react.useRef();
|
|
367
|
+
useOnceFun(function () {
|
|
368
|
+
ref.current = y$1(initFun) ? initFun() : initFun;
|
|
369
|
+
});
|
|
370
|
+
return ref;
|
|
371
|
+
};
|
|
372
|
+
|
|
324
373
|
/**
|
|
325
374
|
* 节流
|
|
326
375
|
* @param cb
|
|
@@ -352,5 +401,7 @@ exports.useCallbackRef = useCallbackRef;
|
|
|
352
401
|
exports.useDebounceFn = useDebounceFn;
|
|
353
402
|
exports.useEventListenerMultiple = useEventListenerMultiple;
|
|
354
403
|
exports.useEventListenerMultipleRef = useEventListenerMultipleRef;
|
|
404
|
+
exports.useOnceFun = useOnceFun;
|
|
405
|
+
exports.useRefPro = useRefPro;
|
|
355
406
|
exports.useThrottleFn = useThrottleFn;
|
|
356
407
|
exports.useUpdate = useUpdate;
|
package/lib/esm/index.js
CHANGED
|
@@ -98,7 +98,30 @@ function useCallbackRef(fn, deps) {
|
|
|
98
98
|
}
|
|
99
99
|
|
|
100
100
|
Function.prototype.call.bind(Object.prototype.hasOwnProperty);
|
|
101
|
-
Function.prototype.call.bind(Object.prototype.toString)
|
|
101
|
+
var t = Function.prototype.call.bind(Object.prototype.toString),
|
|
102
|
+
r = {
|
|
103
|
+
boolean: "boolean",
|
|
104
|
+
undefined: "undefined",
|
|
105
|
+
number: "number",
|
|
106
|
+
string: "string",
|
|
107
|
+
symbol: "symbol",
|
|
108
|
+
null: "null",
|
|
109
|
+
"[object Object]": "object",
|
|
110
|
+
"[object Function]": "function",
|
|
111
|
+
"[object RegExp]": "regexp",
|
|
112
|
+
"[object Array]": "array",
|
|
113
|
+
"[object Date]": "date",
|
|
114
|
+
"[object Error]": "error",
|
|
115
|
+
"[object Blob]": "blob",
|
|
116
|
+
"[object File]": "file",
|
|
117
|
+
"[object ArrayBuffer]": "arrayBuffer"
|
|
118
|
+
};
|
|
119
|
+
function e(n) {
|
|
120
|
+
return r[typeof n] || r[t(n)] || (n ? "object" : "null");
|
|
121
|
+
}
|
|
122
|
+
function y$1(n) {
|
|
123
|
+
return "function" === e(n);
|
|
124
|
+
}
|
|
102
125
|
|
|
103
126
|
function c(t, r) {
|
|
104
127
|
(null == r || r > t.length) && (r = t.length);
|
|
@@ -319,6 +342,32 @@ var useEventListenerMultipleRef = function useEventListenerMultipleRef(eventMap)
|
|
|
319
342
|
};
|
|
320
343
|
};
|
|
321
344
|
|
|
345
|
+
/**
|
|
346
|
+
* 仅执行一次
|
|
347
|
+
* @param fun 函数
|
|
348
|
+
* @returns
|
|
349
|
+
*/
|
|
350
|
+
var useOnceFun = function useOnceFun(fun) {
|
|
351
|
+
var ref = useRef(false);
|
|
352
|
+
if (ref.current) return;
|
|
353
|
+
ref.current = true;
|
|
354
|
+
fun();
|
|
355
|
+
};
|
|
356
|
+
|
|
357
|
+
/**
|
|
358
|
+
* 可以传函数的 useRef,
|
|
359
|
+
* 为了解决 useRef 初始化,调用运算复杂函数的问题
|
|
360
|
+
* @param initFun 初始化函数
|
|
361
|
+
* @returns
|
|
362
|
+
*/
|
|
363
|
+
var useRefPro = function useRefPro(initFun) {
|
|
364
|
+
var ref = useRef();
|
|
365
|
+
useOnceFun(function () {
|
|
366
|
+
ref.current = y$1(initFun) ? initFun() : initFun;
|
|
367
|
+
});
|
|
368
|
+
return ref;
|
|
369
|
+
};
|
|
370
|
+
|
|
322
371
|
/**
|
|
323
372
|
* 节流
|
|
324
373
|
* @param cb
|
|
@@ -345,4 +394,4 @@ var useUpdate = function useUpdate() {
|
|
|
345
394
|
};
|
|
346
395
|
};
|
|
347
396
|
|
|
348
|
-
export { createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useThrottleFn, useUpdate };
|
|
397
|
+
export { createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate };
|
package/lib/type/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
|
-
import { TPlainObject, TPlainFunction } from '@cclr/lang';
|
|
2
|
+
import { TPlainObject, TPlainFunction, TNoop } from '@cclr/lang';
|
|
3
3
|
import { TEventMap } from '@cclr/front';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -52,6 +52,21 @@ declare const useEventListenerMultipleRef: <T extends HTMLElement = HTMLElement>
|
|
|
52
52
|
ref: react.RefObject<T>;
|
|
53
53
|
};
|
|
54
54
|
|
|
55
|
+
/**
|
|
56
|
+
* 仅执行一次
|
|
57
|
+
* @param fun 函数
|
|
58
|
+
* @returns
|
|
59
|
+
*/
|
|
60
|
+
declare const useOnceFun: (fun: TNoop) => void;
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* 可以传函数的 useRef,
|
|
64
|
+
* 为了解决 useRef 初始化,调用运算复杂函数的问题
|
|
65
|
+
* @param initFun 初始化函数
|
|
66
|
+
* @returns
|
|
67
|
+
*/
|
|
68
|
+
declare const useRefPro: <T>(initFun: (() => T) | T) => react.MutableRefObject<T | undefined>;
|
|
69
|
+
|
|
55
70
|
/**
|
|
56
71
|
* 节流
|
|
57
72
|
* @param cb
|
|
@@ -81,4 +96,4 @@ interface ICommonUiProps {
|
|
|
81
96
|
children?: React.ReactNode;
|
|
82
97
|
}
|
|
83
98
|
|
|
84
|
-
export { type ICommonUiProps, createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useThrottleFn, useUpdate };
|
|
99
|
+
export { type ICommonUiProps, createCtx, useCallbackRef, useDebounceFn, useEventListenerMultiple, useEventListenerMultipleRef, useOnceFun, useRefPro, useThrottleFn, useUpdate };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cclr/react",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"description": "react 相关功能",
|
|
5
5
|
"author": "cclr <18843152354@163.com>",
|
|
6
6
|
"homepage": "",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"g:test": "vitest run",
|
|
28
28
|
"g:build": "ccm lib"
|
|
29
29
|
},
|
|
30
|
-
"gitHead": "
|
|
30
|
+
"gitHead": "731ccef207bc8ed3120229b2041a42ee9cb5dd7f",
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@cclr/front": "0.1.
|
|
33
|
-
"@cclr/lang": "0.1.
|
|
34
|
-
"@cclr/model": "0.1.
|
|
35
|
-
"@cclr/utils": "0.1.
|
|
32
|
+
"@cclr/front": "0.1.13",
|
|
33
|
+
"@cclr/lang": "0.1.12",
|
|
34
|
+
"@cclr/model": "0.1.12",
|
|
35
|
+
"@cclr/utils": "0.1.12",
|
|
36
36
|
"@testing-library/react-hooks": "^8.0.1",
|
|
37
37
|
"@types/react": "^18.3.12",
|
|
38
38
|
"react": "^18.3.1",
|