diff options
Diffstat (limited to 'hi-ui/src/apiServer.js')
| -rw-r--r-- | hi-ui/src/apiServer.js | 40 |
1 files changed, 27 insertions, 13 deletions
diff --git a/hi-ui/src/apiServer.js b/hi-ui/src/apiServer.js index ec94e82..648edf5 100644 --- a/hi-ui/src/apiServer.js +++ b/hi-ui/src/apiServer.js @@ -55,22 +55,36 @@ export function subscribeToEvents(resume_point) { const data = JSON.parse(evt.data); switch (data.type) { - case 'created': - channelsList.update((value) => value.addChannel(data.id, data.name)) + case 'channel': + onChannelEvent(data); break; case 'message': - messages.update((value) => value.addMessage(data)); - break; - case 'message_deleted': - messages.update((value) => value.deleteMessage(data.channel.id, data.id)); - break; - case 'deleted': - activeChannel.update((value) => value.deleteChannel(data.id)); - channelsList.update((value) => value.deleteChannel(data.id)); - messages.update((value) => value.deleteChannel(data.id)); - break; - default: + onMessageEvent(data); break; } } } + +function onChannelEvent(data) { + switch (data.event) { + case 'created': + channelsList.update((value) => value.addChannel(data.id, data.name)) + break; + case 'deleted': + activeChannel.update((value) => value.deleteChannel(data.id)); + channelsList.update((value) => value.deleteChannel(data.id)); + messages.update((value) => value.deleteChannel(data.id)); + break; + } +} + +function onMessageEvent(data) { + switch (data.event) { + case 'sent': + messages.update((value) => value.addMessage(data)); + break; + case 'deleted': + messages.update((value) => value.deleteMessage(data.channel.id, data.id)); + break; + } +} |
