maybeWhen<TResult extends Object?> method

  1. @optionalTypeArgs
TResult maybeWhen<TResult extends Object?>({
  1. TResult string(
    1. String labelBuilder(
      1. T data
      ),
    2. Color? backgroundColor,
    3. TextStyle? labelStyle,
    4. OutlinedBorder? shape,
    5. Color? deleteIconColor,
    6. Widget? deleteIcon,
    7. Widget? avatar,
    8. BoxConstraints? avatarBoxConstraints,
    9. EdgeInsetsGeometry? labelPadding,
    10. BorderSide side,
    )?,
  2. TResult custom(
    1. Widget builder(
      1. BuildContext context,
      2. T data,
      3. void delete()
      )
    )?,
  3. 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 Function(T data) labelBuilder,  Color? backgroundColor,  TextStyle? labelStyle,  OutlinedBorder? shape,  Color? deleteIconColor,  Widget? deleteIcon,  Widget? avatar,  BoxConstraints? avatarBoxConstraints,  EdgeInsetsGeometry? labelPadding,  BorderSide side)?  string,TResult Function( Widget Function(BuildContext context, T data, void Function() delete) builder)?  custom,required TResult orElse(),}) {final _that = this;
switch (_that) {
case DataDisplayBuilderString() when string != null:
return string(_that.labelBuilder,_that.backgroundColor,_that.labelStyle,_that.shape,_that.deleteIconColor,_that.deleteIcon,_that.avatar,_that.avatarBoxConstraints,_that.labelPadding,_that.side);case DataDisplayBuilderWidget() when custom != null:
return custom(_that.builder);case _:
  return orElse();

}
}