|
@@ -443,6 +443,10 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
/^#json=([0-9]+),([a-zA-Z0-9_-]+)$/,
|
|
/^#json=([0-9]+),([a-zA-Z0-9_-]+)$/,
|
|
);
|
|
);
|
|
|
|
|
|
|
|
+ if (!this.state.isLoading) {
|
|
|
|
+ this.setState({ isLoading: true });
|
|
|
|
+ }
|
|
|
|
+
|
|
let scene = await loadScene(null);
|
|
let scene = await loadScene(null);
|
|
|
|
|
|
let isCollaborationScene = !!getCollaborationLinkData(window.location.href);
|
|
let isCollaborationScene = !!getCollaborationLinkData(window.location.href);
|
|
@@ -528,6 +532,12 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
this.setState({});
|
|
this.setState({});
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ private onHashChange = (event: HashChangeEvent) => {
|
|
|
|
+ if (window.location.hash.length > 1) {
|
|
|
|
+ this.initializeScene();
|
|
|
|
+ }
|
|
|
|
+ };
|
|
|
|
+
|
|
private removeEventListeners() {
|
|
private removeEventListeners() {
|
|
document.removeEventListener(EVENT.COPY, this.onCopy);
|
|
document.removeEventListener(EVENT.COPY, this.onCopy);
|
|
document.removeEventListener(EVENT.PASTE, this.pasteFromClipboard);
|
|
document.removeEventListener(EVENT.PASTE, this.pasteFromClipboard);
|
|
@@ -545,6 +555,7 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
window.removeEventListener(EVENT.BLUR, this.onBlur, false);
|
|
window.removeEventListener(EVENT.BLUR, this.onBlur, false);
|
|
window.removeEventListener(EVENT.DRAG_OVER, this.disableEvent, false);
|
|
window.removeEventListener(EVENT.DRAG_OVER, this.disableEvent, false);
|
|
window.removeEventListener(EVENT.DROP, this.disableEvent, false);
|
|
window.removeEventListener(EVENT.DROP, this.disableEvent, false);
|
|
|
|
+ window.removeEventListener(EVENT.HASHCHANGE, this.onHashChange, false);
|
|
|
|
|
|
document.removeEventListener(
|
|
document.removeEventListener(
|
|
EVENT.GESTURE_START,
|
|
EVENT.GESTURE_START,
|
|
@@ -580,6 +591,7 @@ class App extends React.Component<ExcalidrawProps, AppState> {
|
|
window.addEventListener(EVENT.BLUR, this.onBlur, false);
|
|
window.addEventListener(EVENT.BLUR, this.onBlur, false);
|
|
window.addEventListener(EVENT.DRAG_OVER, this.disableEvent, false);
|
|
window.addEventListener(EVENT.DRAG_OVER, this.disableEvent, false);
|
|
window.addEventListener(EVENT.DROP, this.disableEvent, false);
|
|
window.addEventListener(EVENT.DROP, this.disableEvent, false);
|
|
|
|
+ window.addEventListener(EVENT.HASHCHANGE, this.onHashChange, false);
|
|
|
|
|
|
// rerender text elements on font load to fix #637 && #1553
|
|
// rerender text elements on font load to fix #637 && #1553
|
|
document.fonts?.addEventListener?.("loadingdone", this.onFontLoaded);
|
|
document.fonts?.addEventListener?.("loadingdone", this.onFontLoaded);
|