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); } }