useBlocListener<BLOC extends BlocBase<S>, S> function

void useBlocListener<BLOC extends BlocBase<S>, S>(
  1. BLOC bloc,
  2. BlocListener<BLOC, S> listener, {
  3. BlocListenerCondition<S>? listenWhen,
})

Calls callback function listener each time when listenWhen conditions are fulfilled

listener callback function listenWhen local filter function, that will pass incoming states from BlocBase.stream. By default passes all states.

Implementation

void useBlocListener<BLOC extends BlocBase<S>, S>(
  BLOC bloc,
  BlocListener<BLOC, S> listener, {
  BlocListenerCondition<S>? listenWhen,
}) {
  final context = useContext();
  final configuredListener = useHookedBlocConfig().listenerCondition;
  final listenWhenConditioner = listenWhen ?? configuredListener;

  useEffect(
    () {
      final subscription = bloc.stream.where(listenWhenConditioner).listen(
            (state) => listener(
              bloc,
              state,
              context,
            ),
          );

      return subscription.cancel;
    },
    [bloc],
  );
}