leptos_components/
tag.rs

1use components_core::{BASE_CLASS, concat};
2use leptos::prelude::*;
3use leptos::{IntoView, component, view};
4
5#[component]
6pub fn Tag(
7    #[prop(into)] label: String,
8    #[prop(into, optional)] selected: bool,
9    #[prop(into, optional)] class: String,
10) -> impl IntoView {
11    let class = crate::tw!(
12        selected
13            .then_some(concat!(BASE_CLASS, "-tag--selected"),)
14            .or_else(|| Some(concat!(BASE_CLASS, "-tag--default"),)),
15        concat!(BASE_CLASS, "-tag"),
16        class
17    );
18
19    view! {
20        <div class={class}>
21            {label}
22        </div>
23    }
24}