Clone in a terminal:
Commit 954a515
Johan Mattsson - 2026-06-01T19:02:24+00:00
954a51519f926433a22fe3e5580693e30849c125johan.mattsson.m@gmail.com

Check is callback already is registerd

Changed files (1)

Diff

diff --git a/src/lib.rs b/src/lib.rsindex 8cfc198..98e9bcf 100644--- a/src/lib.rs+++ b/src/lib.rs@@ -52,6 +52,19 @@ pub fn callback(attr: TokenStream, item: TokenStream) -> TokenStream {                 if let Some(window) = web_sys::window() {                     #callback_closure; +                    let previous = match Reflect::get(window.as_ref(), &JsValue::from_str(#register_fn_name_lit)) {+                        Ok(v) => v,+                        Err(e) => {+                            ::gloo::console::log!("Callback registration check failed:", e);+                            JsValue::UNDEFINED+                        }+                    };++                    if !previous.is_undefined() {+                        ::gloo::console::log!("Callback already registered: {}. Callbacks are global on the entire document", #register_fn_name_lit);+                        return;+                    }+                     let _ = Reflect::set(                         window.as_ref(),                         &JsValue::from_str(#register_fn_name_lit),

Contact

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