Compare commits

...

2 Commits

Author SHA1 Message Date
Aakansha Doshi
555bf6338f fix test 2022-11-09 22:55:27 +05:30
Daniel J. Geiger
0bef3945f6 Fix #5855. 2022-11-09 07:54:49 -06:00
2 changed files with 38 additions and 9 deletions

View File

@ -933,10 +933,32 @@ describe("textWysiwyg", () => {
await new Promise((cb) => setTimeout(cb, 0));
editor.blur();
expect(rectangle.width).toBe(110);
expect(rectangle.width).toBe(100);
expect(rectangle.height).toBe(210);
const textElement = h.elements[1] as ExcalidrawTextElement;
expect(textElement.text).toBe(wrappedText);
expect(textElement.text).toMatchInlineSnapshot(
`
"Wikipedi
a is
hosted
by the
Wikimedi
a
Foundati
on, a
non-prof
it
organiza
tion
that
also
hosts a
range of
other
projects
."
`,
);
});
});
});

View File

@ -290,14 +290,21 @@ export const textWysiwyg = ({
fontSize: app.state.currentItemFontSize,
fontFamily: app.state.currentItemFontFamily,
});
const wrappedText = container
? wrapText(data, font, getMaxContainerWidth(container))
: data;
const dimensions = measureText(wrappedText, font);
editable.style.height = `${dimensions.height}px`;
onChange(wrappedText);
if (data) {
const text = editable.value;
const start = Math.min(editable.selectionStart, editable.selectionEnd);
const end = Math.max(editable.selectionStart, editable.selectionEnd);
const newText = `${text.substring(0, start)}${data}${text.substring(
end,
)}`;
const wrappedText = container
? wrapText(newText, font, getMaxContainerWidth(container!))
: newText;
const dimensions = measureText(wrappedText, font);
editable.style.height = `${dimensions.height}px`;
onChange(newText);
}
};
editable.oninput = () => {
const updatedTextElement = Scene.getScene(element)?.getElement(