Support unarchiving

This commit is contained in:
TheXamlGuy
2024-05-19 16:13:45 +01:00
parent 77084b015b
commit a2323f6d3e
24 changed files with 267 additions and 128 deletions
+45 -5
View File
@@ -1,26 +1,66 @@
using Toolkit.Foundation;
using CommunityToolkit.Mvvm.ComponentModel;
using Toolkit.Foundation;
namespace Bitvault;
public partial class ItemViewModel :
ObservableCollection<IDisposable>
ObservableCollection<IDisposable>,
INotificationHandler<EditEventArgs<Item>>,
INotificationHandler<CancelEventArgs<Item>>
{
[ObservableProperty]
private bool archived;
public ItemViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
IPublisher publisher,
ISubscription subscriber,
IDisposer disposer,
IContentTemplate template) : base(provider, factory, mediator, publisher, subscriber, disposer)
IContentTemplate template,
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
Template = template;
Archived = archived;
if (!Archived)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
}
else
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<UnarchiveItemActionViewModel>(),
})));
}
}
public IContentTemplate Template { get; set; }
public Task Handle(EditEventArgs<Item> args)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<ConfirmItemActionViewModel>(),
Factory.Create<DismissItemActionViewModel>(),
})));
return Task.CompletedTask;
}
public Task Handle(CancelEventArgs<Item> args)
{
Publisher.Publish(Notify.As(Factory.Create<CommandCollection>(new List<IDisposable>
{
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
}
public IContentTemplate Template { get; set; }
return Task.CompletedTask;
}
}