|
@@ -5,7 +5,6 @@ use futures_channel::mpsc::UnboundedReceiver;
|
|
use dioxus_core::Template;
|
|
use dioxus_core::Template;
|
|
|
|
|
|
pub(crate) fn init() -> UnboundedReceiver<Template<'static>> {
|
|
pub(crate) fn init() -> UnboundedReceiver<Template<'static>> {
|
|
- use std::convert::TryInto;
|
|
|
|
use wasm_bindgen::closure::Closure;
|
|
use wasm_bindgen::closure::Closure;
|
|
use wasm_bindgen::JsCast;
|
|
use wasm_bindgen::JsCast;
|
|
use web_sys::{MessageEvent, WebSocket};
|
|
use web_sys::{MessageEvent, WebSocket};
|
|
@@ -31,14 +30,12 @@ pub(crate) fn init() -> UnboundedReceiver<Template<'static>> {
|
|
// change the rsx when new data is received
|
|
// change the rsx when new data is received
|
|
let cl = Closure::wrap(Box::new(move |e: MessageEvent| {
|
|
let cl = Closure::wrap(Box::new(move |e: MessageEvent| {
|
|
if let Ok(text) = e.data().dyn_into::<js_sys::JsString>() {
|
|
if let Ok(text) = e.data().dyn_into::<js_sys::JsString>() {
|
|
- let text: Result<String, _> = text.try_into();
|
|
|
|
- if let Ok(string) = text {
|
|
|
|
- let val = serde_json::from_str::<serde_json::Value>(&string).unwrap();
|
|
|
|
- // leak the value
|
|
|
|
- let val: &'static serde_json::Value = Box::leak(Box::new(val));
|
|
|
|
- let template: Template<'_> = Template::deserialize(val).unwrap();
|
|
|
|
- tx.unbounded_send(template).unwrap();
|
|
|
|
- }
|
|
|
|
|
|
+ let string: String = text.into();
|
|
|
|
+ let val = serde_json::from_str::<serde_json::Value>(&string).unwrap();
|
|
|
|
+ // leak the value
|
|
|
|
+ let val: &'static serde_json::Value = Box::leak(Box::new(val));
|
|
|
|
+ let template: Template<'_> = Template::deserialize(val).unwrap();
|
|
|
|
+ tx.unbounded_send(template).unwrap();
|
|
}
|
|
}
|
|
}) as Box<dyn FnMut(MessageEvent)>);
|
|
}) as Box<dyn FnMut(MessageEvent)>);
|
|
|
|
|