Selector/Selector.MAUI/Pages/Login.razor

46 lines
1.5 KiB
Plaintext

@page "/login"
@inject SessionManager session
@inject NavigationManager navigation
<div class="form-container">
<h1>Login</h1>
<p>@toast</p>
<EditForm Model="@loginModel" OnSubmit="@HandleSubmit">
<InputText id="username" type="text" placeholder="Username" @bind-Value="loginModel.Username" tabindex=1 class="input-boxes" />
<InputText type="password" placeholder="Password" @bind-Value="loginModel.Password" tabindex=2 class="input-boxes" />
<button type="submit" tabindex="3">Submit</button>
</EditForm>
</div>
@code {
private LoginModel loginModel = new();
private string toast = string.Empty;
[Inject]
private ILogger<Login> logger { get; set; }
private async Task HandleSubmit()
{
switch (await session.Authenticate(loginModel.Username, loginModel.Password))
{
case SelectorNetClient.TokenResponseStatus.Malformed:
toast = "Bad Request, Username or Password missing";
break;
case SelectorNetClient.TokenResponseStatus.UserSearchFailed:
toast = "User not found";
break;
case SelectorNetClient.TokenResponseStatus.BadCreds:
toast = "Login failed, try again";
break;
case SelectorNetClient.TokenResponseStatus.OK:
logger.LogInformation("Login succeeded, redirecting");
navigation.NavigateTo("/app");
break;
}
}
}