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); const thisNode = getNodes().find((n) => n.id === id);
if (!thisNode) return; if (!thisNode) return;
const nodeHeight = getNodeDimension(thisNode, "height");
const contentHeight = nodeHeight - trackedSettingsHeight;
const newSize = calculateAspectFitSize( const newSize = calculateAspectFitSize(
dims.width / dims.height, dims.width / dims.height,
getNodeDimension(thisNode, "width"), getNodeDimension(thisNode, "width"),
getNodeDimension(thisNode, "height"), contentHeight,
fullBleed fullBleed
); );
const finalHeight = newSize.height + trackedSettingsHeight;
setNodes((nds) => setNodes((nds) =>
nds.map((n) => { nds.map((n) => {
if (n.id === id || (n.selected && n.id !== id)) { if (n.id === id || (n.selected && n.id !== id)) {
return applyNodeDimensions(n, newSize.width, newSize.height); return applyNodeDimensions(n, newSize.width, finalHeight);
} }
return n; return n;
}) })
); );
}, },
[aspectFitMedia, id, fullBleed, getNodes, setNodes] [aspectFitMedia, id, fullBleed, getNodes, setNodes, trackedSettingsHeight]
); );
const hasExpandedSettings = settingsExpanded && settingsPanel; const hasExpandedSettings = settingsExpanded && settingsPanel;

Loading…
Cancel
Save