Browse Source

fix: subtract settings panel height in aspect-fit double-click resize

calculateAspectFitSize was receiving the total node height (content +
settings panel), producing incorrect aspect-fit dimensions when settings
were expanded. Now subtracts trackedSettingsHeight before calculating
and re-adds it when applying the final height.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
handoff-20260429-1057
shrimbly 4 months ago
parent
commit
3986fed9f7
  1. 11
      src/components/nodes/BaseNode.tsx

11
src/components/nodes/BaseNode.tsx

@ -173,23 +173,28 @@ export function BaseNode({
const thisNode = getNodes().find((n) => n.id === id);
if (!thisNode) return;
const nodeHeight = getNodeDimension(thisNode, "height");
const contentHeight = nodeHeight - trackedSettingsHeight;
const newSize = calculateAspectFitSize(
dims.width / dims.height,
getNodeDimension(thisNode, "width"),
getNodeDimension(thisNode, "height"),
contentHeight,
fullBleed
);
const finalHeight = newSize.height + trackedSettingsHeight;
setNodes((nds) =>
nds.map((n) => {
if (n.id === id || (n.selected && n.id !== id)) {
return applyNodeDimensions(n, newSize.width, newSize.height);
return applyNodeDimensions(n, newSize.width, finalHeight);
}
return n;
})
);
},
[aspectFitMedia, id, fullBleed, getNodes, setNodes]
[aspectFitMedia, id, fullBleed, getNodes, setNodes, trackedSettingsHeight]
);
const hasExpandedSettings = settingsExpanded && settingsPanel;

Loading…
Cancel
Save