web: plumb websocket messages through to UI
This commit is contained in:
@@ -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),
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user