From 314f71e65eb88d0acedae77e2440118984ed78dd Mon Sep 17 00:00:00 2001 From: DevvoZA <101029583+DevvoZA@users.noreply.github.com> Date: Mon, 11 May 2026 14:22:52 -0400 Subject: [PATCH] Reset schematic view when circuit changes --- lib/components/SchematicViewer.tsx | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/lib/components/SchematicViewer.tsx b/lib/components/SchematicViewer.tsx index ab4fd20..c99affe 100644 --- a/lib/components/SchematicViewer.tsx +++ b/lib/components/SchematicViewer.tsx @@ -11,6 +11,7 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react" import { fromString, identity, + type Matrix, toString as transformToString, } from "transformation-matrix" import { useMouseMatrixTransform } from "use-mouse-matrix-transform" @@ -235,6 +236,11 @@ export const SchematicViewer = ({ >([]) const circuitJsonRef = useRef(circuitJson) + const handleSetTransform = useCallback((transform: Matrix) => { + if (!svgDivRef.current) return + svgDivRef.current.style.transform = transformToString(transform) + }, []) + useEffect(() => { const circuitHash = getCircuitHash(circuitJson) const circuitHashRef = getCircuitHash(circuitJsonRef.current) @@ -249,15 +255,17 @@ export const SchematicViewer = ({ ref: containerRef, cancelDrag, transform: svgToScreenProjection, + setTransform: setSvgToScreenProjection, } = useMouseMatrixTransform({ - onSetTransform(transform) { - if (!svgDivRef.current) return - svgDivRef.current.style.transform = transformToString(transform) - }, + onSetTransform: handleSetTransform, // @ts-ignore disabled is a valid prop but not typed enabled: isInteractionEnabled && !showSpiceOverlay, }) + useEffect(() => { + setSvgToScreenProjection(identity()) + }, [circuitJsonKey, setSvgToScreenProjection]) + const { containerWidth, containerHeight } = useResizeHandling(containerRef) const svgString = useMemo(() => { if (!containerWidth || !containerHeight) return ""