pushView method
Implementation
Future<void> pushView(BeagleRoute route, BuildContext context) async {
final routeId = _getRouteId(route);
final beagleViewWidget = beagle.createView(rootNavigator);
bool completed = false;
void complete() {
if (completed) return;
final Route<dynamic> materialRoute = _buildRoute(beagleViewWidget.widget, routeId);
_thisNavigatorKey.currentState!.push(materialRoute);
_addHistory(routeId, beagleViewWidget.view);
completed = true;
}
if (route is LocalView) {
setNavigationContext(route.navigationContext, beagleViewWidget.view.getLocalContexts(), false);
controller.onSuccess(view: beagleViewWidget.view, context: context, screen: route.screen);
complete();
} else {
await _fetchContentAndUpdateView(
route: route,
context: context,
view: beagleViewWidget.view,
completeNavigation: complete,
navigationContext: route.navigationContext,
);
}
}