diff options
| author | Melonai <einebeere@gmail.com> | 2021-06-04 19:42:42 +0200 |
|---|---|---|
| committer | Melonai <einebeere@gmail.com> | 2021-06-04 19:42:42 +0200 |
| commit | c575119a90a028dd109434a4b8889adceac3df93 (patch) | |
| tree | c20da8d479c2acae031b13fa23d2b0aed25a5d9b /assets/src/network/channel/share.ts | |
| parent | e6a567090d5e14605e6d4722fc51d7c56b9410ee (diff) | |
| download | rook-c575119a90a028dd109434a4b8889adceac3df93.tar.zst rook-c575119a90a028dd109434a4b8889adceac3df93.zip | |
Signaling event processing
Diffstat (limited to 'assets/src/network/channel/share.ts')
| -rw-r--r-- | assets/src/network/channel/share.ts | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/assets/src/network/channel/share.ts b/assets/src/network/channel/share.ts index f93e8cb..6dbf0cd 100644 --- a/assets/src/network/channel/share.ts +++ b/assets/src/network/channel/share.ts @@ -1,5 +1,10 @@ import requests from "../../stores/requests"; -import type { Connection } from "./connection"; +import { Connection, on, onWithToken } from "./connection"; +import type { UnregisterHandler } from "./messages/handler"; +import type { + NewRequestMessage, + RequestCancelledMessage, +} from "./messages/messages"; import { joinShareChannel } from "./socket"; export async function startShare(connection: Connection) { @@ -8,4 +13,23 @@ export async function startShare(connection: Connection) { connection.token ); connection.channel = shareChannel; -} \ No newline at end of file + + on("new_request", onNewRequest); +} + +function onNewRequest(message: NewRequestMessage) { + const token = message.token; + + requests.addRequest(token); + + onWithToken("request_cancelled", token, onRequestCancelled); +} + +function onRequestCancelled( + message: RequestCancelledMessage, + unregister: UnregisterHandler +) { + const token = message.token; + requests.removeRequest(token); + unregister(); +} |
