@rc-component/util 1.9.0 → 1.10.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/README.md CHANGED
@@ -13,8 +13,8 @@ Common Utils For React Component.
13
13
  [npm-url]: http://npmjs.org/package/rc-util
14
14
  [travis-image]: https://img.shields.io/travis/react-component/util/master?style=flat-square
15
15
  [travis-url]: https://travis-ci.com/react-component/util
16
- [github-actions-image]: https://github.com/react-component/util/workflows/CI/badge.svg
17
- [github-actions-url]: https://github.com/react-component/util/actions
16
+ [github-actions-image]: https://github.com/react-component/util/actions/workflows/react-component-ci.yml/badge.svg
17
+ [github-actions-url]: https://github.com/react-component/util/actions/workflows/react-component-ci.yml
18
18
  [codecov-image]: https://img.shields.io/codecov/c/github/react-component/util/master.svg?style=flat-square
19
19
  [codecov-url]: https://app.codecov.io/gh/react-component/util
20
20
  [david-url]: https://david-dm.org/react-component/util
@@ -49,8 +49,8 @@ ${heightStyle}
49
49
  document.body.appendChild(measureEle);
50
50
 
51
51
  // Measure. Get fallback style if provided
52
- const scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
53
- const scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
52
+ const scrollWidth = ele && fallbackWidth && !Number.isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
53
+ const scrollHeight = ele && fallbackHeight && !Number.isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
54
54
 
55
55
  // Clean up
56
56
  document.body.removeChild(measureEle);
@@ -1,2 +1,2 @@
1
- declare function useEvent<T extends ((...args: any[]) => any) | undefined>(callback: T): undefined extends T ? (...args: Parameters<NonNullable<T>>) => ReturnType<NonNullable<T>> | undefined : T;
1
+ declare const useEvent: <T extends (...args: any[]) => any>(callback: T) => undefined extends T ? (...args: Parameters<NonNullable<T>>) => ReturnType<NonNullable<T>> | undefined : T;
2
2
  export default useEvent;
@@ -1,10 +1,8 @@
1
- /* eslint-disable @typescript-eslint/ban-types */
2
- /* eslint-disable react-hooks/exhaustive-deps */
3
1
  import * as React from 'react';
4
- function useEvent(callback) {
2
+ const useEvent = callback => {
5
3
  const fnRef = React.useRef(callback);
6
4
  fnRef.current = callback;
7
5
  const memoFn = React.useCallback((...args) => fnRef.current?.(...args), []);
8
6
  return memoFn;
9
- }
7
+ };
10
8
  export default useEvent;
package/es/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export { default as set, merge, mergeWith } from './utils/set';
7
7
  export { default as warning, noteOnce } from './warning';
8
8
  export { default as omit } from './omit';
9
9
  export { default as toArray } from './Children/toArray';
10
+ export { default as mergeProps } from './mergeProps';
package/es/index.js CHANGED
@@ -6,4 +6,5 @@ export { default as get } from "./utils/get";
6
6
  export { default as set, merge, mergeWith } from "./utils/set";
7
7
  export { default as warning, noteOnce } from "./warning";
8
8
  export { default as omit } from "./omit";
9
- export { default as toArray } from "./Children/toArray";
9
+ export { default as toArray } from "./Children/toArray";
10
+ export { default as mergeProps } from "./mergeProps";
package/es/isMobile.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: () => boolean;
2
- export default _default;
1
+ declare const getIsMobile: () => boolean;
2
+ export default getIsMobile;
package/es/isMobile.js CHANGED
@@ -1,8 +1,9 @@
1
1
  import isMobile from 'is-mobile';
2
2
  let cached;
3
- export default (() => {
3
+ const getIsMobile = () => {
4
4
  if (typeof cached === 'undefined') {
5
5
  cached = isMobile();
6
6
  }
7
7
  return cached;
8
- });
8
+ };
9
+ export default getIsMobile;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Merges multiple props objects into one. Unlike `Object.assign()` or `{ ...a, ...b }`, it skips
3
+ * properties whose value is explicitly set to `undefined`.
4
+ */
5
+ declare function mergeProps<A, B>(a: A, b: B): B & A;
6
+ declare function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
7
+ declare function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
8
+ export default mergeProps;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Merges multiple props objects into one. Unlike `Object.assign()` or `{ ...a, ...b }`, it skips
3
+ * properties whose value is explicitly set to `undefined`.
4
+ */
5
+
6
+ function mergeProps(...items) {
7
+ const ret = {};
8
+ for (const item of items) {
9
+ if (item) {
10
+ for (const key of Object.keys(item)) {
11
+ if (item[key] !== undefined) {
12
+ ret[key] = item[key];
13
+ }
14
+ }
15
+ }
16
+ }
17
+ return ret;
18
+ }
19
+ export default mergeProps;
@@ -57,8 +57,8 @@ ${heightStyle}
57
57
  document.body.appendChild(measureEle);
58
58
 
59
59
  // Measure. Get fallback style if provided
60
- const scrollWidth = ele && fallbackWidth && !isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
61
- const scrollHeight = ele && fallbackHeight && !isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
60
+ const scrollWidth = ele && fallbackWidth && !Number.isNaN(fallbackWidth) ? fallbackWidth : measureEle.offsetWidth - measureEle.clientWidth;
61
+ const scrollHeight = ele && fallbackHeight && !Number.isNaN(fallbackHeight) ? fallbackHeight : measureEle.offsetHeight - measureEle.clientHeight;
62
62
 
63
63
  // Clean up
