28 lines
992 B
Dart
28 lines
992 B
Dart
import 'package:redux/redux.dart';
|
|
import 'package:aman_kassa_flutter/main.dart';
|
|
import 'package:aman_kassa_flutter/redux/actions.dart';
|
|
import 'package:aman_kassa_flutter/redux/app_state.dart';
|
|
|
|
List<Middleware<AppState>> createNavigationMiddleware() {
|
|
return [
|
|
TypedMiddleware<AppState, NavigateReplaceAction>(_navigateReplace),
|
|
TypedMiddleware<AppState, NavigatePushAction>(_navigate),
|
|
];
|
|
}
|
|
|
|
_navigateReplace(Store<AppState> store, action, NextDispatcher next) {
|
|
final routeName = (action as NavigateReplaceAction).routeName;
|
|
if (store.state.route.last != routeName) {
|
|
navigatorKey.currentState.pushReplacementNamed(routeName);
|
|
}
|
|
next(action); //This need to be after name checks
|
|
}
|
|
|
|
_navigate(Store<AppState> store, action, NextDispatcher next) {
|
|
final routeName = (action as NavigatePushAction).routeName;
|
|
if (store.state.route.last != routeName) {
|
|
navigatorKey.currentState.pushNamed(routeName);
|
|
}
|
|
next(action); //This need to be after name checks
|
|
}
|