use dioxus::prelude::*;
use crate::types::Size;
#[derive(Clone, PartialEq, Props)]
pub struct InputGroupProps {
#[props(default)]
pub size: Size,
#[props(default)]
pub class: String,
pub children: Element,
}
#[component]
pub fn InputGroup(props: InputGroupProps) -> Element {
let size_class = match props.size {
Size::Md => String::new(),
s => format!(" input-group-{s}"),
};
let full_class = if props.class.is_empty() {
format!("input-group{size_class}")
} else {
format!("input-group{size_class} {}", props.class)
};
rsx! {
div { class: "{full_class}", {props.children} }
}
}
#[derive(Clone, PartialEq, Props)]
pub struct InputGroupTextProps {
#[props(default)]
pub class: String,
pub children: Element,
}
#[component]
pub fn InputGroupText(props: InputGroupTextProps) -> Element {
let full_class = if props.class.is_empty() {
"input-group-text".to_string()
} else {
format!("input-group-text {}", props.class)
};
rsx! {
span { class: "{full_class}", {props.children} }
}
}