StreamsListener2<P1 extends StreamsProvidable, P2 extends StreamsProvidable, T> constructor

StreamsListener2<P1 extends StreamsProvidable, P2 extends StreamsProvidable, T>({
  1. Key? key,
  2. P1? provider1,
  3. P2? provider2,
  4. Stream<T> selector(
    1. BuildContext,
    2. P1,
    3. P2
    )?,
  5. StreamsWidgetListener<T>? listener,
  6. StreamsListenable2<P1, P2, T>? listenable,
  7. Widget? child,
})

Implementation

StreamsListener2({
  Key? key,
  P1? provider1,
  P2? provider2,
  Stream<T> Function(BuildContext, P1, P2)? selector,
  StreamsWidgetListener<T>? listener,
  StreamsListenable2<P1, P2, T>? listenable,
  Widget? child,
})  : assert(listenable != null || (listener != null && selector != null)),
      super(
        key: key,
        child: child,
        selector: (context) {
          final p1 = provider1 ?? StreamsProvider.of<P1>(context);
          final p2 = provider2 ?? StreamsProvider.of<P2>(context);

          if (selector != null) return selector(context, p1, p2);

          return listenable!.selector(context, p1, p2);
        },
        listener: listener ??
            (context, data) => listenable!.handler(
                  context,
                  provider1 ?? StreamsProvider.of(context),
                  provider2 ?? StreamsProvider.of(context),
                  data,
                ),
      );