mirror of
https://github.com/excalidraw/excalidraw.git
synced 2025-05-03 10:00:07 -04:00
fix: stop font loadingdone
loop when rendering element SVGs (#5883)
* fix: stop font `loadingdone` loop when rendering element SVGs * update snaps * stop updating scene elements array if no change was made * always re-render if invalidating element shape
This commit is contained in:
parent
d273acb7e4
commit
bbe0c35f66
7 changed files with 52 additions and 17 deletions
|
@ -730,18 +730,20 @@ class App extends React.Component<AppProps, AppState> {
|
|||
};
|
||||
|
||||
private onFontLoaded = () => {
|
||||
this.scene.replaceAllElements([
|
||||
...this.scene.getElementsIncludingDeleted().map((element) => {
|
||||
if (isTextElement(element)) {
|
||||
invalidateShapeForElement(element);
|
||||
return newElementWith(element, {
|
||||
...refreshTextDimensions(element),
|
||||
});
|
||||
}
|
||||
return element;
|
||||
}),
|
||||
]);
|
||||
this.onSceneUpdated();
|
||||
let didUpdate = false;
|
||||
this.scene.mapElements((element) => {
|
||||
if (isTextElement(element)) {
|
||||
invalidateShapeForElement(element);
|
||||
didUpdate = true;
|
||||
return newElementWith(element, {
|
||||
...refreshTextDimensions(element),
|
||||
});
|
||||
}
|
||||
return element;
|
||||
});
|
||||
if (didUpdate) {
|
||||
this.onSceneUpdated();
|
||||
}
|
||||
};
|
||||
|
||||
private resetHistory = () => {
|
||||
|
|
|
@ -44,6 +44,7 @@ export const LibraryUnit = ({
|
|||
},
|
||||
null,
|
||||
);
|
||||
svg.querySelector(".style-fonts")?.remove();
|
||||
node.innerHTML = svg.outerHTML;
|
||||
})();
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@ const ChartPreviewBtn = (props: {
|
|||
},
|
||||
null, // files
|
||||
);
|
||||
svg.querySelector(".style-fonts")?.remove();
|
||||
previewNode.replaceChildren();
|
||||
previewNode.appendChild(svg);
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue