rustcn_ui/input/
mod.rs

1//ui/input/mod.rs
2use dioxus::prelude::*;
3
4mod props;
5pub use props::InputProps;
6
7mod style;
8pub use style::{get_size_class, get_variant_class, BASE_CLASS};
9
10pub fn Input(props: InputProps) -> Element {
11    let InputProps {
12        class,
13        variant,
14        size,
15        placeholder,
16        // onchange,
17    } = props;
18
19    // Match the provided variant to its corresponding CSS class
20    let variant_class = get_variant_class(&variant);
21
22    // Match the provided size to its corresponding CSS class
23    let size_class = get_size_class(&size);
24
25    let combined_class = format!("{} {} {} {}", BASE_CLASS, variant_class, size_class, class);
26
27    rsx! {
28        input {
29            class: "{combined_class}",
30            placeholder: "{placeholder}",
31        }
32    }
33}