goto method

Future<void> goto(
  1. String? url, {
  2. String? transition,
  3. required dynamic initiator,
})

Implementation

Future<void> goto(String? url, {String? transition, required dynamic initiator}) async {

  // page in navigation history?
  var list = _pages.reversed.toList();

  // find the page
  Page? page;
  if (url == "/" && _pages.isNotEmpty) {
    page = _pages.first;
  } else {
    page = list.firstWhereOrNull((page) => (page.name == url));
  }

  // open the page if not found in the navigation history
  if (page == null) return _open(url, transition: transition);

  var i = list.indexOf(page);

  // go back
  _goBack(i, initiator: initiator);
}