Commit 351d7a2
Pass values without serde if the argument is JsValue
Changed files (2)
Diff
@@ -10,7 +10,7 @@ crate-type = ["cdylib"] wasm-bindgen = "0.2.122" kaja-web = { path = "../.." } js-sys = "0.3"-web-sys = { version = "0.3.99", features = ["Element", "HtmlElement", "NodeList", "CssStyleDeclaration"] }+web-sys = { version = "0.3.99", features = ["Element", "HtmlElement", "NodeList", "CssStyleDeclaration", "KeyboardEvent"] } gloo = "0.12" kaja-html-macro = "1.0.3" serde = { version = "1.0.228", features = ["derive"] }@@ -1,5 +1,6 @@ use kaja_web::prelude::*; use serde::Deserialize;+use web_sys::KeyboardEvent; #[derive(Deserialize)] pub struct Test1Data {@@ -27,6 +28,9 @@ fn update() { <button onclick="asyncTest('run later');"> Test Async </button>++ <br />+ <textarea onkeydown="processInput(event)">Key down events?</textarea> }}; let result = inner_html("#main-view", counter.as_str());@@ -78,6 +82,18 @@ async fn async_test(message: String) { set_color("black"); } +#[callback(processInput)]+fn edit_input(ev: JsValue) {+ let ev: KeyboardEvent = ev.unchecked_into();+ let key = ev.key();+ log!("edit_input: {:?}", key.clone());++ if key == "Tab" {+ log!("Tab pressed");+ ev.prevent_default();+ }+}+ #[wasm_bindgen(start)] pub fn init() { std::panic::set_hook(Box::new(console_error_panic_hook::hook));