78 lines
2.4 KiB
C#
78 lines
2.4 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 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);
|
|
}
|
|
}
|