Attempt to fix some wonky selection bugs

This commit is contained in:
TheXamlGuy
2024-05-28 22:41:35 +01:00
parent 0e8ad91de7
commit a77240d83b
15 changed files with 94 additions and 45 deletions
+29 -19
View File
@@ -17,7 +17,7 @@ public partial class ItemViewModel :
private bool favourite;
[ObservableProperty]
private bool immutable;
private ItemState state;
[ObservableProperty]
private string named;
@@ -25,6 +25,8 @@ public partial class ItemViewModel :
[ObservableProperty]
private string name;
[ObservableProperty]
private bool test;
public ItemViewModel(IServiceProvider provider,
IServiceFactory factory,
IMediator mediator,
@@ -33,20 +35,22 @@ public partial class ItemViewModel :
IDisposer disposer,
IContentTemplate template,
NamedComponent named,
ItemState state = ItemState.Read,
bool test = false,
string name = "",
bool immutable = true,
bool favourite = false,
bool archived = false) : base(provider, factory, mediator, publisher, subscriber, disposer)
{
Test = test;
Named = $"{named}";
Template = template;
Immutable = immutable;
State = state;
Favourite = favourite;
Archived = archived;
Name = name;
Add<ItemHeaderViewModel>(immutable, name);
Add<ItemContentViewModel>(immutable);
Add<ItemHeaderViewModel>(state, name);
Add<ItemContentViewModel>(state);
}
public IContentTemplate Template { get; set; }
@@ -59,6 +63,7 @@ public partial class ItemViewModel :
Factory.Create<DismissItemActionViewModel>(),
})));
State = ItemState.Write;
return Task.CompletedTask;
}
@@ -70,6 +75,7 @@ public partial class ItemViewModel :
Factory.Create<ArchiveItemActionViewModel>(),
})));
State = ItemState.Read;
return Task.CompletedTask;
}
@@ -82,20 +88,13 @@ public partial class ItemViewModel :
Factory.Create<ArchiveItemActionViewModel>(),
})));
State = ItemState.Read;
return Task.CompletedTask;
}
public override Task OnActivated()
{
if (!Immutable)
{
Publisher.Publish(Notify.As(Factory.Create<ItemCommandHeaderCollection>(new List<IDisposable>
{
Factory.Create<ConfirmItemActionViewModel>(),
Factory.Create<DismissItemActionViewModel>(),
})));
}
else if (Archived)
if (Archived)
{
Publisher.Publish(Notify.As(Factory.Create<ItemCommandHeaderCollection>(new List<IDisposable>
{
@@ -104,12 +103,23 @@ public partial class ItemViewModel :
}
else
{
Publisher.Publish(Notify.As(Factory.Create<ItemCommandHeaderCollection>(new List<IDisposable>
if (State is ItemState.Write)
{
Factory.Create<FavouriteItemActionViewModel>(Favourite),
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
Publisher.Publish(Notify.As(Factory.Create<ItemCommandHeaderCollection>(new List<IDisposable>
{
Factory.Create<ConfirmItemActionViewModel>(),
Factory.Create<DismissItemActionViewModel>(),
})));
}
else
{
Publisher.Publish(Notify.As(Factory.Create<ItemCommandHeaderCollection>(new List<IDisposable>
{
Factory.Create<FavouriteItemActionViewModel>(Favourite),
Factory.Create<EditItemActionViewModel>(),
Factory.Create<ArchiveItemActionViewModel>(),
})));
}
}
return base.OnActivated();