Imap flow.

This commit is contained in:
Burak Kaan Köse
2026-04-19 20:13:09 +02:00
parent 496c7735f7
commit 3bd0b69429
16 changed files with 277 additions and 24 deletions
@@ -0,0 +1,26 @@
namespace Wino.Core.Domain.Models.Navigation;
public enum ProviderSelectionHostMode
{
Wizard,
SettingsAddAccount
}
public sealed class ProviderSelectionNavigationContext
{
public ProviderSelectionHostMode HostMode { get; init; } = ProviderSelectionHostMode.Wizard;
public static ProviderSelectionNavigationContext CreateForWizard()
=> new()
{
HostMode = ProviderSelectionHostMode.Wizard
};
public static ProviderSelectionNavigationContext CreateForSettingsAddAccount()
=> new()
{
HostMode = ProviderSelectionHostMode.SettingsAddAccount
};
public bool IsWizardHost => HostMode == ProviderSelectionHostMode.Wizard;
}
@@ -141,7 +141,9 @@ public static class SettingsNavigationInfoProvider
public static SettingsNavigationItemInfo GetInfo(WinoPage pageType, string manageAccountsDescription = "")
{
var rootPage = GetRootPage(pageType);
return GetNavigationItems(manageAccountsDescription).First(item => item.PageType == rootPage);
return GetNavigationItems(manageAccountsDescription)
.FirstOrDefault(item => item.PageType == rootPage)
?? GetNavigationItems(manageAccountsDescription).First(item => item.PageType == WinoPage.SettingOptionsPage);
}
public static string GetPageTitle(WinoPage pageType)
@@ -180,6 +182,9 @@ public static class SettingsNavigationInfoProvider
WinoPage.MailCategoryManagementPage => WinoPage.ManageAccountsPage,
WinoPage.SignatureManagementPage => WinoPage.ManageAccountsPage,
WinoPage.ImapCalDavSettingsPage => WinoPage.ManageAccountsPage,
WinoPage.ProviderSelectionPage => WinoPage.ManageAccountsPage,
WinoPage.SpecialImapCredentialsPage => WinoPage.ManageAccountsPage,
WinoPage.AccountSetupProgressPage => WinoPage.ManageAccountsPage,
WinoPage.CreateEmailTemplatePage => WinoPage.EmailTemplatesPage,
WinoPage.CalendarSettingsPage => WinoPage.CalendarPreferenceSettingsPage,
WinoPage.CalendarAccountSettingsPage => WinoPage.CalendarPreferenceSettingsPage,