aman-kassa-flutter/lib/core/services/navigator_service.dart

48 lines
1.5 KiB
Dart

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