Monthly calendar basics.

This commit is contained in:
Burak Kaan Köse
2025-01-06 21:56:33 +01:00
parent 125c277c88
commit 0f57a4dfd7
43 changed files with 915 additions and 336 deletions

View File

@@ -31,7 +31,9 @@ namespace Wino.Calendar.ViewModels
IRecipient<CalendarSettingsUpdatedMessage>,
IRecipient<CalendarItemTappedMessage>,
IRecipient<CalendarItemDoubleTappedMessage>,
IRecipient<CalendarItemRightTappedMessage>
IRecipient<CalendarItemRightTappedMessage>,
IRecipient<CalendarDisplayTypeChangedMessage>
{
#region Quick Event Creation
@@ -92,6 +94,8 @@ namespace Wino.Calendar.ViewModels
#region Data Initialization
public bool IsVerticalCalendar => StatePersistanceService.CalendarDisplayType == CalendarDisplayType.Month;
[ObservableProperty]
private DayRangeCollection _dayRanges = [];
@@ -161,13 +165,16 @@ namespace Wino.Calendar.ViewModels
private void UpdateAccountCalendarRequested(object sender, AccountCalendarViewModel e)
=> FilterActiveCalendars(DayRanges);
private void FilterActiveCalendars(IEnumerable<DayRangeRenderModel> dayRangeRenderModels)
private async void FilterActiveCalendars(IEnumerable<DayRangeRenderModel> dayRangeRenderModels)
{
var days = dayRangeRenderModels.SelectMany(a => a.CalendarDays);
await ExecuteUIThread(() =>
{
var days = dayRangeRenderModels.SelectMany(a => a.CalendarDays);
days.ForEach(a => a.EventsCollection.FilterByCalendars(AccountCalendarStateService.ActiveCalendars.Select(a => a.Id)));
days.ForEach(a => a.EventsCollection.FilterByCalendars(AccountCalendarStateService.ActiveCalendars.Select(a => a.Id)));
DisplayDetailsCalendarItemViewModel = null;
DisplayDetailsCalendarItemViewModel = null;
});
}
// TODO: Replace when calendar settings are updated.
@@ -178,6 +185,7 @@ namespace Wino.Calendar.ViewModels
{
CalendarDisplayType.Day => new DayCalendarDrawingStrategy(CurrentSettings),
CalendarDisplayType.Week => new WeekCalendarDrawingStrategy(CurrentSettings),
CalendarDisplayType.Month => new MonthCalendarDrawingStrategy(CurrentSettings),
_ => throw new NotImplementedException(),
};
}
@@ -831,5 +839,7 @@ namespace Wino.Calendar.ViewModels
// var calendarItems = GetCalendarItems(deletedItem.Id);
});
}
public void Receive(CalendarDisplayTypeChangedMessage message) => OnPropertyChanged(nameof(IsVerticalCalendar));
}
}