maybeWhen<TResult extends Object?> method
TResult
maybeWhen<TResult extends Object?>(
- TResult $default(
- String userId,
- String healthId,
- String username,
- String name,
- String firstName,
- String lastName,
- String nationalID,
- String dateOfBirth,
- Gender gender,
- String avatar,
- Contact? primaryContact,
- List<
Contact> secondaryContacts, - String email,
- List<
String> languages, - String currentOrganizationID,
- String currentProgramID,
- bool active,
- bool termsAccepted,
- bool hasSetPin,
- bool hasSetNickname,
- bool isPhoneVerified,
- bool pinChangeRequired,
- bool pinUpdateRequired,
- bool suspended,
- String streamToken,
- required TResult orElse(),
A variant of when
that fallback to an orElse
callback.
It is equivalent to doing:
switch (sealedClass) {
case Subclass(:final field):
return ...;
case _:
return orElse();
}
Implementation
@optionalTypeArgs TResult maybeWhen<TResult extends Object?>(TResult Function(@JsonKey(name: 'id') String userId, @JsonKey(name: 'healthID') String healthId, @JsonKey(name: 'username') String username, @JsonKey(name: 'name') String name, @JsonKey(name: 'firstName') String firstName, @JsonKey(name: 'lastName') String lastName, @JsonKey(name: 'nationalID') String nationalID, @JsonKey(name: 'dateOfBirth') String dateOfBirth, @JsonKey(name: 'gender', fromJson: genderFromJson, toJson: genderToJson) Gender gender, @JsonKey(name: 'avatar') String avatar, @JsonKey(name: 'contacts') Contact? primaryContact, @JsonKey(name: 'secondaryContacts') List<Contact> secondaryContacts, @JsonKey(name: 'email') String email, @JsonKey(name: 'languages') List<String> languages, @JsonKey(name: 'currentOrganizationID') String currentOrganizationID, @JsonKey(name: 'currentProgramID') String currentProgramID, @JsonKey(name: 'active') bool active, @JsonKey(name: 'termsAccepted') bool termsAccepted, @JsonKey(name: 'hasSetPin') bool hasSetPin, @JsonKey(name: 'hasSetNickname') bool hasSetNickname, @JsonKey(name: 'isPhoneVerified') bool isPhoneVerified, @JsonKey(name: 'pinChangeRequired') bool pinChangeRequired, @JsonKey(name: 'pinUpdateRequired') bool pinUpdateRequired, @JsonKey(name: 'suspended') bool suspended, String streamToken)? $default,{required TResult orElse(),}) {final _that = this;
switch (_that) {
case _User() when $default != null:
return $default(_that.userId,_that.healthId,_that.username,_that.name,_that.firstName,_that.lastName,_that.nationalID,_that.dateOfBirth,_that.gender,_that.avatar,_that.primaryContact,_that.secondaryContacts,_that.email,_that.languages,_that.currentOrganizationID,_that.currentProgramID,_that.active,_that.termsAccepted,_that.hasSetPin,_that.hasSetNickname,_that.isPhoneVerified,_that.pinChangeRequired,_that.pinUpdateRequired,_that.suspended,_that.streamToken);case _:
return orElse();
}
}