yew_bs/components/
close_button.rs

1use yew::prelude::*;
2#[derive(Properties, PartialEq)]
3pub struct CloseButtonProps {
4    #[prop_or_default]
5    pub onclick: Option<Callback<MouseEvent>>,
6    #[prop_or_default]
7    pub disabled: bool,
8    #[prop_or_default]
9    pub white: bool,
10    #[prop_or_default]
11    pub class: Option<AttrValue>,
12    #[prop_or_default]
13    pub aria_label: Option<AttrValue>,
14    #[prop_or_default]
15    pub node_ref: NodeRef,
16}
17#[function_component(CloseButton)]
18pub fn close_button(props: &CloseButtonProps) -> Html {
19    let mut classes = Classes::new();
20    classes.push("btn-close");
21    if props.white {
22        classes.push("btn-close-white");
23    }
24    if let Some(class) = &props.class {
25        classes.push(class.to_string());
26    }
27    let aria_label = props.aria_label.clone().unwrap_or_else(|| "Close".into());
28    html! {
29        < button type = "button" class = { classes } disabled = { props.disabled }
30        onclick = { props.onclick.clone() } aria - label = { aria_label } ref = { props
31        .node_ref.clone() } > < span aria - hidden = "true" > { "×" } </ span > </
32        button >
33    }
34}