which<T extends Widget> method

PatrolFinder which<T extends Widget>(
  1. bool predicate(
    1. T widget
    )
)

Returns a finder matching widget of type T which also fulfills predicate.

See also:

Implementation

PatrolFinder which<T extends Widget>(bool Function(T widget) predicate) {
  return PatrolFinder(
    finder: find.descendant(
      matchRoot: true,
      of: this,
      matching: find.byWidgetPredicate((widget) {
        if (widget is! T) {
          return false;
        }
        final foundWidgets = evaluate().map(
          (e) => e.widget,
        );
        if (!foundWidgets.contains(widget)) {
          return false;
        }
        return predicate(widget);
      }),
    ),
    tester: tester,
  );
}