diff --git a/src/components/MermaidToExcalidraw.tsx b/src/components/MermaidToExcalidraw.tsx index 1422b5f6b..37e432321 100644 --- a/src/components/MermaidToExcalidraw.tsx +++ b/src/components/MermaidToExcalidraw.tsx @@ -1,5 +1,5 @@ import { useState, useRef, useEffect } from "react"; -import { AppState, BinaryFiles } from "../types"; +import { AppState, BinaryFiles, NormalizedZoomValue } from "../types"; import { updateActiveTool } from "../utils"; import { useApp, useExcalidrawSetAppState } from "./App"; import { Button } from "./Button"; @@ -140,10 +140,17 @@ const MermaidToExcalidraw = ({ mermaidToExcalidrawLib.current.graphToExcalidraw(mermaidGraphData); data.current = { - elements: convertToExcalidrawElements(elements, appState, { - regenerateIds: true, - transformViewportToSceneCoords: true, - }), + elements: convertToExcalidrawElements( + elements, + { + ...appState, + zoom: { ...appState.zoom, value: 1 as NormalizedZoomValue }, + }, + { + regenerateIds: true, + transformViewportToSceneCoords: true, + }, + ), files, }; const parent = canvasNode.parentElement!; diff --git a/src/data/transform.ts b/src/data/transform.ts index f3be0377c..6ab140d1f 100644 --- a/src/data/transform.ts +++ b/src/data/transform.ts @@ -392,8 +392,8 @@ class ElementStore { export const convertToExcalidrawElements = ( elements: ExcalidrawElementSkeleton[] | null, - appState: AppState, - { regenerateIds = false, transformViewportToSceneCoords = false }, + appState?: AppState, + opts?: { regenerateIds: boolean; transformViewportToSceneCoords: boolean }, ) => { if (!elements) { return []; @@ -407,12 +407,12 @@ export const convertToExcalidrawElements = ( for (const element of elements) { let excalidrawElement: ExcalidrawElement; const originalId = element.id; - if (regenerateIds) { + if (opts?.regenerateIds) { Object.assign(element, { id: nanoid() }); } // transform viewport coords to scene coordinates - if (transformViewportToSceneCoords) { + if (opts?.transformViewportToSceneCoords && appState) { const { x, y } = viewportCoordsToSceneCoords( { clientX: element.x,