@radix-ui/react-use-callback-ref 1.1.4 → 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 +5 -3
- package/dist/index.d.ts +5 -3
- package/dist/index.js +11 -3
- package/dist/index.js.map +2 -2
- package/dist/index.mjs +11 -3
- package/dist/index.mjs.map +2 -2
- package/package.json +8 -5
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
|
|
3
|
-
* prop or avoid re-executing effects when passed as
|
|
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
|
|
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
|
|
3
|
-
* prop or avoid re-executing effects when passed as
|
|
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
|
|
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
|
-
|
|
43
|
-
|
|
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", "
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;;;
|
|
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
|
-
|
|
9
|
-
|
|
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");
|
package/dist/index.mjs.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/use-callback-ref.tsx"],
|
|
4
|
-
"sourcesContent": ["
|
|
5
|
-
"mappings": ";;;;
|
|
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
|
+
"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.
|
|
15
|
-
"@types/react-dom": "^19.
|
|
16
|
-
"react": "^19.
|
|
17
|
-
"react-dom": "^19.
|
|
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"
|