use crate::assets::button_style::BUTTON_STYLES;
use crate::enums::basic_button_enums::{ButtonColor, ButtonProps, ButtonUrl};
use dioxus::prelude::*;
#[component]
pub fn BasicButton(color: ButtonColor, label: String, link: Option<ButtonUrl>) -> Element {
let style_tag = rsx! {
style { "{BUTTON_STYLES}" }
};
rsx! {
div {
{style_tag}
if let Some(link) = link {
Link { to: "{link.url}",
button { class: "{color.to_css_class()}", "{label}" }
}
} else {
button { class: "{color.to_css_class()}", "{label}" }
}
}
}
}
#[component]
pub fn EventButton(props: ButtonProps) -> Element {
let style_tag = rsx! {
style { "{BUTTON_STYLES}" }
};
rsx! {
div {
{style_tag}
button {
class: "{props.color.to_css_class()}",
onclick: move |evt| (props.onclick)(evt),
{props.label}
}
}
}
}