Implementation
Stream<bool> get isFormValid => CombineLatestStream.list(
<Stream<dynamic>>[
_firstName,
_lastName,
_phoneManager.phoneNumber,
_dateOfBirth,
_gender,
_identificationDocument,
_phoneManager.verificationCode,
],
).map<bool>((List<dynamic> values) {
final String firstName = values[0] as String;
final String lastName = values[1] as String;
final String phoneNumber = values[2] as String;
final DateTime dob = values[3] as DateTime;
final Gender gender = values[4] as Gender;
final IdentificationDetails idNo = values[5] as IdentificationDetails;
final String verificationCode = values[6] as String;
return Validator.isValidName(firstName) &&
Validator.isValidName(lastName) &&
Validator.isValidPhone(phoneNumber) &&
Validator.isValidDate(dob) &&
Validator.isValidGender(gender) &&
Validator.isValidIdNo(idNo.documentNumber) &&
verificationCode.isNotEmpty;
});