From 07730ac060d10294daa02c20b7b03e9eb8124994 Mon Sep 17 00:00:00 2001 From: Amit-K-007 Date: Mon, 26 Aug 2024 23:38:40 +0530 Subject: [PATCH] fix: Fixed issue where shape details were pasted in text areas instead of actual shape --- packages/excalidraw/components/App.tsx | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/packages/excalidraw/components/App.tsx b/packages/excalidraw/components/App.tsx index 03768bc55..f85014408 100644 --- a/packages/excalidraw/components/App.tsx +++ b/packages/excalidraw/components/App.tsx @@ -2903,8 +2903,10 @@ class App extends React.Component { this.lastViewportPosition.x, this.lastViewportPosition.y, ); + + const data = await parseClipboard(event, isPlainPaste); if ( - event && + event && data.text && (!(elementUnderCursor instanceof HTMLCanvasElement) || isWritableElement(target)) ) { @@ -2923,7 +2925,6 @@ class App extends React.Component { // event else some browsers (FF...) will clear the clipboardData // (something something security) let file = event?.clipboardData?.files[0]; - const data = await parseClipboard(event, isPlainPaste); if (!file && !isPlainPaste) { if (data.mixedContent) { return this.addElementsFromMixedContentPaste(data.mixedContent, { @@ -2991,12 +2992,18 @@ class App extends React.Component { : data.elements ) as readonly ExcalidrawElement[]; // TODO remove formatting from elements if isPlainPaste + const position = isWritableElement(target) && this.lastPointerDownEvent + ? { clientX: this.lastPointerDownEvent.pageX, clientY: this.lastPointerDownEvent.pageY } + : "cursor"; this.addElementsFromPasteOrLibrary({ elements, files: data.files || null, - position: "cursor", + position, retainSeed: isPlainPaste, }); + if(isWritableElement(target)){ + this.focusContainer(); + } } else if (data.text) { if (data.text && isMaybeMermaidDefinition(data.text)) { const api = await import("@excalidraw/mermaid-to-excalidraw");