maybeWhen<TResult extends Object?> method
TResult
maybeWhen<TResult extends Object?>({
- TResult text()?,
- TResult card()?,
- TResult carousel(
- String id,
- List<
RichComponent> items, - CarouselConfig? config
- TResult productList(
- String id,
- List<
RichComponent> items, - ProductListConfig? config
- TResult image()?,
- TResult buttonGroup(
- String id,
- List<
RichButton> buttons, - String layout
- 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( String content, String format)? text,TResult Function( String id, RichImage? image, String title, String? subtitle, String? description, @JsonKey(fromJson: _metadataFromJson) Map<String, String>? metadata, List<RichAction>? actions)? card,TResult Function( String id, List<RichComponent> items, CarouselConfig? config)? carousel,TResult Function( String id, List<RichComponent> items, ProductListConfig? config)? productList,TResult Function( String id, String url, String? alt, String? caption, @JsonKey(name: 'aspect_ratio') String? aspectRatio, List<RichAction>? actions)? image,TResult Function( String id, List<RichButton> buttons, String layout)? buttonGroup,required TResult orElse(),}) {final _that = this;
switch (_that) {
case TextComponent() when text != null:
return text(_that.content,_that.format);case CardComponent() when card != null:
return card(_that.id,_that.image,_that.title,_that.subtitle,_that.description,_that.metadata,_that.actions);case CarouselComponent() when carousel != null:
return carousel(_that.id,_that.items,_that.config);case ProductListComponent() when productList != null:
return productList(_that.id,_that.items,_that.config);case ImageComponent() when image != null:
return image(_that.id,_that.url,_that.alt,_that.caption,_that.aspectRatio,_that.actions);case ButtonGroupComponent() when buttonGroup != null:
return buttonGroup(_that.id,_that.buttons,_that.layout);case _:
return orElse();
}
}