fix: allow adding text via enter only for text containers (#5891)

* fix: allow adding text via enter only for text containers

* fix

* fix

* fix

* move check isTextElement outside
This commit is contained in:
Aakansha Doshi 2022-11-17 15:26:18 +05:30 committed by GitHub
parent 4709b953e7
commit 96a5d6548b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 9 deletions

View file

@ -12,6 +12,7 @@ import { MaybeTransformHandleType } from "./transformHandles";
import Scene from "../scene/Scene";
import { isTextElement } from ".";
import { getMaxContainerHeight, getMaxContainerWidth } from "./newElement";
import { isImageElement } from "./typeChecks";
export const redrawTextBoundingBox = (
textElement: ExcalidrawTextElement,
@ -490,3 +491,12 @@ export const getContainerElement = (
export const getContainerDims = (element: ExcalidrawElement) => {
return { width: element.width, height: element.height };
};
export const isValidTextContainer = (element: ExcalidrawElement) => {
return (
element.type === "rectangle" ||
element.type === "ellipse" ||
element.type === "diamond" ||
isImageElement(element)
);
};

View file

@ -584,6 +584,17 @@ describe("textWysiwyg", () => {
expect((h.elements[1] as ExcalidrawTextElement).containerId).toBe(null);
});
it("shouldn't create text element when pressing 'Enter' key on non text bindable container", async () => {
h.elements = [];
const freeDraw = UI.createElement("freedraw", {
width: 100,
height: 50,
});
API.setSelectedElements([freeDraw]);
Keyboard.keyPress(KEYS.ENTER);
expect(h.elements.length).toBe(1);
});
it("should'nt bind text to container when not double clicked on center", async () => {
expect(h.elements.length).toBe(1);
expect(h.elements[0].id).toBe(rectangle.id);