Files
Auth.RCL/Components/Pages/Auths/SignUp.razor
T

75 lines
2.7 KiB
Plaintext
Executable File

@page "/signUp"
@layout EmptyLayout
@inject UserAPIConsumer userAPIConsumer
@inject NavigationManager nav
<PageTitle>Sign Up</PageTitle>
<EditForm Model="@registerModel" OnValidSubmit="@OnValidSignUp"
class="flex justify-center items-center py-10 min-h-screen bg-base-200">
<DataAnnotationsValidator />
<div class="card w-96 bg-base-100 shadow-xl">
<div class="card-body">
<h2 class="card-title text-2xl font-bold justify-center mb-6">Sign Up</h2>
<div class="form-control w-full">
<label class="label"><span class="label-text">Full Name</span></label>
<InputText type="text" @bind-Value="registerModel.FullName" class="input input-bordered w-full" />
</div>
<div class="form-control w-full">
<label class="label"><span class="label-text">Email</span></label>
<InputText type="email" @bind-Value="registerModel.Email" class="input input-bordered w-full" />
</div>
<div class="form-control w-full">
<label class="label"><span class="label-text">Password</span></label>
<InputText type="password" @bind-Value="registerModel.Password" class="input input-bordered w-full" />
</div>
<div class="form-control w-full">
<label class="label"><span class="label-text">Confirm Password</span></label>
<InputText type="password" @bind-Value="registerModel.ConfirmPassword"
class="input input-bordered w-full" />
</div>
<div class="card-actions justify-center mt-6">
<button type="submit" class="btn btn-primary w-full">Sign Up</button>
</div>
@if (!string.IsNullOrEmpty(errorMessage))
{
<div class="alert alert-error mt-4">
<span>@errorMessage</span>
</div>
}
</div>
</div>
</EditForm>
@code {
private RegisterModel registerModel = new RegisterModel();
private string errorMessage = "";
[CascadingParameter] public Task<AuthenticationState> authStateTask { get; set; }
protected override async Task OnInitializedAsync()
{
var user = (await authStateTask).User;
if (user.Identity.IsAuthenticated)
nav.NavigateTo("/");
}
private async Task OnValidSignUp()
{
var result = await userAPIConsumer.Register(registerModel);
if (result.IsSuccessful)
nav.NavigateTo("SignIn");
else
errorMessage = result.Message;
}
}