51 lines
1.7 KiB
C#
51 lines
1.7 KiB
C#
using System;
|
|
using CommunityToolkit.Mvvm.ComponentModel;
|
|
using CommunityToolkit.Mvvm.Input;
|
|
using Wino.Core.Domain;
|
|
using Wino.Core.Domain.Enums;
|
|
using Wino.Core.Domain.Interfaces;
|
|
using Wino.Core.Domain.Models.Navigation;
|
|
using Wino.Core.ViewModels;
|
|
|
|
namespace Wino.Mail.ViewModels;
|
|
|
|
public partial class IdlePageViewModel : CoreBaseViewModel
|
|
{
|
|
public const string MailEmptyStateParameter = "mail-empty-state";
|
|
|
|
private readonly INavigationService _navigationService;
|
|
|
|
[ObservableProperty]
|
|
public partial bool IsMailEmptyStateVisible { get; set; }
|
|
|
|
public string MailEmptyStateTitle => Translator.MailEmptyState_Title;
|
|
public string MailEmptyStateMessage => Translator.MailEmptyState_Message;
|
|
public string AddAccountText => Translator.MailEmptyState_AddAccount;
|
|
public string ManageAccountsText => Translator.MailEmptyState_ManageAccounts;
|
|
|
|
public IdlePageViewModel(IMailDialogService dialogService, INavigationService navigationService)
|
|
{
|
|
_navigationService = navigationService;
|
|
}
|
|
|
|
public override void OnNavigatedTo(NavigationMode mode, object parameters)
|
|
{
|
|
base.OnNavigatedTo(mode, parameters);
|
|
IsMailEmptyStateVisible = string.Equals(parameters as string, MailEmptyStateParameter, StringComparison.Ordinal);
|
|
}
|
|
|
|
[RelayCommand]
|
|
private void AddAccount()
|
|
=> _navigationService.Navigate(
|
|
WinoPage.SettingsPage,
|
|
ProviderSelectionNavigationContext.CreateForSettingsAddAccount(),
|
|
NavigationReferenceFrame.ShellFrame);
|
|
|
|
[RelayCommand]
|
|
private void ManageAccounts()
|
|
=> _navigationService.Navigate(
|
|
WinoPage.SettingsPage,
|
|
WinoPage.ManageAccountsPage,
|
|
NavigationReferenceFrame.ShellFrame);
|
|
}
|