validateSignupFields method

bool validateSignupFields()

Implementation

bool validateSignupFields() {
  if (companyNameTxtController.text.trim().isEmpty &&
      subscriptionType.value == 'Business') {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid company name",
      message: "Please make sure you enter a valid company name",
    );
    return false;
  } else if (firstNameTxtController.text.trim().length < 3) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid first name",
      message:
          "Please make sure you enter a valid first name with at least 3 characters",
    );
    return false;
  } else if (!containsOnlyCharacters(firstNameTxtController.text.trim())) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid first name",
      message: "Please ensure that the first name contains only letters.",
    );
    return false;
  } else if (lastNameTxtController.text.trim().length < 3) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid last name",
      message:
          "Please make sure you enter a valid last name with at least 3 characters",
    );
    return false;
  } else if (!containsOnlyCharacters(lastNameTxtController.text.trim())) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid last name",
      message: "Please ensure that the last name contains only letters.",
    );
    return false;
  } else if (!RegExp(r'^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$')
      .hasMatch(emailTxtController.text)) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid email",
      message: "Please make sure you enter a valid email!",
    );
    return false;
  } else if (passTxtController.text.length < 8) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Weak Password",
      message: "The password must contain at least 8 characters",
    );
    return false;
  } else if (!RegExp(r"(?=.*[A-Z])").hasMatch(passTxtController.text)) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Weak Password",
      message: "The password must contain at least one uppercase letter",
    );
    return false;
  } else if (passTxtController.text.contains(' ')) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Invalid Password",
      message: "The password must not contain spaces",
    );
    return false;
  } else if (!RegExp(r"(?=.*[a-z])").hasMatch(passTxtController.text)) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Weak Password",
      message: "The password must contain at least one lowercase letter",
    );
    return false;
  } else if (!RegExp(r"(?=.*[0-9])").hasMatch(passTxtController.text)) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Weak Password",
      message: "The password must contain at least one number",
    );
    return false;
  } else if (!RegExp(r"(?=.*[!#\$%&()*+,-./:;<=>?@\[\]^_{|}~])")
      .hasMatch(passTxtController.text)) {
    CustomFlashWidget.showFlashMessage(
      type: FlashType.error,
      title: "Weak Password",
      message: "The password must contain at least one special character",
    );
    return false;
  } else if (referralCodeTxtController.text.isEmpty) {
    CustomFlashWidget.showFlashMessage(
        type: FlashType.error,
        title: "Invalid Invitation Code",
        message:
            "The invitation code you entered is invalid. Please try again.",
        actions: [
          FlashAction(
              label: 'Contact Support',
              onPressed: () {
                launchEmail();
              }),
          FlashAction(
            label: 'Try Again',
          )
        ]);
    // openDialog(
    //   barrierDismissible: false,
    //   ReferralCodeDialog(),
    // );
    return false;
  }

  return true;
}