summaryrefslogtreecommitdiff
path: root/hi-ui/src/routes/+page.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'hi-ui/src/routes/+page.svelte')
-rw-r--r--hi-ui/src/routes/+page.svelte25
1 files changed, 19 insertions, 6 deletions
diff --git a/hi-ui/src/routes/+page.svelte b/hi-ui/src/routes/+page.svelte
index 66b4f8d..1a61b3e 100644
--- a/hi-ui/src/routes/+page.svelte
+++ b/hi-ui/src/routes/+page.svelte
@@ -2,7 +2,7 @@
import { onMount } from 'svelte';
import { boot, subscribeToEvents } from '../apiServer';
- import { currentUser } from '../store';
+ import { currentUser, channelsList, messages } from '../store';
import ActiveChannel from '../lib/ActiveChannel.svelte';
import ChannelList from '../lib/ChannelList.svelte';
@@ -18,16 +18,29 @@
user = value;
});
+ function onBooted(boot) {
+ currentUser.update(() => ({
+ id: boot.login.id,
+ username: boot.login.name,
+ }));
+ let channels = boot.channels.map((channel) => ({
+ id: channel.id,
+ name: channel.name,
+ }));
+ channelsList.update((value) => value.setChannels(channels));
+ let bootMessages = boot.channels.map((channel) => [channel.id, channel.messages]);
+ for (let [channel, channelMessages] of bootMessages) {
+ messages.update((value) => value.addMessages(channel, channelMessages));
+ }
+ }
+
onMount(async () => {
try {
let response = await boot();
switch (response.status) {
case 200:
- currentUser.update(() => ({
- username: response.data.login.name,
- id: response.data.login.id,
- }));
- subscribeToEvents();
+ onBooted(response.data);
+ subscribeToEvents(response.data.resume_point);
break;
case 401:
currentUser.update(() => null);