Files
Wino-Mail/Wino.Mail.WinUI/Selectors/NavigationMenuTemplateSelector.cs
T

66 lines
3.1 KiB
C#
Raw Normal View History

2025-11-15 14:52:01 +01:00
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Wino.Core.Domain.MenuItems;
namespace Wino.Mail.WinUI.Selectors;
public partial class NavigationMenuTemplateSelector : DataTemplateSelector
{
public DataTemplate MenuItemTemplate { get; set; } = null!;
public DataTemplate ContactsMenuItemTemplate { get; set; } = null!;
public DataTemplate ClickableAccountMenuTemplate { get; set; } = null!;
public DataTemplate MergedAccountTemplate { get; set; } = null!;
public DataTemplate MergedAccountFolderTemplate { get; set; } = null!;
public DataTemplate MergedAccountMoreExpansionItemTemplate { get; set; } = null!;
public DataTemplate FolderMenuTemplate { get; set; } = null!;
public DataTemplate SettingsItemTemplate { get; set; } = null!;
2026-03-08 11:22:41 +01:00
public DataTemplate StoreUpdateItemTemplate { get; set; } = null!;
public DataTemplate MoreItemsFolderTemplate { get; set; } = null!;
public DataTemplate RatingItemTemplate { get; set; } = null!;
public DataTemplate CreateNewFolderTemplate { get; set; } = null!;
public DataTemplate SeperatorTemplate { get; set; } = null!;
public DataTemplate NewMailTemplate { get; set; } = null!;
2026-03-12 14:55:07 +01:00
public DataTemplate NewContactTemplate { get; set; } = null!;
2026-03-11 01:39:32 +01:00
public DataTemplate CalendarNewEventTemplate { get; set; } = null!;
public DataTemplate CategoryItemsTemplate { get; set; } = null!;
public DataTemplate FixAuthenticationIssueTemplate { get; set; } = null!;
public DataTemplate FixMissingFolderConfigTemplate { get; set; } = null!;
2025-11-15 14:52:01 +01:00
protected override DataTemplate SelectTemplateCore(object item)
{
2026-03-11 01:39:32 +01:00
if (item is NewCalendarEventMenuItem)
return CalendarNewEventTemplate;
2026-03-12 14:55:07 +01:00
else if (item is NewContactMenuItem)
return NewContactTemplate;
2026-03-11 01:39:32 +01:00
else if (item is NewMailMenuItem)
2025-11-15 14:52:01 +01:00
return NewMailTemplate;
else if (item is ContactsMenuItem)
return ContactsMenuItemTemplate;
else if (item is SettingsItem)
return SettingsItemTemplate;
2026-03-08 11:22:41 +01:00
else if (item is StoreUpdateMenuItem)
return StoreUpdateItemTemplate;
2025-11-15 14:52:01 +01:00
else if (item is SeperatorItem)
return SeperatorTemplate;
else if (item is AccountMenuItem)
2025-11-15 14:52:01 +01:00
// Merged inbox account menu items must be nested.
return ClickableAccountMenuTemplate;
else if (item is RateMenuItem)
return RatingItemTemplate;
else if (item is MergedAccountMenuItem)
return MergedAccountTemplate;
else if (item is MergedAccountMoreFolderMenuItem)
return MergedAccountMoreExpansionItemTemplate;
else if (item is MergedAccountFolderMenuItem)
return MergedAccountFolderTemplate;
else if (item is FolderMenuItem)
return FolderMenuTemplate;
else if (item is FixAccountIssuesMenuItem fixAccountIssuesMenuItem)
return fixAccountIssuesMenuItem.Account.AttentionReason == Wino.Core.Domain.Enums.AccountAttentionReason.MissingSystemFolderConfiguration
? FixMissingFolderConfigTemplate : FixAuthenticationIssueTemplate;
return MenuItemTemplate;
2025-11-15 14:52:01 +01:00
}
}
2026-03-08 11:22:41 +01:00