Kaynağa Gözat

fix hydration for non-bubbling events (#2234)

Evan Almloff 1 yıl önce
ebeveyn
işleme
4d25e3f6a2

+ 1 - 0
packages/html/Cargo.toml

@@ -26,6 +26,7 @@ tokio = { workspace = true, features = ["fs", "io-util"], optional = true }
 rfd = { version = "0.14", optional = true }
 futures-channel = { workspace = true }
 serde_json = { version = "1", optional = true }
+tracing.workspace = true
 
 [dependencies.web-sys]
 optional = true

+ 4 - 1
packages/html/src/events.rs

@@ -348,7 +348,10 @@ pub fn event_bubbles(evt: &str) -> bool {
         "transitionend" => true,
         "toggle" => true,
         "mounted" => false,
-        _ => true,
+        _ => {
+            tracing::warn!("Unknown event name: {evt}");
+            true
+        }
     }
 }
 

+ 1 - 1
packages/ssr/src/renderer.rs

@@ -197,7 +197,7 @@ impl Renderer {
                     // then write any listeners
                     for name in accumulated_listeners.drain(..) {
                         write!(buf, ",{}:", &name[2..])?;
-                        write!(buf, "{}", dioxus_html::event_bubbles(name) as u8)?;
+                        write!(buf, "{}", dioxus_html::event_bubbles(&name[2..]) as u8)?;
                     }
                 }