Tweak AliasVault.Client email domain and field width UI (#1473)
This commit is contained in:
@@ -168,6 +168,13 @@
|
||||
[Parameter]
|
||||
public EventCallback OnRemove { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// When true, defaults to Email mode (custom domain / plain text input) instead of Alias mode.
|
||||
/// Use this for Login item types where users typically enter existing email addresses.
|
||||
/// </summary>
|
||||
[Parameter]
|
||||
public bool DefaultToEmailMode { get; set; } = false;
|
||||
|
||||
private IStringLocalizer Localizer => LocalizerFactory.Create("Components.Main.Forms.EmailDomainField", "AliasVault.Client");
|
||||
private IStringLocalizer SharedLocalizer => LocalizerFactory.Create("SharedResources", "AliasVault.Client");
|
||||
|
||||
@@ -187,8 +194,14 @@
|
||||
protected override void OnInitialized()
|
||||
{
|
||||
base.OnInitialized();
|
||||
|
||||
// Set default domain
|
||||
|
||||
// Set default mode based on parameter
|
||||
if (DefaultToEmailMode)
|
||||
{
|
||||
IsCustomDomain = true;
|
||||
}
|
||||
|
||||
// Set default domain (for when switching to alias mode later)
|
||||
if (ShowPrivateDomains && PrivateDomains.Count > 0)
|
||||
{
|
||||
SelectedDomain = PrivateDomains[0];
|
||||
|
||||
@@ -214,7 +214,9 @@ else
|
||||
</div>
|
||||
}
|
||||
<div class="col-span-6">
|
||||
<EmailDomainField Id="email" @bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value"></EmailDomainField>
|
||||
<EmailDomainField Id="email"
|
||||
@bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value"
|
||||
DefaultToEmailMode="@(Obj.ItemType == ItemType.Login)"></EmailDomainField>
|
||||
</div>
|
||||
<div class="col-span-6">
|
||||
<EditPasswordFormRow Id="password" Label="@Localizer["PasswordLabel"]" @bind-Value="Obj.GetField(FieldKey.LoginPassword)!.Value" ShowPassword="IsPasswordVisible"></EditPasswordFormRow>
|
||||
@@ -230,12 +232,14 @@ else
|
||||
{
|
||||
<EmailDomainField Id="email"
|
||||
@bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value"
|
||||
DefaultToEmailMode="@(Obj.ItemType == ItemType.Login)"
|
||||
OnRemove="@(() => RemoveOptionalField(FieldKey.LoginEmail))"></EmailDomainField>
|
||||
}
|
||||
else
|
||||
{
|
||||
<EmailDomainField Id="email"
|
||||
@bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value"></EmailDomainField>
|
||||
@bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value"
|
||||
DefaultToEmailMode="@(Obj.ItemType == ItemType.Login)"></EmailDomainField>
|
||||
}
|
||||
</div>
|
||||
}
|
||||
|
||||
@@ -171,9 +171,14 @@ else
|
||||
|
||||
<form action="#">
|
||||
<div class="grid grid-cols-6 gap-6">
|
||||
@{
|
||||
var hasEmail = loginFields.Any(f => f.FieldKey == FieldKey.LoginEmail);
|
||||
}
|
||||
@foreach (var field in loginFields)
|
||||
{
|
||||
<FieldBlock Field="@field" ItemId="@Item.Id" />
|
||||
@* Make username full width if there's no email field *@
|
||||
var isUsernameWithoutEmail = field.FieldKey == FieldKey.LoginUsername && !hasEmail;
|
||||
<FieldBlock Field="@field" ItemId="@Item.Id" FullWidth="@isUsernameWithoutEmail" />
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
@@ -218,7 +223,9 @@ else
|
||||
<div class="grid grid-cols-6 gap-6">
|
||||
@foreach (var field in cardFields)
|
||||
{
|
||||
<FieldBlock Field="@field" ItemId="@Item.Id" />
|
||||
@* Cardholder name should be full width *@
|
||||
var isFullWidthCardField = field.FieldKey == FieldKey.CardCardholderName;
|
||||
<FieldBlock Field="@field" ItemId="@Item.Id" FullWidth="@isFullWidthCardField" />
|
||||
}
|
||||
</div>
|
||||
</form>
|
||||
|
||||
Reference in New Issue
Block a user