popToSelectOrFirstAndPushNamed<T extends RouteParams?> method

Future popToSelectOrFirstAndPushNamed<T extends RouteParams?>(
  1. String path, {
  2. List<T> args = const [],
})

Implementation

Future popToSelectOrFirstAndPushNamed<T extends RouteParams?>(
  String path, {
  List<T> args = const [],
}) async {
  final popParams = getArgumentAndClean<_PopParam>()?.popParams;

  final navigator = navigate;

  var returnAsExpected = false;

  navigator.popUntil((route) {
    if (route.settings.name == path) {
      return returnAsExpected = true;
    }
    return route.isFirst;
  });
  if (!returnAsExpected) {
    await pushNamed(path, args: [...args, popParams], navigator: navigator);
  }
}