fix: refresh text dimensions only after font load done (#5878)

* fix: refresh text dimensions only after font load done

* fix snaps
This commit is contained in:
David Luzar 2022-11-15 00:15:02 +01:00 committed by GitHub
parent 3c0b29d85f
commit d273acb7e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 24 additions and 14 deletions

View file

@ -123,7 +123,11 @@ import {
} from "../element/binding";
import { LinearElementEditor } from "../element/linearElementEditor";
import { mutateElement, newElementWith } from "../element/mutateElement";
import { deepCopyElement, newFreeDrawElement } from "../element/newElement";
import {
deepCopyElement,
newFreeDrawElement,
refreshTextDimensions,
} from "../element/newElement";
import {
hasBoundTextElement,
isBindingElement,
@ -726,11 +730,17 @@ class App extends React.Component<AppProps, AppState> {
};
private onFontLoaded = () => {
this.scene.getElementsIncludingDeleted().forEach((element) => {
if (isTextElement(element)) {
invalidateShapeForElement(element);
}
});
this.scene.replaceAllElements([
...this.scene.getElementsIncludingDeleted().map((element) => {
if (isTextElement(element)) {
invalidateShapeForElement(element);
return newElementWith(element, {
...refreshTextDimensions(element),
});
}
return element;
}),
]);
this.onSceneUpdated();
};