Browse Source

fix: don't bind text to container if double clicked else instead of center (#5105)

pull/5111/head
Aakansha Doshi 4 years ago committed by GitHub
parent
commit
399ce1e01a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/components/App.tsx
  2. 23
      src/element/textWysiwyg.test.tsx

3
src/components/App.tsx

@ -2239,8 +2239,7 @@ class App extends React.Component<AppProps, AppState> { @@ -2239,8 +2239,7 @@ class App extends React.Component<AppProps, AppState> {
if (isTextElement(selectedElements[0])) {
existingTextElement = selectedElements[0];
} else if (isTextBindableContainer(selectedElements[0], false)) {
container = selectedElements[0];
existingTextElement = getBoundTextElement(container);
existingTextElement = getBoundTextElement(selectedElements[0]);
}
}

23
src/element/textWysiwyg.test.tsx

@ -544,6 +544,29 @@ describe("textWysiwyg", () => { @@ -544,6 +544,29 @@ describe("textWysiwyg", () => {
expect((h.elements[1] as ExcalidrawTextElement).containerId).toBe(null);
});
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);
// clicking somewhere on top left
mouse.doubleClickAt(rectangle.x + 20, rectangle.y + 20);
expect(h.elements.length).toBe(2);
const text = h.elements[1] as ExcalidrawTextElementWithContainer;
expect(text.type).toBe("text");
expect(text.containerId).toBe(null);
mouse.down();
const editor = document.querySelector(
".excalidraw-textEditorContainer > textarea",
) as HTMLTextAreaElement;
fireEvent.change(editor, { target: { value: "Hello World!" } });
await new Promise((r) => setTimeout(r, 0));
editor.blur();
expect(rectangle.boundElements).toBe(null);
});
it("should update font family correctly on undo/redo by selecting bounded text when font family was updated", async () => {
expect(h.elements.length).toBe(1);

Loading…
Cancel
Save