about summary refs log tree commit diff
diff options
context:
space:
mode:
authorMel <einebeere@gmail.com>2022-02-19 21:29:13 +0100
committerMel <einebeere@gmail.com>2022-02-19 21:29:13 +0100
commit4146aec38693845e27f2030230569b284c913696 (patch)
tree958ac7ab18afa3761a14ccb05ad1ee8e84e3e84e
parent3ca55a473eb3f6507147dcd7f4476154f9eb9294 (diff)
downloadrook-4146aec38693845e27f2030230569b284c913696.tar.zst
rook-4146aec38693845e27f2030230569b284c913696.zip
Setup handler for every event to avoid errors
-rw-r--r--assets/src/network/channel/connection.ts15
-rw-r--r--assets/src/network/channel/messages/messages.ts18
2 files changed, 24 insertions, 9 deletions
diff --git a/assets/src/network/channel/connection.ts b/assets/src/network/channel/connection.ts
index a26f624..97866f0 100644
--- a/assets/src/network/channel/connection.ts
+++ b/assets/src/network/channel/connection.ts
@@ -2,7 +2,7 @@ import { Channel, Push, Socket } from "phoenix";
 import { get, Readable, writable, Writable } from "svelte/store";
 import { RookType } from "../../models/rook_type";
 import getShareToken from "../../utils/getShareToken";
-import type { AnyMessage } from "./messages/messages";
+import { AnyMessage, eventNames } from "./messages/messages";
 import {
     MessageHandler,
     routeEventToHandler,
@@ -70,12 +70,13 @@ export class Connection {
 
         this.updateState(ConnectionState.CONNECTED);
 
-        // Setup up event handler.
-        this.channel.onMessage = (event, payload) => {
-            const payloadWithEvent = { ...payload, event_name: event };
-            routeEventToHandler(event, payloadWithEvent, this.handler);
-            return payload;
-        };
+        // Setup up event handlers.
+        eventNames.forEach(event => {
+            this.channel.on(event, payload => {
+                const payloadWithEvent = { ...payload, event_name: event };
+                routeEventToHandler(event, payloadWithEvent, this.handler);
+            });
+        });
     }
 
     send(event: string, data: any): Push {
diff --git a/assets/src/network/channel/messages/messages.ts b/assets/src/network/channel/messages/messages.ts
index 7eee4a8..0dd8178 100644
--- a/assets/src/network/channel/messages/messages.ts
+++ b/assets/src/network/channel/messages/messages.ts
@@ -1,6 +1,20 @@
-export type AnyMessage = ShareMessage | RequestMessage;
+export const eventNames = [
+    "new_request",
+    "request_cancelled",
+    "share_accepted",
+    "request_ice_candidate",
 
-export type EventName = AnyMessage["event_name"];
+    "request_acknowledged",
+    "request_accepted",
+    "share_cancelled",
+    "share_ice_candidate",
+] as const;
+
+export type EventName = typeof eventNames[any];
+
+export type AnyMessage = (ShareMessage | RequestMessage) & {
+    event_name: EventName;
+};
 
 // Messages for the sharer