fix font not rendered on init in FF (#1197)

This commit is contained in:
David Luzar 2020-04-03 21:21:40 +02:00 committed by GitHub
parent 96cea9b84b
commit 036978b837
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 23 additions and 0 deletions

View File

@ -331,6 +331,23 @@ export class App extends React.Component<any, AppState> {
}
}
// rerender text elements on font load to fix #637
try {
await Promise.race([
document.fonts?.ready?.then(() => {
globalSceneState.getAllElements().forEach((element) => {
if (isTextElement(element)) {
invalidateShapeForElement(element);
}
});
}),
// if fonts don't load in 1s for whatever reason, don't block the UI
new Promise((resolve) => setTimeout(resolve, 1000)),
]);
} catch (error) {
console.error(error);
}
if (this.state.isLoading) {
this.setState({ isLoading: false });
}

6
src/global.d.ts vendored
View File

@ -1,3 +1,9 @@
interface Document {
fonts?: {
ready?: Promise<void>;
};
}
interface Window {
ClipboardItem: any;
}