Components / ButtonGroup
ButtonGroup
Buttons glued side by side, as one control.
Example
The component itself, running in WebAssembly, beside its code in a playground. Try it.
Code
use ravenrs::prelude::*;
fn button_group() -> impl View {
let period = State::new(0);
view_fn(move || {
let chosen = period.get();
let item = |index, label: &str| {
let period = period.clone();
let style = if chosen == index { ButtonStyle::Primary } else { ButtonStyle::Secondary };
Button::new(label).style(style).on_click(move || period.set(index))
};
ButtonGroup::new([item(0, "Day"), item(1, "Week"), item(2, "Month")]).label("Period")
})
}