diff --git a/src/app.rs b/src/app.rs index fcc4fea..6df472f 100644 --- a/src/app.rs +++ b/src/app.rs @@ -1,15 +1,15 @@ use crate::buttons::doc::*; use crate::collapse::doc::*; use crate::icon::doc::*; -use crate::menu::*; -use crate::switch::doc::SwitchDoc; +use crate::switch::doc::*; use crate::tree::doc::*; +use crate::{ConditionalClass, Menu, MenuItem}; use yew::prelude::*; pub struct App { link: ComponentLink, doc_menu: DocMenu, - dark_theme: bool, + dark_theme: ConditionalClass, } pub enum Msg { @@ -23,7 +23,7 @@ impl Component for App { fn create(_: Self::Properties, link: ComponentLink) -> Self { App { - dark_theme: true, + dark_theme: true.into(), doc_menu: DocMenu::Button, link, } @@ -31,7 +31,7 @@ impl Component for App { fn update(&mut self, msg: Self::Message) -> ShouldRender { match msg { - Msg::ToggleLight => self.dark_theme ^= true, + Msg::ToggleLight => *self.dark_theme ^= true, Msg::GoToMenu(doc_menu) => { self.doc_menu = doc_menu; } @@ -44,13 +44,8 @@ impl Component for App { } fn view(&self) -> Html { - let mut class = Classes::from("docs-app"); - if self.dark_theme { - class.push("bp3-dark"); - } - html! { -
+
diff --git a/src/buttons/mod.rs b/src/buttons/mod.rs index 3c13d28..7a203e8 100644 --- a/src/buttons/mod.rs +++ b/src/buttons/mod.rs @@ -1,7 +1,7 @@ #[cfg(feature = "doc")] pub mod doc; -use crate::{Icon, IconName, Intent}; +use crate::{ConditionalClass, Icon, IconName, Intent}; use yew::prelude::*; pub struct Button { @@ -11,9 +11,9 @@ pub struct Button { #[derive(Clone, PartialEq, Properties)] pub struct Props { #[prop_or_default] - pub fill: bool, + pub fill: ConditionalClass, #[prop_or_default] - pub minimal: bool, + pub minimal: ConditionalClass, #[prop_or_default] pub icon: Option, #[prop_or_default] @@ -47,17 +47,16 @@ impl Component for Button { } fn view(&self) -> Html { - let mut class = Classes::from("bp3-button"); - if self.props.fill { - class.push("bp3-fill"); - } - if self.props.minimal { - class.push("bp3-minimal"); - } - class = class.extend(&self.props.intent); - html! { -