use crate::*;
pub fn page_signals() -> VirtualNode {
let count: Signal<i32> = use_signal(|| 0);
html! {
div {
class: c_page_container()
{ page_header("Reactive Signals", "Counters and badges driven by reactive state.") }
my_card {
title: "Counter"
div {
class: c_counter_row()
div {
class: c_counter_text()
"Count: "
span {
id: "counter"
class: c_counter_value()
count
}
}
primary_button {
label: "Increment"
onclick: counter_on_increment(count)
"Increment"
}
}
}
my_card {
title: "Badges"
p {
class: c_badge_hint()
"Status indicators with click support"
}
div {
class: c_badge_row()
my_badge {
color: "#059669"
text: "Success"
on_click: badge_on_click("Success")
}
my_badge {
color: "#dc2626"
text: "Error"
on_click: badge_on_click("Error")
}
my_badge {
color: "#d97706"
text: "Warning"
}
my_badge {
color: "#6b7280"
text: "Info"
}
}
}
}
}
}