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

83 lines
2.5 KiB
C#
Raw Normal View History

2026-03-21 00:58:01 +01:00
using CommunityToolkit.WinUI.Controls;
2025-12-31 14:09:57 +01:00
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
2025-11-16 00:23:23 +01:00
using Wino.Core.Domain.Enums;
2026-03-14 14:14:58 +01:00
using Wino.Core.Domain.Models.Settings;
2026-03-14 21:03:52 +01:00
using Wino.Core.ViewModels.Data;
using Wino.Mail.ViewModels.Data;
2025-11-15 14:52:01 +01:00
using Wino.Views.Abstract;
namespace Wino.Views.Settings;
public sealed partial class SettingOptionsPage : SettingOptionsPageAbstract
{
public SettingOptionsPage()
{
InitializeComponent();
}
2025-11-16 00:23:23 +01:00
2025-12-31 14:09:57 +01:00
private void SettingOptionClicked(object sender, RoutedEventArgs e)
2025-11-16 00:23:23 +01:00
{
2025-12-31 14:09:57 +01:00
WinoPage? page = sender switch
{
2026-03-14 21:03:52 +01:00
FrameworkElement element when element.Tag is WinoPage p => p,
2025-12-31 14:09:57 +01:00
_ => null
};
if (page.HasValue)
{
ViewModel.NavigateSubDetailCommand.Execute(page.Value);
}
2025-11-16 00:23:23 +01:00
}
2026-03-14 14:14:58 +01:00
2026-03-14 21:03:52 +01:00
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();
}
2026-03-14 14:14:58 +01:00
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);
}
2025-11-15 14:52:01 +01:00
}