Add KeyBindingBehavior
This commit is contained in:
@@ -7,4 +7,11 @@ public class LockViewModel(IServiceProvider serviceProvider,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer) :
|
||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer);
|
||||
ObservableViewModel(serviceProvider, serviceFactory, publisher, subscriber, disposer),
|
||||
IConfirmation
|
||||
{
|
||||
public Task<bool> Confirm()
|
||||
{
|
||||
return Task.FromResult(false);
|
||||
}
|
||||
}
|
||||
+4
-2
@@ -1,3 +1,5 @@
|
||||
namespace Bitvault;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
public record Locked;
|
||||
namespace Bitvault;
|
||||
|
||||
public record Locked : INotification;
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
namespace Bitvault;
|
||||
using Toolkit.Foundation;
|
||||
|
||||
public record Unlocked;
|
||||
namespace Bitvault;
|
||||
|
||||
public record Unlocked : INotification;
|
||||
@@ -5,12 +5,13 @@ namespace Bitvault;
|
||||
|
||||
public class VaultComponentsInitializer(IServiceProvider provider,
|
||||
IProxyServiceCollection<IComponentBuilder> proxy,
|
||||
IEnumerable<IConfiguration<VaultConfiguration>> configurations,
|
||||
IEnumerable<IConfigurationDescriptor<VaultConfiguration>> configurations,
|
||||
IComponentScopeCollection scopes,
|
||||
IVaultHostCollection vaults) : IInitializer
|
||||
{
|
||||
public Task Initialize()
|
||||
public async Task Initialize()
|
||||
{
|
||||
foreach (IConfiguration<VaultConfiguration> configuration in configurations)
|
||||
foreach (IConfigurationDescriptor<VaultConfiguration> configuration in configurations)
|
||||
{
|
||||
if (provider.GetRequiredService<IVaultComponent>() is IVaultComponent component)
|
||||
{
|
||||
@@ -36,16 +37,19 @@ public class VaultComponentsInitializer(IServiceProvider provider,
|
||||
provider.GetRequiredService<IComponentScopeProvider>());
|
||||
|
||||
services.AddRange(proxy.Services);
|
||||
|
||||
services.AddSingleton(new ComponentScope(configuration.Section));
|
||||
});
|
||||
|
||||
builder.AddConfiguration(configuration.Section, configuration.Value);
|
||||
IComponentHost host = builder.Build();
|
||||
host.StartAsync();
|
||||
|
||||
scopes.Add(new ComponentScopeDescriptor(configuration.Section,
|
||||
host.Services.GetRequiredService<IServiceProvider>()));
|
||||
|
||||
vaults.Add(host);
|
||||
await host.StartAsync();
|
||||
}
|
||||
}
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,13 +5,18 @@ namespace Bitvault;
|
||||
|
||||
public partial class VaultNavigationViewModel :
|
||||
ObservableCollectionViewModel<IMainNavigationViewModel>,
|
||||
IMainNavigationViewModel
|
||||
IMainNavigationViewModel,
|
||||
INotificationHandler<Unlocked>,
|
||||
INotificationHandler<Locked>
|
||||
{
|
||||
[ObservableProperty]
|
||||
private bool locked;
|
||||
|
||||
[ObservableProperty]
|
||||
private string name;
|
||||
|
||||
public VaultNavigationViewModel(IServiceProvider serviceProvider,
|
||||
IServiceFactory serviceFactory,
|
||||
IServiceFactory serviceFactory,
|
||||
IPublisher publisher,
|
||||
ISubscriber subscriber,
|
||||
IDisposer disposer,
|
||||
@@ -21,11 +26,30 @@ public partial class VaultNavigationViewModel :
|
||||
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 IContentTemplate Template { get; set; }
|
||||
public Task Handle(Locked args, CancellationToken cancellationToken = default)
|
||||
{
|
||||
Locked = true;
|
||||
Clear();
|
||||
|
||||
return Task.CompletedTask;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user