diff options
| author | Owen Jacobson <owen@grimoire.ca> | 2025-07-01 15:40:11 -0400 |
|---|---|---|
| committer | Owen Jacobson <owen@grimoire.ca> | 2025-07-03 22:43:44 -0400 |
| commit | 9b38cb1a62ede4900fde4ba47a7b065db329e994 (patch) | |
| tree | abf0b9d993ef03a53903aae03f375b78473952da /ui/lib/state/remote/conversations.svelte.js | |
| parent | 1cafeb5ec92c1dc4ad74fbed58b15a8ab2f3c0cf (diff) | |
Rename "channel" to "conversation" throughout the client.
Existing client state, stored in local storage, is migrated to new keys (that mention "conversation" instead of "channel" where appropriate) the first time the client loads.
Diffstat (limited to 'ui/lib/state/remote/conversations.svelte.js')
| -rw-r--r-- | ui/lib/state/remote/conversations.svelte.js | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/ui/lib/state/remote/conversations.svelte.js b/ui/lib/state/remote/conversations.svelte.js new file mode 100644 index 0000000..79868f4 --- /dev/null +++ b/ui/lib/state/remote/conversations.svelte.js @@ -0,0 +1,29 @@ +import { DateTime } from 'luxon'; + +class Conversation { + static boot({ at, id, name }) { + return new Conversation({ + at: DateTime.fromISO(at), + id, + name, + }); + } + + constructor({ at, id, name }) { + this.at = at; + this.id = id; + this.name = name; + } +} + +export class Conversations { + all = $state([]); + + add({ at, id, name }) { + this.all.push(Conversation.boot({ at, id, name })); + } + + remove(id) { + this.all = this.all.filter((conversation) => conversation.id !== id); + } +} |
