buildSubscriptions<TViewModel extends AutoDisposeNotifier<TState>, TState extends EventEmitterState> static method

void buildSubscriptions<TViewModel extends AutoDisposeNotifier<TState>, TState extends EventEmitterState>(
  1. WidgetRef ref,
  2. AutoDisposeNotifierProvider<TViewModel, TState> state,
  3. dynamic buildEntries(
    1. ViewModelEventEntryListBuilder
    )
)

Implementation

static void buildSubscriptions<TViewModel extends AutoDisposeNotifier<TState>,
        TState extends EventEmitterState>(
    WidgetRef ref,
    AutoDisposeNotifierProvider<TViewModel, TState> state,
    Function(ViewModelEventEntryListBuilder) buildEntries) {
  ref.listen(state, (previous, next) {
    final event = next.event;
    if (event == null) return;

    var builder = ViewModelEventEntryListBuilder();
    buildEntries(builder);
    final eventEntries = builder.build();

    for (var handlerEntry in eventEntries) {
      if (handlerEntry.shouldHandle(event)) {
        handlerEntry.handler(event);
      }
    }
  });
}