diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-03-23 14:33:07 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-03-23 14:33:07 -0400 |
| commit | 876472299d67f8fe3a789b7777b9d8ee44297b23 (patch) | |
| tree | db62f5d1e15d871f8a73ce20b40cd53053d12f85 /ui/lib/store.js | |
| parent | fa0f653f141efee3f5a01e1fa696d29140ec12c2 (diff) | |
| parent | f788ea84e25a4f7216ca0604aeb216346403b6ef (diff) | |
Merge branch 'prop/restartable-state'
Diffstat (limited to 'ui/lib/store.js')
| -rw-r--r-- | ui/lib/store.js | 77 |
1 files changed, 0 insertions, 77 deletions
diff --git a/ui/lib/store.js b/ui/lib/store.js deleted file mode 100644 index 57b5cce..0000000 --- a/ui/lib/store.js +++ /dev/null @@ -1,77 +0,0 @@ -import { writable } from 'svelte/store'; -import { browser } from '$app/environment'; -import { Channels, ChannelsMeta } from '$lib/store/channels.svelte.js'; -import { Messages } from '$lib/store/messages.svelte.js'; -import { Logins } from '$lib/store/logins'; -import { STORE_KEY_CHANNELS_DATA } from '$lib/constants'; - -// Get channelsList content from the local storage -const channelsMetaData = - (browser && JSON.parse(localStorage.getItem(STORE_KEY_CHANNELS_DATA))) || {}; - -export const currentUser = writable(null); -export const logins = writable(new Logins()); -export const channelsMetaList = writable(new ChannelsMeta({ channelsMetaData })); -export const channelsList = writable(new Channels({ channelsMetaList })); -export const messages = writable(new Messages()); - -export function onEvent(event) { - switch (event.type) { - case 'login': - onLoginEvent(event); - break; - case 'channel': - onChannelEvent(event); - break; - case 'message': - onMessageEvent(event); - break; - } -} - -onEvent.fromJson = (event) => { - const parsed = JSON.parse(event); - return onEvent(parsed); -}; - -onEvent.fromMessage = (message) => { - const data = message.data; - return onEvent.fromJson(data); -}; - -function onLoginEvent(event) { - switch (event.event) { - case 'created': - logins.update((value) => value.addLogin(event.id, event.name)); - break; - } -} - -function onChannelEvent(event) { - switch (event.event) { - case 'created': - channelsList.update((value) => value.addChannel(event.id, event.name)); - break; - case 'deleted': - channelsList.update((value) => value.deleteChannel(event.id)); - messages.update((value) => value.deleteChannel(event.id)); - break; - } -} - -function onMessageEvent(event) { - switch (event.event) { - case 'sent': - messages.update((value) => - value.addMessage(event.channel, event.id, { - at: event.at, - sender: event.sender, - body: event.body - }) - ); - break; - case 'deleted': - messages.update((value) => value.deleteMessage(event.id)); - break; - } -} |
