@radix-ui/react-use-callback-ref 1.1.3 → 1.1.5-rc.1791509415276

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/dist/index.d.mts CHANGED
@@ -1,7 +1,9 @@
1
+ type AnyFunction = (...args: any[]) => any;
1
2
  /**
2
- * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a
3
- * prop or avoid re-executing effects when passed as a dependency
3
+ * A custom hook that converts a callback to a ref to avoid triggering
4
+ * re-renders when passed as a prop or avoid re-executing effects when passed as
5
+ * a dependency.
4
6
  */
5
- declare function useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T;
7
+ declare function useCallbackRef<T extends AnyFunction>(callback: T | undefined): T;
6
8
 
7
9
  export { useCallbackRef };
package/dist/index.d.ts CHANGED
@@ -1,7 +1,9 @@
1
+ type AnyFunction = (...args: any[]) => any;
1
2
  /**
2
- * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a
3
- * prop or avoid re-executing effects when passed as a dependency
3
+ * A custom hook that converts a callback to a ref to avoid triggering
4
+ * re-renders when passed as a prop or avoid re-executing effects when passed as
5
+ * a dependency.
4
6
  */
5
- declare function useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T;
7
+ declare function useCallbackRef<T extends AnyFunction>(callback: T | undefined): T;
6
8
 
7
9
  export { useCallbackRef };
