From 897026d6ff5f8b39aa1007374e88815f548105a0 Mon Sep 17 00:00:00 2001 From: Leendert de Borst Date: Fri, 23 Jan 2026 17:42:43 +0100 Subject: [PATCH] Tweak AliasVault.Client email domain and field width UI (#1473) --- .../Components/Forms/EmailDomainField.razor | 17 +++++++++++++++-- .../Main/Pages/Items/AddEdit.razor | 8 ++++++-- .../Main/Pages/Items/View.razor | 11 +++++++++-- 3 files changed, 30 insertions(+), 6 deletions(-) diff --git a/apps/server/AliasVault.Client/Main/Components/Forms/EmailDomainField.razor b/apps/server/AliasVault.Client/Main/Components/Forms/EmailDomainField.razor index 82be2fad0..011f24874 100644 --- a/apps/server/AliasVault.Client/Main/Components/Forms/EmailDomainField.razor +++ b/apps/server/AliasVault.Client/Main/Components/Forms/EmailDomainField.razor @@ -168,6 +168,13 @@ [Parameter] public EventCallback OnRemove { get; set; } + /// + /// 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. + /// + [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]; diff --git a/apps/server/AliasVault.Client/Main/Pages/Items/AddEdit.razor b/apps/server/AliasVault.Client/Main/Pages/Items/AddEdit.razor index a32946afd..d157b8d71 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Items/AddEdit.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Items/AddEdit.razor @@ -214,7 +214,9 @@ else }
- +
@@ -230,12 +232,14 @@ else { } else { + @bind-Value="Obj.GetField(FieldKey.LoginEmail)!.Value" + DefaultToEmailMode="@(Obj.ItemType == ItemType.Login)"> }
} diff --git a/apps/server/AliasVault.Client/Main/Pages/Items/View.razor b/apps/server/AliasVault.Client/Main/Pages/Items/View.razor index 8262909a8..62d8366e4 100644 --- a/apps/server/AliasVault.Client/Main/Pages/Items/View.razor +++ b/apps/server/AliasVault.Client/Main/Pages/Items/View.razor @@ -171,9 +171,14 @@ else
+ @{ + var hasEmail = loginFields.Any(f => f.FieldKey == FieldKey.LoginEmail); + } @foreach (var field in loginFields) { - + @* Make username full width if there's no email field *@ + var isUsernameWithoutEmail = field.FieldKey == FieldKey.LoginUsername && !hasEmail; + }
@@ -218,7 +223,9 @@ else
@foreach (var field in cardFields) { - + @* Cardholder name should be full width *@ + var isFullWidthCardField = field.FieldKey == FieldKey.CardCardholderName; + }