2020-04-06 22:59:33 +02:00
|
|
|
use seed::prelude::*;
|
2020-04-06 08:38:08 +02:00
|
|
|
|
|
|
|
use jirs_data::WsMsg;
|
|
|
|
|
2020-04-06 14:25:52 +02:00
|
|
|
use crate::{model, Msg, APP};
|
2020-04-06 08:38:08 +02:00
|
|
|
|
|
|
|
pub fn handle(msg: WsMsg) {
|
|
|
|
let app = match unsafe { APP.as_mut().unwrap() }.write() {
|
|
|
|
Ok(app) => app,
|
|
|
|
_ => return,
|
|
|
|
};
|
|
|
|
|
|
|
|
match msg {
|
|
|
|
WsMsg::Ping | WsMsg::Pong => {}
|
|
|
|
_ => app.update(Msg::WsMsg(msg)),
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-04-06 22:59:33 +02:00
|
|
|
pub fn update(msg: &Msg, model: &mut model::Model, orders: &mut impl Orders<Msg>) {
|
2020-04-06 08:38:08 +02:00
|
|
|
match msg {
|
|
|
|
Msg::WsMsg(WsMsg::ProjectLoaded(project)) => {
|
2020-04-06 22:59:33 +02:00
|
|
|
model.project = Some(project.clone());
|
|
|
|
}
|
|
|
|
Msg::WsMsg(WsMsg::AuthorizeLoaded(Ok(user))) => {
|
|
|
|
model.user = Some(user.clone());
|
|
|
|
}
|
|
|
|
Msg::WsMsg(WsMsg::ProjectIssuesLoaded(v)) => {
|
|
|
|
model.issues = v.clone();
|
|
|
|
}
|
|
|
|
Msg::WsMsg(WsMsg::ProjectUsersLoaded(v)) => {
|
|
|
|
model.users = v.clone();
|
2020-04-06 08:38:08 +02:00
|
|
|
}
|
|
|
|
_ => (),
|
2020-04-06 22:59:33 +02:00
|
|
|
};
|
|
|
|
orders.render();
|
2020-04-06 08:38:08 +02:00
|
|
|
}
|