summaryrefslogtreecommitdiff
path: root/ui/lib/state/remote/state.svelte.js
diff options
context:
space:
mode:
authorOwen Jacobson <owen@grimoire.ca>2025-04-10 20:50:13 -0400
committerOwen Jacobson <owen@grimoire.ca>2025-04-10 20:50:13 -0400
commit1ef57107b1c355ef896327f0714344277df7ae18 (patch)
tree9874d3d61f0bdb13913c6c4d079fbb82b336f656 /ui/lib/state/remote/state.svelte.js
parent0fc3057b05dddb4eba142deeb6373ed37e312c60 (diff)
parent1ee129176eb71f5e246462b66fd9c9862ed1ee7a (diff)
Use a heartbeat to allow the client to reconnect after network failures.
Diffstat (limited to 'ui/lib/state/remote/state.svelte.js')
-rw-r--r--ui/lib/state/remote/state.svelte.js8
1 files changed, 6 insertions, 2 deletions
diff --git a/ui/lib/state/remote/state.svelte.js b/ui/lib/state/remote/state.svelte.js
index 6cbe124..29831a0 100644
--- a/ui/lib/state/remote/state.svelte.js
+++ b/ui/lib/state/remote/state.svelte.js
@@ -8,9 +8,10 @@ export class State {
channels = $state();
messages = $state();
- static boot({ currentUser, users, channels, messages, resumePoint }) {
+ static boot({ currentUser, heartbeat, users, channels, messages, resumePoint }) {
return new State({
currentUser,
+ heartbeat,
users: Users.boot(users),
channels: Channels.boot(channels),
messages: Messages.boot(messages),
@@ -18,8 +19,9 @@ export class State {
});
}
- constructor({ currentUser, users, channels, messages, resumePoint }) {
+ constructor({ currentUser, heartbeat, users, channels, messages, resumePoint }) {
this.currentUser = currentUser;
+ this.heartbeat = heartbeat;
this.users = users;
this.channels = channels;
this.messages = messages;
@@ -27,6 +29,8 @@ export class State {
}
onEvent(event) {
+ // Heartbeats are actually completely ignored here. They're handled in `Session`, but not as a
+ // special case; _any_ event is a heartbeat event.
switch (event.type) {
case 'channel':
return this.onChannelEvent(event);