diff options
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; - } -} |
