Clone in a terminal:
Commit dfe7085
Johan Mattsson - 2026-07-08T16:44:53+00:00
dfe7085cdbf3d54e5594fe83f68063fd3605b824johan.mattsson.m@gmail.com

New compoent self (Arc<Mutex<Data>>)

Changed files (4)

Diff

diff --git a/Cargo.toml b/Cargo.tomlindex 11a6544..71c241a 100644--- a/Cargo.toml+++ b/Cargo.toml@@ -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", "CssStyleDeclaration"] }+web-sys = { version = "0.3.99", features = ["Document", "HtmlDocument", "Element", "HtmlElement", "HtmlInputElement", "NodeList", "CssStyleDeclaration", "DomTokenList"] } serde = { version = "1.0", features = ["derive"] } serde-wasm-bindgen = "0.5" inventory = "0.3.24"diff --git a/examples/counter-component/Cargo.lock b/examples/counter-component/Cargo.lockindex 8284c65..f8a1dbf 100644--- a/examples/counter-component/Cargo.lock+++ b/examples/counter-component/Cargo.lock@@ -466,7 +466,7 @@ dependencies = [  [[package]] name = "kaja-web"-version = "1.0.2"+version = "1.0.3" dependencies = [  "gloo",  "gloo-console",diff --git a/examples/counter-component/src/counter.rs b/examples/counter-component/src/counter.rsindex 96c3590..f41cb0c 100644--- a/examples/counter-component/src/counter.rs+++ b/examples/counter-component/src/counter.rs@@ -5,8 +5,14 @@ pub struct Counter {     total_num_clicks: i32, } -impl Component for Counter {+impl Component for Arc<Mutex<Counter>> {     fn connected(&mut self, element: HtmlElement) {+        log!(+            "Connected component",+            self.get_component_name(),+            self.get_element_id()+        );+         self.render(&element);     } @@ -74,9 +80,10 @@ pub fn decrement(id: String) { }  fn increment_total(id: &str) {-    let mut total_clicks = get_value!(id, Counter.total_num_clicks);-    total_clicks += 1;-    set_value!(&id, Counter.total_num_clicks, total_clicks);+    let component_arc = get_component_arc(id);+    let mut component = component_arc.lock().unwrap();+    component.total_num_clicks += 1;+     log!("total clicks: ", total_clicks); } diff --git a/examples/counter-component/src/main_component.rs b/examples/counter-component/src/main_component.rsindex 8d24a3b..6633284 100644--- a/examples/counter-component/src/main_component.rs+++ b/examples/counter-component/src/main_component.rs@@ -3,7 +3,7 @@ use kaja_web::prelude::*; #[component("main-component")] pub struct Main; -impl Component for Main {+impl Component for Arc<Mutex<Main>> {     fn connected(&mut self, element: HtmlElement) {         self.render(&element);     }

Contact

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