@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 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 };
@@ -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.11",
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": "e03c9c40bc86083ba49fe9f372375a50223191cc",
30
+ "gitHead": "731ccef207bc8ed3120229b2041a42ee9cb5dd7f",
31
31
  "dependencies": {
32
- "@cclr/front": "0.1.11",
33
- "@cclr/lang": "0.1.11",
34
- "@cclr/model": "0.1.11",
35
- "@cclr/utils": "0.1.11",
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",