diff --git a/src/clipboard.ts b/src/clipboard.ts index 876f790f..18fad0c6 100644 --- a/src/clipboard.ts +++ b/src/clipboard.ts @@ -1,6 +1,7 @@ import { ExcalidrawElement } from "./element/types"; import { getSelectedElements } from "./scene"; import { AppState } from "./types"; +import { SVG_EXPORT_TAG } from "./scene/export"; let CLIPBOARD = ""; let PREFER_APP_CLIPBOARD = false; @@ -39,6 +40,10 @@ export async function copyToAppClipboard( export function getAppClipboard(): { elements?: readonly ExcalidrawElement[]; } { + if (!CLIPBOARD) { + return {}; + } + try { const clipboardElements = JSON.parse(CLIPBOARD); @@ -68,7 +73,7 @@ export async function getClipboardContent( : probablySupportsClipboardReadText && (await navigator.clipboard.readText()); - if (text && !PREFER_APP_CLIPBOARD) { + if (text && !PREFER_APP_CLIPBOARD && !text.includes(SVG_EXPORT_TAG)) { return { text }; } } catch (error) { diff --git a/src/scene/export.ts b/src/scene/export.ts index 95033dfe..003f7a70 100644 --- a/src/scene/export.ts +++ b/src/scene/export.ts @@ -6,6 +6,8 @@ import { distance, SVG_NS } from "../utils"; import { normalizeScroll } from "./scroll"; import { AppState } from "../types"; +export const SVG_EXPORT_TAG = ``; + export function exportToCanvas( elements: readonly ExcalidrawElement[], appState: AppState, @@ -86,6 +88,7 @@ export function exportToSvg( svgRoot.setAttribute("viewBox", `0 0 ${width} ${height}`); svgRoot.innerHTML = ` + ${SVG_EXPORT_TAG}