about summary refs log tree commit diff
path: root/assets/src
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-02-21 02:15:39 +0100
committerMel <einebeere@gmail.com>2022-02-21 02:15:39 +0100
commit2907928cf3cb204a6049192175c107173cce608d (patch)
treefd2fb20e048bf7cdb4a97b7d2b4aacac98bc0a35 /assets/src
parent456d2d49358356b5895ddb71c5895d3eabb7e677 (diff)
downloadrook-2907928cf3cb204a6049192175c107173cce608d.tar.zst
rook-2907928cf3cb204a6049192175c107173cce608d.zip
Add temporary check for ICE failure.
Diffstat (limited to 'assets/src')
-rw-r--r--assets/src/network/transfer/transfer.ts14
1 files changed, 14 insertions, 0 deletions
diff --git a/assets/src/network/transfer/transfer.ts b/assets/src/network/transfer/transfer.ts
index b566aa0..434c4fc 100644
--- a/assets/src/network/transfer/transfer.ts
+++ b/assets/src/network/transfer/transfer.ts
@@ -1,9 +1,11 @@
 import { Writable, writable } from "svelte/store";
+import { toast, ToastType } from "../../state/toast";
 
 export enum TransferState {
     CONNECTING,
     TRANSFERRING,
     DONE,
+    FAILED,
 }
 
 export type Transfer = {
@@ -46,6 +48,18 @@ export function createTransfer(
         onChannel(channel, () => onTransferComplete(transfer));
     };
 
+    pc.addEventListener("iceconnectionstatechange", (e: any) => {
+        if (pc.iceConnectionState === "failed") {
+            toast({
+                type: ToastType.ERROR,
+                title: "An error occurred!",
+                // FIXME: Implement said fix!
+                message: "ICE negotiation failed. A fix is in progress.",
+            });
+            transfer.state.set(TransferState.FAILED);
+        }
+    });
+
     return transfer;
 }