@page "/login" @using System.Text.RegularExpressions @using Microsoft.AspNetCore.Components.Forms @using ShoppingAssistantWebClient.Web.Models.Input;
@if (!string.IsNullOrWhiteSpace(errorMessage)) {
@errorMessage
} @phoneValidationMessage
or
@emailValidationMessage
@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); } }