yew_bs/components/
badge.rs

1use yew::prelude::*;
2use crate::components::common::Variant;
3#[derive(Properties, PartialEq)]
4pub struct BadgeProps {
5    #[prop_or_default]
6    pub children: Children,
7    #[prop_or(Variant::Primary)]
8    pub variant: Variant,
9    #[prop_or_default]
10    pub pill: bool,
11    #[prop_or_default]
12    pub class: Option<AttrValue>,
13}
14#[function_component(Badge)]
15pub fn badge(props: &BadgeProps) -> Html {
16    let mut classes = Classes::new();
17    classes.push("badge");
18    classes.push(format!("bg-{}", props.variant.as_str()));
19    if props.pill {
20        classes.push("rounded-pill");
21    }
22    if let Some(class) = &props.class {
23        classes.push(class.to_string());
24    }
25    html! {
26        < span class = { classes } > { for props.children.iter() } </ span >
27    }
28}