diff --git a/app/graph/GraphView.tsx b/app/graph/GraphView.tsx index 6bd4f75..ac23708 100644 --- a/app/graph/GraphView.tsx +++ b/app/graph/GraphView.tsx @@ -209,7 +209,14 @@ function GraphView({ graph, selectedElement, setSelectedElement, runQuery, histo const handleRunQuery = async (q: string) => { await runQuery(q) - chartRef.current?.zoomToFit(1000, 40) + // Get canvas dimensions + const canvas = document.querySelector('.force-graph-container canvas') as HTMLCanvasElement; + if (!canvas) return; + + // Calculate padding as 10% of the smallest canvas dimension, with minimum of 40px + const minDimension = Math.min(canvas.width, canvas.height); + const padding = minDimension * 0.1 + chartRef.current?.zoomToFit(1000, padding) handleCooldown() } diff --git a/app/graph/toolbar.tsx b/app/graph/toolbar.tsx index fc3d8ff..9fc1b64 100644 --- a/app/graph/toolbar.tsx +++ b/app/graph/toolbar.tsx @@ -42,7 +42,14 @@ export default function Toolbar({ const handleCenterClick = () => { const chart = chartRef.current if (chart) { - chart.zoomToFit(1000, 40) + // Get canvas dimensions + const canvas = document.querySelector('.force-graph-container canvas') as HTMLCanvasElement; + if (!canvas) return; + + // Calculate padding as 10% of the smallest canvas dimension, with minimum of 40px + const minDimension = Math.min(canvas.width, canvas.height); + const padding = minDimension * 0.1 + chart.zoomToFit(1000, padding) } }