Files
Walleby/Bitvault/VaultNavigationViewModel.cs
T
TheXamlGuy bab5f218e8 Refactor
2024-04-26 22:27:31 +01:00

55 lines
1.3 KiB
C#

using CommunityToolkit.Mvvm.ComponentModel;
using Toolkit.Foundation;
namespace Bitvault;
public partial class VaultNavigationViewModel :
ObservableCollectionViewModel<IMainNavigationViewModel>,
IMainNavigationViewModel,
INotificationHandler<Unlocked>,
INotificationHandler<Locked>
{
[ObservableProperty]
private bool locked;
[ObservableProperty]
private string name;
public VaultNavigationViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
IPublisher publisher,
ISubscriber subscriber,
IDisposer disposer,
IContentTemplate template,
string name) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
Template = template;
Name = name;
}
public IContentTemplate Template { get; set; }
public Task Handle(Unlocked args, CancellationToken cancellationToken = default)
{
Locked = true;
Add<AllNavigationViewModel>();
Add<StarredNavigationViewModel>();
Add<ArchiveNavigationViewModel>();
Add<CategoriesNavigationViewModel>();
return Task.CompletedTask;
}
public Task Handle(Locked args, CancellationToken cancellationToken = default)
{
Locked = true;
Clear();
return Task.CompletedTask;
}
}