Panics · P30 Calendar: views and recurrences stay inside jiff's range, the editor refuses edits past it

This commit is contained in:
ZacharyZhang-NY committed 2026-10-07 03:54:07 -04:00
1 parent a284c71e92
commit 8a0344d2c4
11 files changed
+238 -82

No files matched your search

+12 -6
View File
@@ -29,11 +29,14 @@ fn marks(events: &[Event], year: i16, zone: &TimeZone) -> BTreeMap<Date, usize>
for (ix, event) in events.iter().enumerate() {
let (first, last) = event.days(zone);
let mut day = first;
while day <= last {
loop {
if day.year() == year {
marks.entry(day).or_insert(ix);
}
day = day.tomorrow().expect("a day follows");
if day >= last {
break;
}
day = day.tomorrow().expect("a day before the last has one after");
}
}
marks
@@ -251,9 +254,10 @@ impl RenderOnce for YearView {
Rc::new(move |by, window, cx| {
let day = match by {
0 => today,
by => at
.checked_add(by.years())
.expect("a year lies on either side"),
by => match super::stepped(at, by.years(), "year view") {
Some(day) => day,
None => return,
},
};
pick(day, window, cx)
})
@@ -278,7 +282,9 @@ impl RenderOnce for YearView {
_ => return,
};
cx.stop_propagation();
pick(at.checked_add(by).expect("a day nearby"), window, cx)
if let Some(day) = super::stepped(at, by, "year view") {
pick(day, window, cx)
}
}
};
let tints = marks(&self.events, shown, &zone)