From e1d1b2c80b0bbaa7cfca6d2ba66cf9c4fe763e49 Mon Sep 17 00:00:00 2001 From: Jeremy Wall Date: Sun, 9 Oct 2022 15:51:31 -0400 Subject: [PATCH] Setup event handling scaffolding --- macros/src/lib.rs | 9 +++++++++ wasm-web-component/src/lib.rs | 4 ++++ 2 files changed, 13 insertions(+) diff --git a/macros/src/lib.rs b/macros/src/lib.rs index bcc5528..3698381 100644 --- a/macros/src/lib.rs +++ b/macros/src/lib.rs @@ -143,6 +143,10 @@ fn expand_struct_trait_shim(struct_name: &Ident, observed_attrs: Literal) -> syn attributeChangedCallback(name, oldValue, newValue) {{ this._impl.attribute_changed_impl(this, name, oldValue, newValue); }} + + handleComponentEvent(evt) {{ + this._impl.handle_component_event_impl(this, evt); + }} }} customElements.define(\"{element_name}\", {name}); var element = customElements.get(\"{element_name}\"); @@ -211,6 +215,11 @@ fn expand_wasm_shim(struct_name: &Ident) -> syn::ItemImpl { use #trait_path; self.attribute_changed(element, name, old_value, new_value); } + + pub fn handle_component_event_impl(&self, element: &web_sys::HtmlElement, event: &web_sys::Event) { + use #trait_path; + self.handle_event(element, event); + } } } } diff --git a/wasm-web-component/src/lib.rs b/wasm-web-component/src/lib.rs index 627e34f..7974571 100644 --- a/wasm-web-component/src/lib.rs +++ b/wasm-web-component/src/lib.rs @@ -67,6 +67,10 @@ pub trait WebComponentBinding: WebComponentDef { ) { // noop } + + fn handle_event(&self, _element: &HtmlElement, _event: &Event) { + // noop + } } /// Marker trait used in the generated shims to assert that their are Rust implemtntations