Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,21 @@ index 5ba7a95bc7a29605f32aa010a14224ad87bf6589..699fc222db43d83ac2e3218c0aa5c9db
} else if (ref !== null && ref !== void 0) {
ref.current = value;
}
@@ -47,7 +47,12 @@ function setRef(ref, value) {
}
function composeRefs(...refs) {
- return (node) => {
- let hasCleanup = false;
+ let previousNode = void 0;
+ return (node) => {
+ if (node === previousNode) {
+ return;
+ }
+ previousNode = node;
+ let hasCleanup = false;
const cleanups = refs.map((ref) => {
const cleanup = setRef(ref, node);
if (!hasCleanup && typeof cleanup == "function") {
diff --git a/dist/index.mjs b/dist/index.mjs
index 7dd9172a7228d70a25f708d0fd577cfc69ea15a8..d8a2f56ecb5951410e1a5748d9a8db56eb966351 100644
--- a/dist/index.mjs
Expand All @@ -28,3 +43,18 @@ index 7dd9172a7228d70a25f708d0fd577cfc69ea15a8..d8a2f56ecb5951410e1a5748d9a8db56
} else if (ref !== null && ref !== void 0) {
ref.current = value;
}
@@ -10,7 +10,12 @@ function setRef(ref, value) {
}
function composeRefs(...refs) {
- return (node) => {
- let hasCleanup = false;
+ let previousNode = void 0;
+ return (node) => {
+ if (node === previousNode) {
+ return;
+ }
+ previousNode = node;
+ let hasCleanup = false;
const cleanups = refs.map((ref) => {
const cleanup = setRef(ref, node);
if (!hasCleanup && typeof cleanup == "function") {
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@sonarsource/echoes-react",
"version": "2.0.1",
"version": "2.0.2",
"type": "module",
"exports": {
".": "./dist/index.js",
Expand Down
4 changes: 2 additions & 2 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3525,14 +3525,14 @@ __metadata:

"@radix-ui/react-compose-refs@patch:@radix-ui/react-compose-refs@npm%3A1.1.2#./.yarn/patches/@radix-ui-react-compose-refs-npm-1.1.2-f0371f8267.patch::locator=%40sonarsource%2Fechoes-react%40workspace%3A.":
version: 1.1.2
resolution: "@radix-ui/react-compose-refs@patch:@radix-ui/react-compose-refs@npm%3A1.1.2#./.yarn/patches/@radix-ui-react-compose-refs-npm-1.1.2-f0371f8267.patch::version=1.1.2&hash=dc9d5d&locator=%40sonarsource%2Fechoes-react%40workspace%3A."
resolution: "@radix-ui/react-compose-refs@patch:@radix-ui/react-compose-refs@npm%3A1.1.2#./.yarn/patches/@radix-ui-react-compose-refs-npm-1.1.2-f0371f8267.patch::version=1.1.2&hash=4040ab&locator=%40sonarsource%2Fechoes-react%40workspace%3A."
peerDependencies:
"@types/react": "*"
react: ^16.8 || ^17.0 || ^18.0 || ^19.0 || ^19.0.0-rc
peerDependenciesMeta:
"@types/react":
optional: true
checksum: 10/7bb2f8147fa61a50ab9b692dcecbd265c1e4452f266916378befb1d3d7a7195f8dbd2f0b7fdd48ae664252bfeac83d760f128ca207eff4266dd1313badd2c4b2
checksum: 10/b2681497344808bf042d7ab7165e28ab24b5a84a4b8e34ecfa636960107ac262dfd625fa223210bf06ad5d4a7dbfcb830bbdab02ea22c46120ec2fd7556cade4
languageName: node
linkType: hard

Expand Down
Loading