yew_bs/components/
badge.rs1use 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}