Browse Source

fix multiple types of desktop/liveview listeners in the same app

Evan Almloff 1 year ago
parent
commit
9de56c00f3
2 changed files with 6 additions and 2 deletions
  1. 4 1
      packages/desktop/src/lib.rs
  2. 2 1
      packages/interpreter/src/sledgehammer_bindings.rs

+ 4 - 1
packages/desktop/src/lib.rs

@@ -276,7 +276,10 @@ pub fn launch_with_props<P: 'static>(root: Component<P>, props: P, cfg: Config)
 
                     let evt = match serde_json::from_value::<HtmlEvent>(params) {
                         Ok(value) => value,
-                        Err(_) => return,
+                        Err(err) => {
+                            tracing::error!("Error parsing user_event: {:?}", err);
+                            return;
+                        }
                     };
 
                     let HtmlEvent {

+ 2 - 1
packages/interpreter/src/sledgehammer_bindings.rs

@@ -355,7 +355,7 @@ pub mod binary_protocol {
         fn add_placeholder() {
             "{node = document.createElement('pre'); node.hidden = true; stack.push(node);}"
         }
-        fn new_event_listener(event_name: &str<u8, evt>, id: u32, bubbles: u8) {
+        fn new_event_listener(event: &str<u8, evt>, id: u32, bubbles: u8) {
             r#"
             bubbles = bubbles == 1;
             node = nodes[id];
@@ -365,6 +365,7 @@ pub mod binary_protocol {
                 node.listening = 1;
             }
             node.setAttribute('data-dioxus-id', `\${id}`);
+            const event_name = $event$;
     
             // if this is a mounted listener, we send the event immediately
             if (event_name === "mounted") {