whenWith<T> method

MessageHandlerWhenWithContextBuilder<M, T> whenWith<T>(
  1. FutureOr<T> context(
    1. MessageContext ctx,
    2. M message
    ),
  2. FutureOr<bool> condition(
    1. MessageContext msgCtx,
    2. M msg,
    3. T ctx
    ),
  3. void buildTrueHandler(
    1. MessageHandlerBuilder<M>
    ), {
  4. String? label,
})

Implementation

MessageHandlerWhenWithContextBuilder<M, T> whenWith<T>(
  FutureOr<T> Function(MessageContext ctx, M message) context,
  FutureOr<bool> Function(MessageContext msgCtx, M msg, T ctx) condition,
  void Function(MessageHandlerBuilder<M>) buildTrueHandler, {
  String? label,
}) {
  var trueBuilder = MessageHandlerBuilder<M>._(_forState, _messageName);
  buildTrueHandler(trueBuilder);
  var conditions = [
    _MessageConditionWithContext<M, T>(
      condition,
      trueBuilder._handler!,
      label,
    )
  ];
  _handler = _WhenWithContextDescriptor.createForMessage<M, T>(context, conditions);
  return MessageHandlerWhenWithContextBuilder<M, T>(_forState, conditions, _messageName);
}