From f739c7fae129e143acf3765c0e768000f04c2b8e Mon Sep 17 00:00:00 2001 From: Svilen Ivanov <92510182+svilen-ivanov-kubit@users.noreply.github.com> Date: Thu, 30 Oct 2025 16:04:40 +0200 Subject: [PATCH 1/3] Avoid modifying node.measured object, create copy instead When working with immutable `node` data, modifying in-place `node.measured` properties is not allowed. Since we perform a shallow copy, we need to create a new `measured` object to populate `width` and `height` --- packages/react/src/utils/changes.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/react/src/utils/changes.ts b/packages/react/src/utils/changes.ts index f2d9bdd3..422832f2 100644 --- a/packages/react/src/utils/changes.ts +++ b/packages/react/src/utils/changes.ts @@ -125,7 +125,7 @@ function applyChange(change: any, element: any): any { case 'dimensions': { if (typeof change.dimensions !== 'undefined') { - element.measured ??= {}; + element.measured = {}; element.measured.width = change.dimensions.width; element.measured.height = change.dimensions.height; From f858cbb404ccb3ddcaf55563aec73f85e44d58bf Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 25 Nov 2025 12:34:49 +0100 Subject: [PATCH 2/3] chore(apply-changes): cleanup) --- packages/react/src/utils/changes.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/react/src/utils/changes.ts b/packages/react/src/utils/changes.ts index 422832f2..de05236a 100644 --- a/packages/react/src/utils/changes.ts +++ b/packages/react/src/utils/changes.ts @@ -125,9 +125,9 @@ function applyChange(change: any, element: any): any { case 'dimensions': { if (typeof change.dimensions !== 'undefined') { - element.measured = {}; - element.measured.width = change.dimensions.width; - element.measured.height = change.dimensions.height; + element.measured = { + ...change.dimensions, + }; if (change.setAttributes) { if (change.setAttributes === true || change.setAttributes === 'width') { From 38dbf41c464550cc803b946a4ad1f46982385a03 Mon Sep 17 00:00:00 2001 From: moklick Date: Tue, 25 Nov 2025 12:35:50 +0100 Subject: [PATCH 3/3] chore(changesets): add --- .changeset/dry-seahorses-deliver.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/dry-seahorses-deliver.md diff --git a/.changeset/dry-seahorses-deliver.md b/.changeset/dry-seahorses-deliver.md new file mode 100644 index 00000000..1125ea3e --- /dev/null +++ b/.changeset/dry-seahorses-deliver.md @@ -0,0 +1,5 @@ +--- +'@xyflow/react': patch +--- + +Always create a new measured object in apply changes.