use yew::prelude::*;
#[derive(Clone, PartialEq, Properties)]
pub struct HintProperties {
#[prop_or_default]
pub id: AttrValue,
#[prop_or_default]
pub actions: Option<Html>,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub children: Html,
}
#[function_component(Hint)]
pub fn hint(props: &HintProperties) -> Html {
let mut class = props.class.clone();
class.push("pf-v5-c-hint");
html! (
<div
id={props.id.clone()}
{class}
>
if let Some(actions) = &props.actions {
<div class="pf-v5-c-hint__actions">{ actions.clone() }</div>
}
{ props.children.clone() }
</div>
)
}
#[derive(Clone, PartialEq, Properties)]
pub struct HintTitleProperties {
#[prop_or_default]
pub id: AttrValue,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub children: Html,
}
#[function_component(HintTitle)]
pub fn hint_title(props: &HintTitleProperties) -> Html {
let mut class = props.class.clone();
class.push("pf-v5-c-hint__title");
html! (
<div
id={props.id.clone()}
{class}
>
{ props.children.clone() }
</div>
)
}
#[derive(Clone, PartialEq, Properties)]
pub struct HintBodyProperties {
#[prop_or_default]
pub id: AttrValue,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub children: Html,
}
#[function_component(HintBody)]
pub fn hint_body(props: &HintBodyProperties) -> Html {
let mut class = props.class.clone();
class.push("pf-v5-c-hint__body");
html! (
<div
id={props.id.clone()}
{class}
>
{ props.children.clone() }
</div>
)
}
#[derive(Clone, PartialEq, Properties)]
pub struct HintFooterProperties {
#[prop_or_default]
pub id: AttrValue,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub children: Html,
}
#[function_component(HintFooter)]
pub fn hint_footer(props: &HintFooterProperties) -> Html {
let mut class = props.class.clone();
class.push("pf-v5-c-hint__footer");
html! (
<div
id={props.id.clone()}
{class}
>
{ props.children.clone() }
</div>
)
}