pullback<PS, PE, PA extends ReducerAction> method

EffectTask<PS, PE, PA> pullback<PS, PE, PA extends ReducerAction>({
  1. required S toChildState(
    1. PS
    ),
  2. required E toChildEnvironment(
    1. PE
    ),
  3. required PA fromChildAction(
    1. A
    ),
  4. required BuildContext? toChildContext(
    1. BuildContext?
    ),
})

Implementation

EffectTask<PS, PE, PA> pullback<PS, PE, PA extends ReducerAction>({
  required S Function(PS) toChildState,
  required E Function(PE) toChildEnvironment,
  required PA Function(A) fromChildAction,
  required BuildContext? Function(BuildContext?) toChildContext,
}) {
  return EffectTask((parentState, parentEnv, parentContext) async {
    final optionalAction = await run(
      toChildState(parentState),
      toChildEnvironment(parentEnv),
      toChildContext(parentContext),
    );

    if (optionalAction == null) {
      return null;
    } else {
      return fromChildAction(optionalAction);
    }
  });
}