use yew::prelude::*;
use crate::util::{Color, TextColor};
use crate::component::card::CardBody;
#[derive(Properties, Clone, PartialEq)]
pub struct CardProps {
#[prop_or_default]
pub children: Children,
#[prop_or_default]
pub class: Classes,
#[prop_or_default]
pub bg: Option<Color>,
#[prop_or_default]
pub text: Option<TextColor>,
#[prop_or_default]
pub border: Option<Color>,
#[prop_or_default]
pub body: bool,
}
#[function_component]
pub fn Card(props: &CardProps) -> Html {
let mut classes = props.class.clone();
classes.push("card");
if let Some(color) = &props.bg {
classes.push(format!("bg-{}", color));
}
if let Some(color) = &props.text {
classes.push(format!("text-{}", color));
}
if let Some(color) = &props.border {
classes.push(format!("border-{}", color));
}
html! {
<div class={classes}>
if props.body {
<CardBody>{ props.children.clone() }</CardBody>
} else {
{ props.children.clone() }
}
</div>
}
}