Components / Scheduler
Scheduler
Timeline of resources: drag, resize and draw events, zoom the time axis.
Example
The component itself, running in WebAssembly, beside its code in a playground. Try it.
Code
use ravenrs::prelude::*;
fn scheduler() -> impl View {
let first = Date::new(2026, 11, 1).unwrap_or_else(|| unreachable!("a real date"));
let at = |day: i64| TimePoint::from_date(first).plus_days(day);
let axis = State::new(TimeAxis::days(first, 30));
Scheduler::new(axis.binding())
.resources([Resource::new(1, "Ana"), Resource::new(2, "Bruno"), Resource::new(3, "Carla")])
.events([
SchedulerEvent::new(1, 1, at(1), at(5), "Vacation").tone(Tone::Success),
SchedulerEvent::new(2, 1, at(3), at(8), "Workshop"),
SchedulerEvent::new(3, 2, at(2), at(6), "On call").tone(Tone::Warning),
])
.on_change(|change| println!("{change:?}"))
}