react/
render_into_dom.rs

1pub trait RenderIntoDom {
2    fn render_into_dom(self, dom_element: &web_sys::Element);
3}
4
5impl<E: crate::IntoElement> RenderIntoDom for E {
6    #[inline]
7    fn render_into_dom(self, dom_element: &web_sys::Element) {
8        let el = self.into_element();
9        let el = el.unsafe_into_js_element();
10        react_sys::react_dom::render(&el, dom_element);
11        // TODO: if need to persist
12        // std::mem::forget(el);
13    }
14}
15
16pub fn render_into_dom_by_id<E: RenderIntoDom>(frender_element: E, dom_element_id: &str) {
17    use wasm_bindgen::UnwrapThrowExt;
18    let window = web_sys::window().unwrap_throw();
19    let document = window.document().unwrap_throw();
20
21    let el = document
22        .get_element_by_id(dom_element_id)
23        .expect_throw("No element is found with getElementById");
24
25    frender_element.render_into_dom(&el);
26}