pushAndRemoveUntil method
Push a new route and remove routes until the given predicate returns
true
See Navigator.pushAndRemoveUntil for more details
Implementation
void pushAndRemoveUntil(
String path,
RoutePredicate predicate, {
Map<String, dynamic>? extra,
}) {
try {
final context = _currentContext;
if (context == null) {
if (_enableLogger) {
debugPrint('NavService.pushAndRemoveUntil: No valid context found.');
}
return;
}
final navExtra = NavExtra(extra ?? {});
final route = _routes[path];
if (route == null) {
if (_enableLogger) {
debugPrint(
'NavService.pushAndRemoveUntil: Route not found for path: $path',
);
}
return;
}
Navigator.of(context).pushAndRemoveUntil(
_buildPageRoute<dynamic>(path: path, extra: navExtra, route: route),
predicate,
);
// ignore: avoid_catches_without_on_clauses
} catch (e, st) {
if (_enableLogger) {
debugPrint('NavService.pushAndRemoveUntil.exception: $e\n$st');
}
}
}