Clone in a terminal:
Commit 2226f52
Johan Mattsson - 2026-07-03T21:04:13+00:00
2226f52c8addbbf364bf019ff2dfbef8133c4a25johan.mattsson.m@gmail.com

Add and remove css classes

Changed files (7)

Diff

diff --git a/Cargo.lock b/Cargo.lockindex 9676dc1..fe1854d 100644--- a/Cargo.lock+++ b/Cargo.lock@@ -404,7 +404,7 @@ dependencies = [  [[package]] name = "kaja-web"-version = "1.0.2"+version = "1.0.3" dependencies = [  "gloo",  "gloo-console",diff --git a/Cargo.toml b/Cargo.tomlindex 15e446f..11a6544 100644--- a/Cargo.toml+++ b/Cargo.toml@@ -1,6 +1,6 @@ [package] name = "kaja-web"-version = "1.0.2"+version = "1.0.3" edition = "2024" description = "Web framework for Rust targeting the WebAssembly" license = "MIT"@@ -13,7 +13,7 @@ gloo = "0.12.0" gloo-console = "0.4.0" kaja-html-macro = "1.0.3" wasm-bindgen = "0.2.122"-web-sys = { version = "0.3.99", features = ["Document", "HtmlDocument", "Element", "HtmlElement", "HtmlInputElement", "NodeList"] }+web-sys = { version = "0.3.99", features = ["Document", "HtmlDocument", "Element", "HtmlElement", "HtmlInputElement", "NodeList", "CssStyleDeclaration"] } serde = { version = "1.0", features = ["derive"] } serde-wasm-bindgen = "0.5" inventory = "0.3.24"diff --git a/examples/counter-component/build.sh b/examples/counter-component/build.shindex dba3cc0..63a1adc 100755--- a/examples/counter-component/build.sh+++ b/examples/counter-component/build.sh@@ -5,8 +5,7 @@ wasm-pack build \     --release \     --target web \     --out-dir pkg \-    --out-name componentexample \-    --no-typescript+    --out-name componentexample  cp index.html pkg/ cp main.js pkg/diff --git a/examples/counter-component/dev.sh b/examples/counter-component/dev.shindex d95a39d..f2bd3f3 100755--- a/examples/counter-component/dev.sh+++ b/examples/counter-component/dev.sh@@ -5,8 +5,7 @@ wasm-pack build \     --debug \     --target web \     --out-dir pkg \-    --out-name componentexample \-    --no-typescript+    --out-name componentexample  cp index.html pkg/ cp main.js pkg/diff --git a/examples/counter-component/src/lib.rs b/examples/counter-component/src/lib.rsindex 86de088..9cf1e51 100644--- a/examples/counter-component/src/lib.rs+++ b/examples/counter-component/src/lib.rs@@ -3,8 +3,6 @@ use kaja_web::prelude::*; mod counter; mod main_component; -- #[wasm_bindgen(start)] pub fn init() {     std::panic::set_hook(Box::new(console_error_panic_hook::hook));diff --git a/src/lib.rs b/src/lib.rsindex c327b6d..c8cfb53 100644--- a/src/lib.rs+++ b/src/lib.rs@@ -425,3 +425,29 @@ where     let element = html_element.unwrap();     component_binding.render(&element); }++pub fn remove_css_class(element: &HtmlElement, css_class: &str) {+    use js_sys::Array;+    use wasm_bindgen::JsValue;++    let token = {+        let arr = Array::new();+        arr.push(&JsValue::from_str(css_class));+        arr+    };++    element.class_list().remove(&token);+}++pub fn add_css_class(element: &HtmlElement, css_class: &str) {+    use js_sys::Array;+    use wasm_bindgen::JsValue;++    let token = {+        let arr = Array::new();+        arr.push(&JsValue::from_str(css_class));+        arr+    };++    element.class_list().add(&token);+}diff --git a/src/prelude.rs b/src/prelude.rsindex cbdf399..1ea766e 100644--- a/src/prelude.rs+++ b/src/prelude.rs@@ -1,8 +1,8 @@ pub use crate::{     CallbackRegistration, Component, ComponentStorage, Error, InitComponentFn, InitFn, Result,-    get_callback, get_component, get_component_element, get_component_id, get_cookie_value,-    get_element, get_elements, get_value, init_callbacks, inner_html, inner_text, rerender,-    set_value, try_get_value, try_inner_html, try_inner_text,+    add_css_class, get_callback, get_component, get_component_element, get_component_id,+    get_cookie_value, get_element, get_elements, get_value, init_callbacks, inner_html, inner_text,+    remove_css_class, rerender, set_value, try_get_value, try_inner_html, try_inner_text, };  pub use gloo::console::error;

Contact

Email: johan.mattsson.m@gmail.com
Mastodon: typo.social/@birdfont
GitHub: johanmattssonm
LinkedIn: johan-mattsson-2ab324112