backTo<T> method

  1. @override
void backTo<T>({
  1. Route? route,
  2. String? identifier,
  3. bool predicate(
    1. Route
    )?,
  4. Route? open,
})
override

Goes back in navigation stack until Route found.

Implementation

@override
void backTo<T>({
  Route? route,
  String? identifier,
  bool Function(Route<dynamic>)? predicate,
  Route? open,
}) {
  if (predicate == null) {
    if (T != dynamic) {
      identifier = RouteStore.routeIdentifier<T>(identifier);
    }

    if (route != null) {
      predicate = (item) => item == route || item.isFirst;
    }

    if (identifier != null) {
      predicate = (item) => item.settings.name == identifier || item.isFirst;
    }
  }

  if (predicate != null) {
    if (open != null) {
      getNavigator().pushAndRemoveUntil(open, predicate);
    } else {
      getNavigator().popUntil(predicate);
    }
  }
}