From 1933116261332f3770bfe4f5908278d795f009eb Mon Sep 17 00:00:00 2001 From: Aakansha Doshi Date: Fri, 2 Dec 2022 16:47:50 +0530 Subject: [PATCH] fix: don't allow whitespaces for bound text (#5939) * fix: don't allow whitespaces for bound text * fix * remove * remove empty else * fix * fix * fix --- src/element/textWysiwyg.test.tsx | 13 +++++++++++++ src/element/textWysiwyg.tsx | 4 ++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/src/element/textWysiwyg.test.tsx b/src/element/textWysiwyg.test.tsx index afb4c2ec5..72aeb3fd4 100644 --- a/src/element/textWysiwyg.test.tsx +++ b/src/element/textWysiwyg.test.tsx @@ -1196,5 +1196,18 @@ describe("textWysiwyg", () => { ]); expect(text.containerId).toBe(rectangle.id); }); + + it("should not allow bound text with only whitespaces", async () => { + Keyboard.keyPress(KEYS.ENTER); + const editor = document.querySelector( + ".excalidraw-textEditorContainer > textarea", + ) as HTMLTextAreaElement; + await new Promise((r) => setTimeout(r, 0)); + + fireEvent.change(editor, { target: { value: " " } }); + editor.blur(); + expect(rectangle.boundElements).toBeNull(); + expect(h.elements[1].isDeleted).toBe(true); + }); }); }); diff --git a/src/element/textWysiwyg.tsx b/src/element/textWysiwyg.tsx index d015ee00d..da43d2784 100644 --- a/src/element/textWysiwyg.tsx +++ b/src/element/textWysiwyg.tsx @@ -10,8 +10,8 @@ import { isBoundToContainer, isTextElement } from "./typeChecks"; import { CLASSES, BOUND_TEXT_PADDING, VERTICAL_ALIGN } from "../constants"; import { ExcalidrawElement, - ExcalidrawTextElement, ExcalidrawLinearElement, + ExcalidrawTextElement, } from "./types"; import { AppState } from "../types"; import { mutateElement } from "./mutateElement"; @@ -510,7 +510,7 @@ export const textWysiwyg = ({ if (container) { text = updateElement.text; - if (editable.value) { + if (editable.value.trim()) { const boundTextElementId = getBoundTextElementId(container); if (!boundTextElementId || boundTextElementId !== element.id) { mutateElement(container, {