when method

TransitionHandlerWhenBuilder<D, C> when(
  1. FutureOr<bool> condition(
    1. TransitionHandlerContext<D, C> ctx
    ),
  2. void buildTrueHandler(
    1. TransitionHandlerBuilder<D, C> builder
    ), {
  3. String? label,
})

Adds a conditional transition behavior, in the same manner as TransitionHandlerBuilder.when.

Implementation

TransitionHandlerWhenBuilder<D, C> when(
  FutureOr<bool> Function(TransitionHandlerContext<D, C> ctx) condition,
  void Function(TransitionHandlerBuilder<D, C> builder) buildTrueHandler, {
  String? label,
}) {
  var trueBuilder = _makeBuilder();
  buildTrueHandler(trueBuilder);

  var whenTrueDescr = trueBuilder._descriptor;
  if (whenTrueDescr != null) {
    var conditionInfo = TransitionConditionInfo(label, whenTrueDescr.info);
    _conditions.add(
      TransitionConditionDescriptor.withData<D, C>(
        conditionInfo,
        condition,
        whenTrueDescr,
      ),
    );
  }
  return this;
}