From 75b1a6944daa061e03ae4bd872eb89034618ff81 Mon Sep 17 00:00:00 2001 From: braks <78412429+bcakmakoglu@users.noreply.github.com> Date: Mon, 25 Sep 2023 13:32:14 +0200 Subject: [PATCH] fix(node-resizer): wait for node to be initialised before enforcing min/max size --- packages/node-resizer/src/NodeResizer.vue | 30 ++++++++++++----------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/packages/node-resizer/src/NodeResizer.vue b/packages/node-resizer/src/NodeResizer.vue index 810ad91c..61d8d0d9 100644 --- a/packages/node-resizer/src/NodeResizer.vue +++ b/packages/node-resizer/src/NodeResizer.vue @@ -27,41 +27,43 @@ const contextNodeId = inject(NodeIdInjection, null) const id = computed(() => (typeof props.nodeId === 'string' ? props.nodeId : contextNodeId)) -watch( - [() => props.minWidth, () => props.minHeight, () => props.maxWidth, () => props.maxHeight], - ([minWidth, minHeight, maxWidth, maxHeight]) => { - const node = findNode(id.value) +const node = computed(() => findNode(id.value)) - if (node) { +watch( + [() => props.minWidth, () => props.minHeight, () => props.maxWidth, () => props.maxHeight, () => node.value?.initialized], + ([minWidth, minHeight, maxWidth, maxHeight, isInitialized]) => { + const n = node.value + + if (n && isInitialized) { const dimensionChange: NodeDimensionChange = { - id: node.id, + id: n.id, type: 'dimensions', updateStyle: true, dimensions: { - width: node.dimensions.width, - height: node.dimensions.height, + width: n.dimensions.width, + height: n.dimensions.height, }, } - if (minWidth && node.dimensions.width < minWidth) { + if (minWidth && n.dimensions.width < minWidth) { dimensionChange.dimensions!.width = minWidth } - if (minHeight && node.dimensions.height < minHeight) { + if (minHeight && n.dimensions.height < minHeight) { dimensionChange.dimensions!.height = minHeight } - if (maxWidth && node.dimensions.width > maxWidth) { + if (maxWidth && n.dimensions.width > maxWidth) { dimensionChange.dimensions!.width = maxWidth } - if (maxHeight && node.dimensions.height > maxHeight) { + if (maxHeight && n.dimensions.height > maxHeight) { dimensionChange.dimensions!.height = maxHeight } if ( - dimensionChange.dimensions!.width !== node.dimensions.width || - dimensionChange.dimensions!.height !== node.dimensions.height + dimensionChange.dimensions!.width !== n.dimensions.width || + dimensionChange.dimensions!.height !== n.dimensions.height ) { triggerEmits.nodesChange([dimensionChange]) }