package/dist/index.js CHANGED
@@ -36,12 +36,20 @@ __export(index_exports, {
36
36
  module.exports = __toCommonJS(index_exports);
37
37
 
38
38
  // src/use-callback-ref.tsx
39
+ var import_react_use_layout_effect = require("@radix-ui/react-use-layout-effect");
39
40
  var React = __toESM(require("react"));
41
+ var useReactInsertionEffect = React[" useInsertionEffect ".trim().toString()];
40
42
  function useCallbackRef(callback) {
41
43
  const callbackRef = React.useRef(callback);
42
- React.useEffect(() => {
43
- callbackRef.current = callback;
44
- });
44
+ if (typeof useReactInsertionEffect === "function") {
45
+ useReactInsertionEffect(() => {
46
+ callbackRef.current = callback;
47
+ });
48
+ } else {
49
+ (0, import_react_use_layout_effect.useLayoutEffect)(() => {
50
+ callbackRef.current = callback;
51
+ });
52
+ }
45
53
  return React.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);
46
54
  }
47
55
  __name(useCallbackRef, "useCallbackRef");
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/index.ts", "../src/use-callback-ref.tsx"],
4
- "sourcesContent": ["export { useCallbackRef } from './use-callback-ref';\n", "import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACAA,YAAuB;AAMvB,SAAS,eAAkD,UAA4B;AACrF,QAAM,cAAoB,aAAO,QAAQ;AAEzC,EAAM,gBAAU,MAAM;AACpB,gBAAY,UAAU;AAAA,EACxB,CAAC;AAGD,SAAa,cAAQ,OAAO,IAAI,SAAS,YAAY,UAAU,GAAG,IAAI,IAAS,CAAC,CAAC;AACnF;AATS;",
4
+ "sourcesContent": ["export { useCallbackRef } from './use-callback-ref';\n", "/* eslint-disable react-hooks/rules-of-hooks */\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport * as React from 'react';\n\ntype AnyFunction = (...args: any[]) => any;\n\n// See https://github.com/webpack/webpack/issues/14814\nconst useReactInsertionEffect = (React as any)[' useInsertionEffect '.trim().toString()];\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering\n * re-renders when passed as a prop or avoid re-executing effects when passed as\n * a dependency.\n */\nexport function useCallbackRef<T extends AnyFunction>(callback: T | undefined): T {\n const callbackRef = React.useRef<AnyFunction | undefined>(callback);\n\n // See https://github.com/webpack/webpack/issues/14814\n if (typeof useReactInsertionEffect === 'function') {\n useReactInsertionEffect(() => {\n callbackRef.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n }\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACCA,qCAAgC;AAChC,YAAuB;AAKvB,IAAM,0BAA2B,MAAc,uBAAuB,KAAK,EAAE,SAAS,CAAC;AAOhF,SAAS,eAAsC,UAA4B;AAChF,QAAM,cAAoB,aAAgC,QAAQ;AAGlE,MAAI,OAAO,4BAA4B,YAAY;AACjD,4BAAwB,MAAM;AAC5B,kBAAY,UAAU;AAAA,IACxB,CAAC;AAAA,EACH,OAAO;AACL,wDAAgB,MAAM;AACpB,kBAAY,UAAU;AAAA,IACxB,CAAC;AAAA,EACH;AAGA,SAAa,cAAQ,OAAO,IAAI,SAAS,YAAY,UAAU,GAAG,IAAI,IAAS,CAAC,CAAC;AACnF;AAhBgB;",
6
6
  "names": []
7
7
  }
package/dist/index.mjs CHANGED
@@ -2,12 +2,20 @@ var __defProp = Object.defineProperty;
2
2
  var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
3
3
 
4
4
  // src/use-callback-ref.tsx
5
+ import { useLayoutEffect } from "@radix-ui/react-use-layout-effect";
5
6
  import * as React from "react";
7
+ var useReactInsertionEffect = React[" useInsertionEffect ".trim().toString()];
6
8
  function useCallbackRef(callback) {
7
9
  const callbackRef = React.useRef(callback);
8
- React.useEffect(() => {
9
- callbackRef.current = callback;
10
- });
10
+ if (typeof useReactInsertionEffect === "function") {
11
+ useReactInsertionEffect(() => {
12
+ callbackRef.current = callback;
13
+ });
14
+ } else {
15
+ useLayoutEffect(() => {
16
+ callbackRef.current = callback;
17
+ });
18
+ }
11
19
  return React.useMemo(() => ((...args) => callbackRef.current?.(...args)), []);
12
20
  }
13
21
  __name(useCallbackRef, "useCallbackRef");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../src/use-callback-ref.tsx"],
4
- "sourcesContent": ["import * as React from 'react';\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering re-renders when passed as a\n * prop or avoid re-executing effects when passed as a dependency\n */\nfunction useCallbackRef<T extends (...args: any[]) => any>(callback: T | undefined): T {\n const callbackRef = React.useRef(callback);\n\n React.useEffect(() => {\n callbackRef.current = callback;\n });\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n\nexport { useCallbackRef };\n"],
5
- "mappings": ";;;;AAAA,YAAY,WAAW;AAMvB,SAAS,eAAkD,UAA4B;AACrF,QAAM,cAAoB,aAAO,QAAQ;AAEzC,EAAM,gBAAU,MAAM;AACpB,gBAAY,UAAU;AAAA,EACxB,CAAC;AAGD,SAAa,cAAQ,OAAO,IAAI,SAAS,YAAY,UAAU,GAAG,IAAI,IAAS,CAAC,CAAC;AACnF;AATS;",
4
+ "sourcesContent": ["/* eslint-disable react-hooks/rules-of-hooks */\nimport { useLayoutEffect } from '@radix-ui/react-use-layout-effect';\nimport * as React from 'react';\n\ntype AnyFunction = (...args: any[]) => any;\n\n// See https://github.com/webpack/webpack/issues/14814\nconst useReactInsertionEffect = (React as any)[' useInsertionEffect '.trim().toString()];\n\n/**\n * A custom hook that converts a callback to a ref to avoid triggering\n * re-renders when passed as a prop or avoid re-executing effects when passed as\n * a dependency.\n */\nexport function useCallbackRef<T extends AnyFunction>(callback: T | undefined): T {\n const callbackRef = React.useRef<AnyFunction | undefined>(callback);\n\n // See https://github.com/webpack/webpack/issues/14814\n if (typeof useReactInsertionEffect === 'function') {\n useReactInsertionEffect(() => {\n callbackRef.current = callback;\n });\n } else {\n useLayoutEffect(() => {\n callbackRef.current = callback;\n });\n }\n\n // https://github.com/facebook/react/issues/19240\n return React.useMemo(() => ((...args) => callbackRef.current?.(...args)) as T, []);\n}\n"],
5
+ "mappings": ";;;;AACA,SAAS,uBAAuB;AAChC,YAAY,WAAW;AAKvB,IAAM,0BAA2B,MAAc,uBAAuB,KAAK,EAAE,SAAS,CAAC;AAOhF,SAAS,eAAsC,UAA4B;AAChF,QAAM,cAAoB,aAAgC,QAAQ;AAGlE,MAAI,OAAO,4BAA4B,YAAY;AACjD,4BAAwB,MAAM;AAC5B,kBAAY,UAAU;AAAA,IACxB,CAAC;AAAA,EACH,OAAO;AACL,oBAAgB,MAAM;AACpB,kBAAY,UAAU;AAAA,IACxB,CAAC;AAAA,EACH;AAGA,SAAa,cAAQ,OAAO,IAAI,SAAS,YAAY,UAAU,GAAG,IAAI,IAAS,CAAC,CAAC;AACnF;AAhBgB;",
6
6
  "names": []
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@radix-ui/react-use-callback-ref",
3
- "version": "1.1.3",
3
+ "version": "1.1.5-rc.1791509415276",
4
4
  "license": "MIT",
5
5
  "source": "./src/index.ts",
6
6
  "main": "./dist/index.js",
@@ -10,11 +10,14 @@
10
10
  "README.md"
11
11
  ],
12
12
  "sideEffects": false,
13
+ "dependencies": {
14
+ "@radix-ui/react-use-layout-effect": "1.1.4"
15
+ },
13
16
  "devDependencies": {
14
- "@types/react": "^19.2.17",
15
- "@types/react-dom": "^19.2.3",
16
- "react": "^19.2.7",
17
- "react-dom": "^19.2.7",
17
+ "@types/react": "^19.3.0",
18
+ "@types/react-dom": "^19.3.0",
19
+ "react": "^19.3.0",
20
+ "react-dom": "^19.3.0",
18
21
  "typescript": "^5.9.3",
19
22
  "@repo/builder": "0.0.0",
20
23
  "@repo/typescript-config": "0.0.0"