diff --git a/Bitvault.Avalonia/ContainerView.axaml b/Bitvault.Avalonia/ContainerView.axaml index d04e51a..366beb9 100644 --- a/Bitvault.Avalonia/ContainerView.axaml +++ b/Bitvault.Avalonia/ContainerView.axaml @@ -52,7 +52,7 @@ BorderThickness="1,1,0,0" CornerRadius="8 0 0 0"> - + diff --git a/Bitvault.Avalonia/ItemHeaderView.axaml b/Bitvault.Avalonia/ItemHeaderView.axaml index f3e60ab..fe8c581 100644 --- a/Bitvault.Avalonia/ItemHeaderView.axaml +++ b/Bitvault.Avalonia/ItemHeaderView.axaml @@ -11,15 +11,33 @@ DisplayName="{Binding Value}" /> - + Watermark="Enter name"> + + + + + + + + + diff --git a/Bitvault/AggerateItemViewModelHandler.cs b/Bitvault/AggerateItemViewModelHandler.cs index 09903bc..c48afb7 100644 --- a/Bitvault/AggerateItemViewModelHandler.cs +++ b/Bitvault/AggerateItemViewModelHandler.cs @@ -9,10 +9,10 @@ public class AggerateItemViewModelHandler(IMediator mediator, { public Task Handle(AggerateEventArgs args) { - if (serviceFactory.Create(false) is ItemHeaderViewModel viewModel) - { - publisher.Publish(Create.As(viewModel), nameof(ItemViewModel)); - } + //if (serviceFactory.Create(false) is ItemHeaderViewModel viewModel) + //{ + // publisher.Publish(Create.As(viewModel), nameof(ItemViewModel)); + //} return Task.CompletedTask; } diff --git a/Bitvault/EditItemActionViewModel.cs b/Bitvault/EditItemActionViewModel.cs index 3ad9feb..cd45e1c 100644 --- a/Bitvault/EditItemActionViewModel.cs +++ b/Bitvault/EditItemActionViewModel.cs @@ -11,5 +11,5 @@ public partial class EditItemActionViewModel(IServiceProvider provider, IDisposer disposer) : Observable(provider, factory, mediator, publisher, subscriber, disposer) { [RelayCommand] - public void Invoke() => Publisher.Publish(Edit.As(), nameof(ItemViewModel)); + public void Invoke() => Publisher.Publish(Edit.As()); } \ No newline at end of file diff --git a/Bitvault/Item.cs b/Bitvault/Item.cs index 03c4f25..82ecc11 100644 --- a/Bitvault/Item.cs +++ b/Bitvault/Item.cs @@ -4,6 +4,6 @@ public record Item { public Guid Id { get; init; } - public string Name { get; init; } = ""; + public string? Name { get; init; } = ""; } diff --git a/Bitvault/ItemConfiguration.cs b/Bitvault/ItemConfiguration.cs index eaa811a..76cc84c 100644 --- a/Bitvault/ItemConfiguration.cs +++ b/Bitvault/ItemConfiguration.cs @@ -2,5 +2,5 @@ public record ItemConfiguration { - public string Name { get; set; } = ""; + public string? Name { get; set; } = ""; } diff --git a/Bitvault/ItemHeaderConfiguration.cs b/Bitvault/ItemHeaderConfiguration.cs index 20592b9..9a22399 100644 --- a/Bitvault/ItemHeaderConfiguration.cs +++ b/Bitvault/ItemHeaderConfiguration.cs @@ -2,5 +2,5 @@ public record ItemHeaderConfiguration { - public string Name { get; init; } = ""; + public string? Name { get; init; } = ""; } diff --git a/Bitvault/ItemHeaderViewModel.cs b/Bitvault/ItemHeaderViewModel.cs index 21a98b0..1711e78 100644 --- a/Bitvault/ItemHeaderViewModel.cs +++ b/Bitvault/ItemHeaderViewModel.cs @@ -13,7 +13,10 @@ public partial class ItemHeaderViewModel(IServiceProvider provider, string? value = null) : Observable(provider, factory, mediator, publisher, subscriber, disposer, value), IHandler, bool>, IHandler, ItemHeaderConfiguration>, - IItemEntryViewModel, IRemovable + INotificationHandler>, + INotificationHandler>, + INotificationHandler>, + IItemEntryViewModel { [ObservableProperty] private bool immutable = immutable; @@ -24,11 +27,15 @@ public partial class ItemHeaderViewModel(IServiceProvider provider, return Task.FromResult(true); } - public override void Dispose() - { - base.Dispose(); - } - public Task Handle(ConfirmEventArgs args, CancellationToken cancellationToken) => Task.FromResult(new ItemHeaderConfiguration { Name = Value }); + + public Task Handle(EditEventArgs args) => + Task.FromResult(Immutable = false); + + public Task Handle(CancelEventArgs args) => + Task.FromResult(Immutable = true); + + public Task Handle(ConfirmEventArgs args) => + Task.FromResult(Immutable = true); } diff --git a/Bitvault/ItemViewModel.cs b/Bitvault/ItemViewModel.cs index 8954254..7f38488 100644 --- a/Bitvault/ItemViewModel.cs +++ b/Bitvault/ItemViewModel.cs @@ -3,10 +3,10 @@ using Toolkit.Foundation; namespace Bitvault; -[Aggerate(nameof(ItemViewModel))] public partial class ItemViewModel : ObservableCollection, INotificationHandler>, + INotificationHandler>, INotificationHandler> { [ObservableProperty] @@ -43,6 +43,8 @@ public partial class ItemViewModel : Favourite = favourite; Archived = archived; Name = name; + + Add(immutable, name); } public IContentTemplate Template { get; set; } @@ -69,6 +71,18 @@ public partial class ItemViewModel : return Task.CompletedTask; } + public Task Handle(ConfirmEventArgs args) + { + Publisher.Publish(Notify.As(Factory.Create(new List + { + Factory.Create(Favourite), + Factory.Create(), + Factory.Create(), + }))); + + return Task.CompletedTask; + } + public override Task OnActivated() { if (!Immutable)