aboutsummaryrefslogtreecommitdiff
path: root/assets/src
diff options
context:
space:
mode:
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;
}