use leptos::prelude::*;
#[component]
pub fn Slot(
#[prop(into, optional)] class: Signal<String>,
#[prop(into, optional)] style: Option<String>,
#[prop(into, optional)] id: Signal<String>,
#[prop(into, optional)] onclick: Option<String>,
#[prop(into, optional)] data_slot: Signal<String>,
#[prop(optional)] as_child: Option<SlotChild>,
children: Children,
) -> impl IntoView {
match as_child {
Some(SlotChild::A { href }) => view! {
<a class=class style=style id=id href=href onclick=onclick data-slot=data_slot>
{children()}
</a>
}
.into_any(),
None => view! {
<div class=class style=style id=id onclick=onclick data-slot=data_slot>
{children()}
</div>
}
.into_any(),
}
}
#[derive(Clone, Debug)]
pub enum SlotChild {
A { href: String },
}