64
64
  document.body.removeChild(measureEle);
@@ -1,2 +1,2 @@
1
- declare function useEvent<T extends ((...args: any[]) => any) | undefined>(callback: T): undefined extends T ? (...args: Parameters<NonNullable<T>>) => ReturnType<NonNullable<T>> | undefined : T;
1
+ declare const useEvent: <T extends (...args: any[]) => any>(callback: T) => undefined extends T ? (...args: Parameters<NonNullable<T>>) => ReturnType<NonNullable<T>> | undefined : T;
2
2
  export default useEvent;
@@ -7,13 +7,10 @@ exports.default = void 0;
7
7
  var React = _interopRequireWildcard(require("react"));
8
8
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
9
9
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
10
- /* eslint-disable @typescript-eslint/ban-types */
11
- /* eslint-disable react-hooks/exhaustive-deps */
12
-
13
- function useEvent(callback) {
10
+ const useEvent = callback => {
14
11
  const fnRef = React.useRef(callback);
15
12
  fnRef.current = callback;
16
13
  const memoFn = React.useCallback((...args) => fnRef.current?.(...args), []);
17
14
  return memoFn;
18
- }
15
+ };
19
16
  var _default = exports.default = useEvent;
package/lib/index.d.ts CHANGED
@@ -7,3 +7,4 @@ export { default as set, merge, mergeWith } from './utils/set';
7
7
  export { default as warning, noteOnce } from './warning';
8
8
  export { default as omit } from './omit';
9
9
  export { default as toArray } from './Children/toArray';
10
+ export { default as mergeProps } from './mergeProps';
package/lib/index.js CHANGED
@@ -15,6 +15,12 @@ Object.defineProperty(exports, "merge", {
15
15
  return _set.merge;
16
16
  }
17
17
  });
18
+ Object.defineProperty(exports, "mergeProps", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _mergeProps.default;
22
+ }
23
+ });
18
24
  Object.defineProperty(exports, "mergeWith", {
19
25
  enumerable: true,
20
26
  get: function () {
@@ -96,6 +102,7 @@ var _set = _interopRequireWildcard(require("./utils/set"));
96
102
  var _warning = _interopRequireWildcard(require("./warning"));
97
103
  var _omit = _interopRequireDefault(require("./omit"));
98
104
  var _toArray = _interopRequireDefault(require("./Children/toArray"));
105
+ var _mergeProps = _interopRequireDefault(require("./mergeProps"));
99
106
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
100
107
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
101
108
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
package/lib/isMobile.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- declare const _default: () => boolean;
2
- export default _default;
1
+ declare const getIsMobile: () => boolean;
2
+ export default getIsMobile;
package/lib/isMobile.js CHANGED
@@ -7,10 +7,10 @@ exports.default = void 0;
7
7
  var _isMobile = _interopRequireDefault(require("is-mobile"));
8
8
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
9
  let cached;
10
- var _default = () => {
10
+ const getIsMobile = () => {
11
11
  if (typeof cached === 'undefined') {
12
12
  cached = (0, _isMobile.default)();
13
13
  }
14
14
  return cached;
15
15
  };
16
- exports.default = _default;
16
+ var _default = exports.default = getIsMobile;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Merges multiple props objects into one. Unlike `Object.assign()` or `{ ...a, ...b }`, it skips
3
+ * properties whose value is explicitly set to `undefined`.
4
+ */
5
+ declare function mergeProps<A, B>(a: A, b: B): B & A;
6
+ declare function mergeProps<A, B, C>(a: A, b: B, c: C): C & B & A;
7
+ declare function mergeProps<A, B, C, D>(a: A, b: B, c: C, d: D): D & C & B & A;
8
+ export default mergeProps;
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ /**
8
+ * Merges multiple props objects into one. Unlike `Object.assign()` or `{ ...a, ...b }`, it skips
9
+ * properties whose value is explicitly set to `undefined`.
10
+ */
11
+
12
+ function mergeProps(...items) {
13
+ const ret = {};
14
+ for (const item of items) {
15
+ if (item) {
16
+ for (const key of Object.keys(item)) {
17
+ if (item[key] !== undefined) {
18
+ ret[key] = item[key];
19
+ }
20
+ }
21
+ }
22
+ }
23
+ return ret;
24
+ }
25
+ var _default = exports.default = mergeProps;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rc-component/util",
3
- "version": "1.9.0",
3
+ "version": "1.10.0",
4
4
  "description": "Common Utils For React Component",
5
5
  "keywords": [
6
6
  "react",
@@ -46,7 +46,7 @@
46
46
  "@rc-component/np": "^1.0.3",
47
47
  "@testing-library/react": "^16.0.0",
48
48
  "@types/jest": "^30.0.0",
49
- "@types/node": "^24.6.1",
49
+ "@types/node": "^25.0.3",
50
50
  "@types/react": "^19.2.7",
51
51
  "@types/react-dom": "^19.2.2",
52
52
  "@types/react-is": "^19.0.0",
@@ -59,9 +59,9 @@
59
59
  "eslint-plugin-jest": "^29.0.1",
60
60
  "eslint-plugin-unicorn": "^56.0.1",
61
61
  "father": "^4.1.3",
62
- "glob": "^11.0.3",
62
+ "glob": "^13.0.0",
63
63
  "husky": "^9.1.6",
64
- "lint-staged": "^15.1.0",
64
+ "lint-staged": "^16.2.7",
65
65
  "prettier": "^3.3.2",
66
66
  "rc-test": "^7.0.14",
67
67
  "react": "^18.0.0",