canonrs-server 0.1.0

CanonRS server-side rendering support
#![allow(unreachable_pub, dead_code)]
use leptos::prelude::*;
use canonrs_core::primitives::{SwitchPrimitive, SwitchThumbPrimitive};
use canonrs_core::meta::{SelectionState, DisabledState};

#[component]
pub fn Switch(
    children: Children,
    #[prop(default = false)] checked: bool,
    #[prop(default = false)] disabled: bool,
    #[prop(into, default = String::new())] name: String,
    #[prop(into, default = String::new())] value: String,
    #[prop(into, default = String::new())] class: String,
) -> impl IntoView {
    let checked_state  = if checked  { SelectionState::Selected } else { SelectionState::Unselected };
    let disabled_state = if disabled { DisabledState::Disabled }  else { DisabledState::Enabled };
    view! {
        <SwitchPrimitive
            checked=checked_state
            disabled=disabled_state
            name=name
            value=value
            class=class
        >
            <SwitchThumbPrimitive />
            {children()}
        </SwitchPrimitive>
    }
}