diff --git a/Cargo.toml b/Cargo.toml index 773e996..70e1b5a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "bootstrap-rs" -version = "0.2.11" +version = "0.2.12" authors = ["Thomas Gideon "] edition = "2018" @@ -8,7 +8,7 @@ edition = "2018" crate-type = ["cdylib", "rlib"] [dependencies] -yew = "~0.16.2" +yew = "~0.17.2" log = "~0.4.8" serde_json = "^1.0.40" serde = "^1.0.98" @@ -16,5 +16,5 @@ anyhow = "^1.0.28" wasm-bindgen = "~0.2.61" web-sys = "~0.3.38" wasm-logger = "~0.2.0" -yew-router = "~0.13.0" -yew-components = "~0.1.2" +yew-router = "~0.14.0" +yew-components = "~0.2.0" diff --git a/src/alert/mod.rs b/src/alert/mod.rs index cae4692..11aafd8 100644 --- a/src/alert/mod.rs +++ b/src/alert/mod.rs @@ -29,7 +29,7 @@ impl Component for Alert { fn view(&self) -> Html { let html = html! {
- { self.props.children.render() } + { self.props.children.clone() } }; render::render_with_prefix(&self.props, self.calculate_prefix(), html) diff --git a/src/card/body.rs b/src/card/body.rs index 9e37748..5d32aac 100644 --- a/src/card/body.rs +++ b/src/card/body.rs @@ -41,7 +41,6 @@ mod test { let expected = html! { }; diff --git a/src/card/header.rs b/src/card/header.rs index d57c89a..3b22afd 100644 --- a/src/card/header.rs +++ b/src/card/header.rs @@ -38,7 +38,6 @@ mod test { let expected = html! {

- <>

}; diff --git a/src/container.rs b/src/container.rs index 50b6ad2..338d801 100644 --- a/src/container.rs +++ b/src/container.rs @@ -41,7 +41,6 @@ mod tests { }; let expected = html! {
- <>
}; assert_eq!(expected, container.view()); diff --git a/src/input/textarea.rs b/src/input/textarea.rs index ff331fa..7329912 100644 --- a/src/input/textarea.rs +++ b/src/input/textarea.rs @@ -56,18 +56,19 @@ fn extract_state(props: &Props) -> String { if props.children.is_empty() { props.value.clone() } else { - let node = props.children.render(); - if let VNode::VText(text) = node { - text.text - } else if let VNode::VList(list) = node { - list.iter().fold(String::new(), |mut buf, node| { - if let VNode::VText(text) = node { - buf.push_str(&text.text) - } - buf - }) - } else { - props.value.clone() - } + props.children.iter().fold(String::new(), |mut buf, node| { + if let VNode::VText(text) = node { + buf.push_str(&text.text); + } else if let VNode::VList(list) = node { + let text = list.iter().fold(String::new(), |mut buf, node| { + if let VNode::VText(text) = node { + buf.push_str(&text.text) + } + buf + }); + buf.push_str(&text); + } + buf + }) } } diff --git a/src/jumbotron.rs b/src/jumbotron.rs index 59aee3d..e5a7e58 100644 --- a/src/jumbotron.rs +++ b/src/jumbotron.rs @@ -24,7 +24,7 @@ impl Component for Jumbotron { fn view(&self) -> Html { let html = html! {
- { self.props.children.render() } + { self.props.children.clone() }
}; render::render_with_prefix(&self.props, "jumbotron", html) diff --git a/src/render.rs b/src/render.rs index 7c4d872..df940c4 100644 --- a/src/render.rs +++ b/src/render.rs @@ -20,7 +20,7 @@ pub(crate) fn render_with_prefix<'a, B: Into>, C: Into Html { html! {
- { children.render() } + { for children.iter() }
} } @@ -28,7 +28,7 @@ pub(crate) fn div(children: &Children) -> Html { pub(crate) fn p(children: &Children) -> Html { html! {

- { children.render() } + { for children.iter() }

} }