Added Login validation

This commit is contained in:
TheXamlGuy
2024-06-16 19:19:12 +01:00
parent f7b40efaea
commit 85cfcaf59d
3 changed files with 17 additions and 16 deletions
+8 -5
View File
@@ -23,14 +23,17 @@
PasswordChar="●" PasswordChar="●"
Text="{Binding Password}"> Text="{Binding Password}">
<Interaction.Behaviors> <Interaction.Behaviors>
<KeyBindingTriggerBehaviour Gesture="Enter"> <KeyBindingTriggerBehaviour Gesture="Enter" IsEnabled="{Binding Password, Converter={x:Static StringConverters.IsNotNullOrEmpty}}">
<InvokeCommandAction Command="{Binding InvokeCommand}" /> <InvokeCommandAction Command="{Binding InvokeCommand}" />
</KeyBindingTriggerBehaviour> </KeyBindingTriggerBehaviour>
</Interaction.Behaviors> </Interaction.Behaviors>
</TextBox> </TextBox>
<ProgressRing <Grid>
HorizontalAlignment="Center" <TextBlock HorizontalAlignment="Center" Text="{ReflectionBinding Validation.Errors[Password]}" />
VerticalAlignment="Center" <ProgressRing
IsActive="{Binding IsActive}" /> HorizontalAlignment="Center"
VerticalAlignment="Center"
IsActive="{Binding IsActive}" />
</Grid>
</StackPanel> </StackPanel>
</UserControl> </UserControl>
+1 -1
View File
@@ -61,7 +61,7 @@ public partial class CreateWalletViewModel :
{ {
if (args.PropertyName is string name) if (args.PropertyName is string name)
{ {
Validation.Validate(name); _ = Validation.Validate(name);
} }
base.OnPropertyChanged(args); base.OnPropertyChanged(args);
+8 -10
View File
@@ -1,21 +1,21 @@
using CommunityToolkit.Mvvm.ComponentModel; using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input; using CommunityToolkit.Mvvm.Input;
using System.Diagnostics.CodeAnalysis;
using Toolkit.Foundation; using Toolkit.Foundation;
namespace Wallet; namespace Wallet;
public partial class OpenWalletViewModel : Observable public partial class OpenWalletViewModel : Observable
{ {
private readonly IValidation validation; [ObservableProperty]
private IValidation validation;
[ObservableProperty] [ObservableProperty]
private string? name; private string? name;
[MaybeNull]
[ObservableProperty] [ObservableProperty]
private string? password; private string password;
[ObservableProperty]
private string? repeatedPassword;
public OpenWalletViewModel(IValidation validation, public OpenWalletViewModel(IValidation validation,
IServiceProvider provider, IServiceProvider provider,
@@ -35,12 +35,10 @@ public partial class OpenWalletViewModel : Observable
{ {
using (await new ActivityLock(this)) using (await new ActivityLock(this))
{ {
if (Password is { Length: > 0 }) if (await validation.Validate(() => Password, [new ValidationRule(async () =>
await Mediator.Handle<ActivateEventArgs<Wallet<string>>, bool>(Activate.As(new Wallet<string>(Password))), "The password is incorrect, please try again.")]))
{ {
if (await Mediator.Handle<ActivateEventArgs<Wallet<string>>, bool>(Activate.As(new Wallet<string>(Password)))) Publisher.Publish(Opened.As<Wallet>());
{
Publisher.Publish(Opened.As<Wallet>());
}
} }
} }
} }