web: plumb websocket messages through to UI

This commit is contained in:
2025-04-15 10:41:51 -07:00
parent f2042f284e
commit 30f3f14040
3 changed files with 35 additions and 28 deletions

View File

@@ -1,6 +1,7 @@
use std::collections::HashSet;
use graphql_client::GraphQLQuery;
use letterbox_shared::WebsocketMessage;
use log::{debug, error, info, warn};
use seed::{prelude::*, *};
use thiserror::Error;
@@ -61,7 +62,7 @@ pub fn init(url: Url, orders: &mut impl Orders<Msg>) -> Model {
},
catchup: None,
last_url: Url::current(),
websocket: websocket::init(url, &mut orders.proxy(Msg::WebSocket)),
websocket: websocket::init(&mut orders.proxy(Msg::WebSocket)),
}
}
@@ -663,7 +664,15 @@ pub fn update(msg: Msg, model: &mut Model, orders: &mut impl Orders<Msg>) {
}
Msg::WebSocket(ws) => {
websocket::update(ws, &mut model.websocket, &mut orders.proxy(Msg::WebSocket))
websocket::update(ws, &mut model.websocket, &mut orders.proxy(Msg::WebSocket));
while let Some(msg) = model.websocket.updates.pop_front() {
orders.send_msg(Msg::WebsocketMessage(msg));
}
}
Msg::WebsocketMessage(msg) => {
match msg {
WebsocketMessage::RefreshMessages => orders.send_msg(Msg::Refresh),
};
}
}
}
@@ -831,4 +840,5 @@ pub enum Msg {
CatchupExit,
WebSocket(websocket::Msg),
WebsocketMessage(WebsocketMessage),
}