leptos-components 0.2.9

RustLangES leptos components
Documentation
use components_core::{BASE_CLASS, concat};
use leptos::prelude::*;
use leptos::{IntoView, component, view};

#[derive(Default, Debug, PartialEq)]
pub enum Variant {
    #[default]
    N1,
    N2,
    N3,
    OP,
}

impl ToString for Variant {
    fn to_string(&self) -> String {
        match self {
            Variant::N1 => "N1".into(),
            Variant::N2 => "N2".into(),
            Variant::N3 => "N3".into(),
            Variant::OP => "Op".into(),
        }
    }
}

#[component]
pub fn Level(
    #[prop(into, optional)] variant: Variant,
    #[prop(into, optional)] class: String,
) -> impl IntoView {
    let variant = variant.to_string();
    let class = crate::tw!(
        concat!(BASE_CLASS, "-level"),
        format!("{BASE_CLASS}-level--{}", variant.to_lowercase()),
        class
    );

    view! {
        <div class=class>
            {variant}
        </div>
    }
}