浏览代码

try/catch localStorage access (#1932)

David Luzar 5 年之前
父节点
当前提交
c1488fa353
共有 1 个文件被更改,包括 17 次插入10 次删除
  1. 17 10
      src/components/App.tsx

+ 17 - 10
src/components/App.tsx

@@ -417,9 +417,14 @@ class App extends React.Component<ExcalidrawProps, AppState> {
     if (!roomMatch) {
       return false;
     }
-    const collabForceLoadFlag = localStorage.getItem(
-      LOCAL_STORAGE_KEY_COLLAB_FORCE_FLAG,
-    );
+
+    let collabForceLoadFlag;
+    try {
+      collabForceLoadFlag = localStorage?.getItem(
+        LOCAL_STORAGE_KEY_COLLAB_FORCE_FLAG,
+      );
+    } catch {}
+
     if (collabForceLoadFlag) {
       try {
         const {
@@ -619,13 +624,15 @@ class App extends React.Component<ExcalidrawProps, AppState> {
 
   private beforeUnload = withBatchedUpdates((event: BeforeUnloadEvent) => {
     if (this.state.isCollaborating && this.portal.roomID) {
-      localStorage.setItem(
-        LOCAL_STORAGE_KEY_COLLAB_FORCE_FLAG,
-        JSON.stringify({
-          timestamp: Date.now(),
-          room: this.portal.roomID,
-        }),
-      );
+      try {
+        localStorage?.setItem(
+          LOCAL_STORAGE_KEY_COLLAB_FORCE_FLAG,
+          JSON.stringify({
+            timestamp: Date.now(),
+            room: this.portal.roomID,
+          }),
+        );
+      } catch {}
     }
     if (
       this.state.isCollaborating &&