Update export.ts

This commit is contained in:
zsviczian 2022-12-16 23:12:03 +01:00 committed by GitHub
parent 73a45e1988
commit d87e080e88
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -14,6 +14,18 @@ import {
export const SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`; export const SVG_EXPORT_TAG = `<!-- svg-source:excalidraw -->`;
const createScene = (
elements: readonly NonDeletedExcalidrawElement[],
): Scene | null => {
if (!elements || Scene.getScene(elements[0])) {
return null;
}
const scene = new Scene();
scene.replaceAllElements(elements);
elements?.forEach((el) => Scene.mapElementToScene(el, scene));
return scene;
};
export const exportToCanvas = async ( export const exportToCanvas = async (
elements: readonly NonDeletedExcalidrawElement[], elements: readonly NonDeletedExcalidrawElement[],
appState: AppState, appState: AppState,
@ -37,6 +49,7 @@ export const exportToCanvas = async (
return { canvas, scale: appState.exportScale }; return { canvas, scale: appState.exportScale };
}, },
) => { ) => {
const scene = createScene(elements);
const [minX, minY, width, height] = getCanvasSize(elements, exportPadding); const [minX, minY, width, height] = getCanvasSize(elements, exportPadding);
const { canvas, scale = 1 } = createCanvas(width, height); const { canvas, scale = 1 } = createCanvas(width, height);
@ -76,6 +89,7 @@ export const exportToCanvas = async (
}, },
}); });
scene?.destroy();
return canvas; return canvas;
}; };
@ -97,6 +111,7 @@ export const exportToSvg = async (
exportScale = 1, exportScale = 1,
exportEmbedScene, exportEmbedScene,
} = appState; } = appState;
const scene = createScene(elements);
let metadata = ""; let metadata = "";
if (exportEmbedScene) { if (exportEmbedScene) {
try { try {
@ -169,6 +184,7 @@ export const exportToSvg = async (
exportWithDarkMode: appState.exportWithDarkMode, exportWithDarkMode: appState.exportWithDarkMode,
}); });
scene?.destroy();
return svgRoot; return svgRoot;
}; };