mirror of
https://github.com/zaphar/wasm-web-components.git
synced 2025-07-21 19:40:30 -04:00
bug: Fix some bugs in the init wiring
This commit is contained in:
parent
76baa1871e
commit
f41a9d3100
@ -142,11 +142,10 @@ fn expand_wc_struct_trait_shim(
|
|||||||
"class {name} extends HTMLElement {{
|
"class {name} extends HTMLElement {{
|
||||||
constructor() {{
|
constructor() {{
|
||||||
super();
|
super();
|
||||||
var self = this;
|
this._impl = impl();
|
||||||
self._impl = impl();
|
this._impl.init_impl(this);
|
||||||
self._impl.init();
|
for (const t of this.observedEvents()) {{
|
||||||
for (const t of self.getObservedEvents()) {{
|
this.addEventListener(t, function(evt) {{ this.handleComponentEvent(evt); }} );
|
||||||
self.addEventListener(t, function(evt) {{ self.handleComponentEvent(evt); }} );
|
|
||||||
}}
|
}}
|
||||||
}}
|
}}
|
||||||
|
|
||||||
@ -217,6 +216,12 @@ fn expand_wasm_shim(struct_name: &Ident) -> syn::ItemImpl {
|
|||||||
Self::default()
|
Self::default()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[wasm_bindgen::prelude::wasm_bindgen]
|
||||||
|
pub fn init_impl(&self, element: &web_sys::HtmlElement) {
|
||||||
|
use #trait_path;
|
||||||
|
self.init(element);
|
||||||
|
}
|
||||||
|
|
||||||
#[wasm_bindgen::prelude::wasm_bindgen]
|
#[wasm_bindgen::prelude::wasm_bindgen]
|
||||||
pub fn connected_impl(&self, element: &web_sys::HtmlElement) {
|
pub fn connected_impl(&self, element: &web_sys::HtmlElement) {
|
||||||
use #trait_path;
|
use #trait_path;
|
||||||
|
@ -123,15 +123,15 @@ pub trait WebComponentDef: IntoWasmAbi + Default {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn create() -> Element {
|
fn create() -> Element {
|
||||||
Self::create_in_window(window().unwrap())
|
Self::create_in_window(window().expect("Failed to get window"))
|
||||||
}
|
}
|
||||||
|
|
||||||
fn create_in_window(window: Window) -> Element {
|
fn create_in_window(window: Window) -> Element {
|
||||||
window
|
window
|
||||||
.document()
|
.document()
|
||||||
.unwrap()
|
.expect("Failed to get document")
|
||||||
.create_element(Self::element_name())
|
.create_element(Self::element_name())
|
||||||
.unwrap()
|
.expect("Failed to create element")
|
||||||
}
|
}
|
||||||
|
|
||||||
fn element_name() -> &'static str;
|
fn element_name() -> &'static str;
|
||||||
@ -304,7 +304,7 @@ mod tests {
|
|||||||
#[web_component(
|
#[web_component(
|
||||||
class_name = "MyElement",
|
class_name = "MyElement",
|
||||||
element_name = "my-element",
|
element_name = "my-element",
|
||||||
observed_attrs = "['class']"
|
observed_attrs = "['class']",
|
||||||
)]
|
)]
|
||||||
pub struct MyElementImpl {}
|
pub struct MyElementImpl {}
|
||||||
|
|
||||||
@ -383,7 +383,6 @@ mod tests {
|
|||||||
"Added a text node on adopt"
|
"Added a text node on adopt"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
// Then we can have the new document adopt this node.
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#[wasm_bindgen_test]
|
#[wasm_bindgen_test]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user