فهرست منبع

Proper error handling for creating a link without internet (#577)

* Proper error handling for creating a link without internet

* shuffle code a bit

Co-authored-by: David Luzar <luzar.david@gmail.com>
Christopher Chedeau 5 سال پیش
والد
کامیت
4b0f788945
1فایلهای تغییر یافته به همراه23 افزوده شده و 17 حذف شده
  1. 23 17
      src/scene/data.ts

+ 23 - 17
src/scene/data.ts

@@ -144,25 +144,31 @@ export async function exportToBackend(
   elements: readonly ExcalidrawElement[],
   elements: readonly ExcalidrawElement[],
   appState: AppState,
   appState: AppState,
 ) {
 ) {
-  const response = await fetch(BACKEND_POST, {
-    method: "POST",
-    headers: { "Content-Type": "application/json" },
-    body: serializeAsJSON(elements, appState),
-  });
-  const json = await response.json();
-  if (json.id) {
-    const url = new URL(window.location.href);
-    url.searchParams.append("id", json.id);
+  let response;
+  try {
+    response = await fetch(BACKEND_POST, {
+      method: "POST",
+      headers: { "Content-Type": "application/json" },
+      body: serializeAsJSON(elements, appState),
+    });
+    const json = await response.json();
+    if (json.id) {
+      const url = new URL(window.location.href);
+      url.searchParams.append("id", json.id);
 
 
-    await navigator.clipboard.writeText(url.toString());
-    window.alert(
-      i18n.t("alerts.copiedToClipboard", {
-        url: url.toString(),
-        interpolation: { escapeValue: false },
-      }),
-    );
-  } else {
+      await navigator.clipboard.writeText(url.toString());
+      window.alert(
+        i18n.t("alerts.copiedToClipboard", {
+          url: url.toString(),
+          interpolation: { escapeValue: false },
+        }),
+      );
+    } else {
+      window.alert(i18n.t("alerts.couldNotCreateShareableLink"));
+    }
+  } catch (e) {
     window.alert(i18n.t("alerts.couldNotCreateShareableLink"));
     window.alert(i18n.t("alerts.couldNotCreateShareableLink"));
+    return;
   }
   }
 }
 }