updatePasswordRules method

void updatePasswordRules(
  1. String password
)

Implementation

void updatePasswordRules(String password) {
  Map<String, bool> updatedRules = {};

  for (var rule in widget.passwordRules) {
    if (rule.isEmpty) continue;

    bool satisfied = false;
    if (rule.contains("8 characters")) {
      satisfied = password.length >= 8;
    } else if (rule.contains("uppercase")) {
      satisfied = RegExp(r'[A-Z]').hasMatch(password);
    } else if (rule.contains("lowercase")) {
      satisfied = RegExp(r'[a-z]').hasMatch(password);
    } else if (rule.contains("number")) {
      satisfied = RegExp(r'[0-9]').hasMatch(password);
    } else if (rule.contains("special character") ||
        rule.contains("symbol")) {
      satisfied = RegExp(r'[!@#$%^&*(),.?":{}|<>]').hasMatch(password);
    } else {
      satisfied = RegExp(widget.newPasswordInputRegex).hasMatch(password);
    }

    updatedRules[rule] = satisfied;
  }

  setState(() {
    rulesSatisfied = updatedRules;
  });
}