import '../../core/base/base_service.dart'; import 'package:flutter/material.dart'; class NavigatorService extends BaseService { final GlobalKey navigatorKey = GlobalKey(); final GlobalKey scaffoldDrawerKey = GlobalKey(); Future push(String routeName, {dynamic arguments}) { log.d('routeName: $routeName'); return navigatorKey.currentState .pushNamed(routeName, arguments: arguments); } Future replace(String routeName, {dynamic arguments}) { log.d('routeName: $routeName'); return navigatorKey.currentState .pushNamedAndRemoveUntil(routeName, (Route route) => false, arguments: arguments); } Future navigateToPage(MaterialPageRoute pageRoute) async { log.d('navigateToPage: pageRoute: ${pageRoute.settings.name}'); if (navigatorKey.currentState == null) { log.e('navigateToPage: Navigator State is null'); return null; } return navigatorKey.currentState.push(pageRoute); } Future navigateToPageWithReplacement( MaterialPageRoute pageRoute) async { log.d('navigateToPageWithReplacement: ' 'pageRoute: ${pageRoute.settings.name}'); if (navigatorKey.currentState == null) { log.e('navigateToPageWithReplacement: Navigator State is null'); return null; } return navigatorKey.currentState.pushReplacement(pageRoute); } void pop([T result]) { log.d('goBack:'); if (navigatorKey.currentState == null) { log.e('goBack: Navigator State is null'); return; } navigatorKey.currentState.pop(result); } }