Components / Wizard
Wizard
A task in steps that can refuse to be left.
Example
The component itself, running in WebAssembly, beside its code in a playground. Try it.
Code
use ravenrs::prelude::*;
fn wizard() -> impl View {
let step = State::new(0);
let name = State::new(String::new());
let filled = name.clone();
Wizard::new(
step.binding(),
vec![
WizardStep::new("Account", FormField::new("Name", TextField::new(name.binding()))).check(
move || {
if filled.get().trim().is_empty() { Err("Fill in the name".to_owned()) } else { Ok(()) }
},
),
WizardStep::new("Opening balance", Text::new("How much it holds today")),
WizardStep::new("Review", Text::new("Everything is ready")),
],
)
.on_finish(|| {})
}