useActionListener<ACTION> function

void useActionListener<ACTION>(
  1. BlocActionMixin<ACTION, Object> actionMixin,
  2. OnActionCallback<ACTION> onAction, {
  3. ActionListenerCondition<ACTION>? actionWhen,
})

Calls callback function onAction each time, when new action is dispatched from BlocBase with BlocActionMixin, ActionCubit or ActionBloc

Implementation

void useActionListener<ACTION>(
  BlocActionMixin<ACTION, Object> actionMixin,
  OnActionCallback<ACTION> onAction, {
  ActionListenerCondition<ACTION>? actionWhen,
}) {
  useEffect(
    () {
      final subscription = actionMixin.actions.listen((action) {
        if(actionWhen == null || actionWhen(actionMixin.previousAction, action)) {
          onAction(action);
        }
      });
      return subscription.cancel;
    },
    [actionMixin],
  );
}