summaryrefslogtreecommitdiff
path: root/hi-ui/src/routes/+page.svelte
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2024-10-05 23:00:58 -0400
committerOwen Jacobson <owen@grimoire.ca>2024-10-05 23:00:58 -0400
commit05de3c7b211727039b3912311aa4bab6787a7457 (patch)
tree08a3860b68391514390f42872ccc1cb4c6e6afd2 /hi-ui/src/routes/+page.svelte
parentbc514e0ea5f0a553f15ab8275961907877181520 (diff)
parent6a10fcaf64938da52b326ea80013d9f30ed62a6c (diff)
Merge branch 'wip/boot'
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);