using CommunityToolkit.Mvvm.ComponentModel; using Toolkit.Foundation; namespace Wallet; public partial class WalletNavigationViewModel : ObservableCollection, IMainNavigationViewModel, INotificationHandler>, INotificationHandler>, INotificationHandler>, INotificationHandler>, ISelectable { [ObservableProperty] private bool activated; [ObservableProperty] private bool expanded = true; [ObservableProperty] private string name; [ObservableProperty] private bool opened; [ObservableProperty] private bool selected; public WalletNavigationViewModel(IServiceProvider provider, IServiceFactory factory, IMediator mediator, IPublisher publisher, ISubscription subscriber, IDisposer disposer, IContentTemplate template, string name, bool selected) : base(provider, factory, mediator, publisher, subscriber, disposer) { Template = template; Name = name; Selected = selected; } public IContentTemplate Template { get; set; } public Task Handle(OpenedEventArgs args) { Add("All"); Add("Starred"); Add("Archive"); Add("Categories"); Opened = true; return Task.CompletedTask; } public Task Handle(ClosedEventArgs args) { Opened = true; Clear(); return Task.CompletedTask; } public Task Handle(DeactivatedEventArgs args) => Task.FromResult(Activated = false); public Task Handle(ActivatedEventArgs args) => Task.FromResult(Activated = true); }