From 02616a6c7310bcf14b5166d4b306e343a5ae0b21 Mon Sep 17 00:00:00 2001 From: TheXamlGuy Date: Thu, 16 May 2024 21:41:48 +0100 Subject: [PATCH] Fixed more edge cases --- Bitvault.Avalonia/App.axaml.cs | 2 +- Bitvault.Avalonia/ItemNavigationView.axaml | 25 ++++------------------ Bitvault/ConfirmItemHandler.cs | 2 +- Bitvault/ItemHeaderConfiguration.cs | 6 ++++++ Bitvault/ItemHeaderViewModel.cs | 11 +++++----- Bitvault/ItemViewModel.cs | 6 +----- 6 files changed, 19 insertions(+), 33 deletions(-) create mode 100644 Bitvault/ItemHeaderConfiguration.cs diff --git a/Bitvault.Avalonia/App.axaml.cs b/Bitvault.Avalonia/App.axaml.cs index 226e612..a0eefac 100644 --- a/Bitvault.Avalonia/App.axaml.cs +++ b/Bitvault.Avalonia/App.axaml.cs @@ -100,7 +100,7 @@ public partial class App : Application services.AddScoped, ValueStore>(); - services.AddHandler(ServiceLifetime.Singleton); + services.AddHandler(ServiceLifetime.Scoped); services.AddHandler(ServiceLifetime.Scoped); services.AddHandler(); diff --git a/Bitvault.Avalonia/ItemNavigationView.axaml b/Bitvault.Avalonia/ItemNavigationView.axaml index a4ee662..d097bbd 100644 --- a/Bitvault.Avalonia/ItemNavigationView.axaml +++ b/Bitvault.Avalonia/ItemNavigationView.axaml @@ -6,32 +6,15 @@ x:DataType="vm:ItemNavigationViewModel" IsSelected="{Binding Selected}"> - - + diff --git a/Bitvault/ConfirmItemHandler.cs b/Bitvault/ConfirmItemHandler.cs index ebdfc6d..d37a137 100644 --- a/Bitvault/ConfirmItemHandler.cs +++ b/Bitvault/ConfirmItemHandler.cs @@ -46,6 +46,6 @@ public class ConfirmItemHandler(IMediator mediator, public async Task Handle(ConfirmEventArgs args) { - await mediator.Handle, bool>(args); + ItemHeaderConfiguration? headerConfiguration = await mediator.Handle, ItemHeaderConfiguration>(args); } } diff --git a/Bitvault/ItemHeaderConfiguration.cs b/Bitvault/ItemHeaderConfiguration.cs new file mode 100644 index 0000000..95ab444 --- /dev/null +++ b/Bitvault/ItemHeaderConfiguration.cs @@ -0,0 +1,6 @@ +namespace Bitvault; + +public record ItemHeaderConfiguration +{ + public string? Name { get; init; } +} diff --git a/Bitvault/ItemHeaderViewModel.cs b/Bitvault/ItemHeaderViewModel.cs index 7c2a821..ade40ad 100644 --- a/Bitvault/ItemHeaderViewModel.cs +++ b/Bitvault/ItemHeaderViewModel.cs @@ -11,18 +11,19 @@ public partial class ItemHeaderViewModel(IServiceProvider provider, IDisposer disposer, bool immutable, string? value = null) : ObservableViewModel(provider, factory, mediator, publisher, subscriber, disposer, value), - IHandler, bool> - + IHandler, bool>, + IHandler, ItemHeaderConfiguration> { [ObservableProperty] private bool immutable = immutable; - public Task Handle(ConfirmEventArgs args, + public Task Handle(ValidationEventArgs args, CancellationToken cancellationToken) { + // we need to work on the local validation layer return Task.FromResult(true); } - public void Invoke(ItemConfiguration args) => - args.Name = Value; + public Task Handle(ConfirmEventArgs args, + CancellationToken cancellationToken) => Task.FromResult(new ItemHeaderConfiguration { Name = Value }); } diff --git a/Bitvault/ItemViewModel.cs b/Bitvault/ItemViewModel.cs index 30fb146..238b14e 100644 --- a/Bitvault/ItemViewModel.cs +++ b/Bitvault/ItemViewModel.cs @@ -9,9 +9,6 @@ public partial class ItemViewModel : [ObservableProperty] private int? id; - [ObservableProperty] - private string named; - [ObservableProperty] private bool immutable; @@ -22,13 +19,12 @@ public partial class ItemViewModel : ISubscription subscriber, IDisposer disposer, IContentTemplate template, - NamedComponent named, + IValueStore foom, bool immutable = true, int? id = null, string? name = null) : base(provider, factory, mediator, publisher, subscriber, disposer) { Template = template; - Named = $"{named}"; Id = id; Immutable = immutable;