75 lines
2.7 KiB
Plaintext
Executable File
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;
|
|
}
|
|
} |