validateExtraInformationData function

Either<bool, EmailFormStatus> validateExtraInformationData({
  1. required Map<String, dynamic> data,
  2. required GlobalKey<FormState> extraInfoKey,
})

Checks whether data has been entered into any of the ExtraInformation inputs.

The left side contains information about marital status.

The right side contains information about the status of the email input

Implementation

dartz.Either<bool, EmailFormStatus> validateExtraInformationData({
  required Map<String, dynamic> data,
  required GlobalKey<FormState> extraInfoKey,
}) {
  final bool isMaritalStatusOk =
      data['maritalStatus'] != null && data['maritalStatus'] != 'UNK';

  final bool emailOptIn = data['emailOptIn'] as bool;

  if (emailOptIn) {
    if (extraInfoKey.currentState!.validate()) {
      return dartz.right(EmailFormStatus.ok);
    } else {
      return dartz.right(EmailFormStatus.invalid);
    }
  } else {
    return dartz.left(isMaritalStatusOk);
  }
}