Files
Wino-Mail/Wino.Mail.WinUI/Views/SettingOptionsPage.xaml.cs
T

83 lines
2.5 KiB
C#

using CommunityToolkit.WinUI.Controls;
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
using Wino.Core.Domain.Enums;
using Wino.Core.Domain.Models.Settings;
using Wino.Core.ViewModels.Data;
using Wino.Mail.ViewModels.Data;
using Wino.Views.Abstract;
namespace Wino.Views.Settings;
public sealed partial class SettingOptionsPage : SettingOptionsPageAbstract
{
public SettingOptionsPage()
{
InitializeComponent();
}
private void SettingOptionClicked(object sender, RoutedEventArgs e)
{
WinoPage? page = sender switch
{
FrameworkElement element when element.Tag is WinoPage p => p,
_ => null
};
if (page.HasValue)
{
ViewModel.NavigateSubDetailCommand.Execute(page.Value);
}
}
private void AccountSettingClicked(object sender, RoutedEventArgs e)
{
if (sender is SettingsCard settingsCard && settingsCard.CommandParameter is AccountProviderDetailViewModel account)
{
ViewModel.NavigateToAccount(account);
}
}
private void MergedAccountSettingClicked(object sender, RoutedEventArgs e)
{
if (sender is SettingsCard settingsCard && settingsCard.CommandParameter is MergedAccountProviderDetailViewModel account)
{
ViewModel.NavigateToAccount(account);
}
}
private void AddAccountSettingClicked(object sender, RoutedEventArgs e)
{
ViewModel.NavigateToAddAccount();
}
private void ManageAccountsClicked(object sender, RoutedEventArgs e)
{
ViewModel.NavigateToManageAccounts();
}
private void SettingsSearchTextChanged(AutoSuggestBox sender, AutoSuggestBoxTextChangedEventArgs args)
{
if (args.Reason == AutoSuggestionBoxTextChangeReason.UserInput || string.IsNullOrWhiteSpace(sender.Text))
{
ViewModel.UpdateSearchSuggestions(sender.Text);
}
}
private void SettingsSearchSuggestionChosen(AutoSuggestBox sender, AutoSuggestBoxSuggestionChosenEventArgs args)
{
if (args.SelectedItem is SettingsNavigationItemInfo selectedSetting)
{
ViewModel.SearchQuery = selectedSetting.Title;
}
}
private void SettingsSearchQuerySubmitted(AutoSuggestBox sender, AutoSuggestBoxQuerySubmittedEventArgs args)
{
var selectedSetting = args.ChosenSuggestion as SettingsNavigationItemInfo
?? ViewModel.GetBestSearchSuggestion(args.QueryText);
ViewModel.NavigateToSetting(selectedSetting);
}
}