euv_ui/component/button/view/
fn.rs1use crate::*;
2
3#[component]
17pub fn euv_button(node: VirtualNode<EuvButtonProps>) -> VirtualNode {
18 let EuvButtonProps {
19 variant,
20 label,
21 onclick: click_handler,
22 disabled,
23 }: EuvButtonProps = node.try_get_props().unwrap_or_default();
24 let children: VirtualNode = node.get_child_node();
25 let content: VirtualNode = match children {
26 VirtualNode::Empty => VirtualNode::Text(TextNode::new(label.to_string(), None)),
27 other => other,
28 };
29 match variant {
30 EuvButtonVariant::Primary => html! {
31 button {
32 class: c_euv_button_primary_md()
33 disabled: disabled.get()
34 onclick: click_handler
35 content
36 }
37 },
38 EuvButtonVariant::Outline => html! {
39 button {
40 class: c_euv_button_outline_md()
41 disabled: disabled.get()
42 onclick: click_handler
43 content
44 }
45 },
46 }
47}