fix: use DateTime(day + 1) rather than duration for adding and substracting days

This commit is contained in:
Bart Ribbers 2024-07-18 14:06:25 +02:00
parent fcbb71f88e
commit dd4de52455
2 changed files with 12 additions and 8 deletions

View file

@ -15,10 +15,16 @@ List<AvailabilityModel> getDefaultLocalAvailabilitiesForUser() {
AvailabilityModel( AvailabilityModel(
id: availability.$1, id: availability.$1,
userId: "", userId: "",
// TODO(Joey): Even though this is testdata, Never use .add(duration) startDate: DateTime(
// to move to the next day. currentMonth.year,
startDate: currentMonth.add(Duration(days: availability.$2)), currentMonth.month,
endDate: currentMonth.add(Duration(days: availability.$2)), currentMonth.day + availability.$2,
),
endDate: DateTime(
currentMonth.year,
currentMonth.month,
currentMonth.day + availability.$2,
),
breaks: [], breaks: [],
templateId: availability.$3, templateId: availability.$3,
), ),

View file

@ -250,11 +250,9 @@ List<CalendarDay> _generateCalendarDays(
required bool isNextMonth, required bool isNextMonth,
}) { }) {
for (var i = 0; i < count; i++) { for (var i = 0; i < count; i++) {
// TODO(Joey): Never increase days with duration, always use internal
// datetime math.
var day = isNextMonth var day = isNextMonth
? startDay.add(Duration(days: i + 1)) ? DateTime(startDay.year, startDay.month, startDay.day + i + 1)
: startDay.subtract(Duration(days: count - i)); : DateTime(startDay.year, startDay.month, startDay.day - count - 1);
var isSelected = selectedRange != null && var isSelected = selectedRange != null &&
!day.isBefore(selectedRange.start) && !day.isBefore(selectedRange.start) &&
!day.isAfter(selectedRange.end); !day.isAfter(selectedRange.end);