@page "/login"
@using System.Text.RegularExpressions
@using Microsoft.AspNetCore.Components.Forms
@using ShoppingAssistantWebClient.Web.Models.Input
@using Models.GlobalInstances
@code {
private string phoneValidationMessage = "";
private string emailValidationMessage = "";
private bool isPhoneInvalid = false;
private bool isEmailInvalid = false;
private LoginInputModel LoginInput = new LoginInputModel();
private void ValidatePhone()
{
if (!string.IsNullOrWhiteSpace(LoginInput.Phone) && !Regex.IsMatch(LoginInput.Phone, @"^\+[0-9]{1,15}$"))
{
phoneValidationMessage = "Please enter a valid phone number";
isPhoneInvalid = true;
}
else
{
phoneValidationMessage = "";
isPhoneInvalid = false;
}
}
private void ValidateEmail()
{
if (!string.IsNullOrWhiteSpace(LoginInput.Email) && !Regex.IsMatch(LoginInput.Email, @"^[^@\s]+@[^@\s]+\.[^@\s]+$"))
{
emailValidationMessage = "Please enter a valid email address";
isEmailInvalid = true;
}
else
{
emailValidationMessage = "";
isEmailInvalid = false;
}
}
private bool HasValidationErrors()
{
return !string.IsNullOrWhiteSpace(phoneValidationMessage) || !string.IsNullOrWhiteSpace(emailValidationMessage);
}
private async Task HandleLogin()
{
if (HasValidationErrors())
{
return;
}
await LoginUser(LoginInput);
}
}