@page "/sender/login" @rendermode InteractiveWebAssembly @using EnvelopeGenerator.Server.Client.Services @using EnvelopeGenerator.Application.Resources @using Microsoft.Extensions.Localization @inject AuthService AuthService @inject NavigationManager Navigation @inject IStringLocalizer UiLocalizer
@code { string Username = string.Empty; string Password = string.Empty; bool ShowPassword; bool IsLoading; SenderLoginResult? LoginResult; async Task OnKeyDownAsync(Microsoft.AspNetCore.Components.Web.KeyboardEventArgs e) { if (e.Key == "Enter") await SubmitAsync(); } async Task SubmitAsync() { if (string.IsNullOrWhiteSpace(Username) || string.IsNullOrWhiteSpace(Password) || IsLoading) return; IsLoading = true; LoginResult = null; await InvokeAsync(StateHasChanged); var result = await AuthService.LoginSenderAsync(Username.Trim(), Password.Trim()); if (result == SenderLoginResult.Success) { Navigation.NavigateTo("/sender", forceLoad: true); return; } LoginResult = result; IsLoading = false; await InvokeAsync(StateHasChanged); } string L(string key, string fallback) { var value = UiLocalizer[key]; return value.ResourceNotFound ? fallback : value.Value; } }