diff options
Diffstat (limited to 'assets/src/network')
| -rw-r--r-- | assets/src/network/transfer/transfer.ts | 14 |
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; } |
