use leptos::*; use stylers::style_sheet; #[component] pub fn Card( cx: Scope, #[prop(default = None)] title: Option, #[prop(default = None)] header: Option, #[prop(default = None)] header_extra: Option, children: Children, #[prop(default = None)] footer: Option, ) -> impl IntoView { let class_name = style_sheet!("./src/card/card.css"); view! { cx, class=class_name,
{ if header.is_some() || title.is_some() { view! { cx, class=class_name,
{ if let Some(header) = header { view! { cx, <> { header(cx) } } } else { view! { cx, <> { title } } } }
{ if let Some(header_extra) = header_extra { view! { cx, class=class_name,
{ header_extra(cx)}
}.into() } else { None } }
}.into() } else { None } }
{ children(cx) }
{ if let Some(footer) = footer { view! { cx, class=class_name, }.into() } else { None } }
} }