import 'package:flutter/material.dart'; import 'package:flutter_redux/flutter_redux.dart'; import 'package:aman_kassa_flutter/redux/actions.dart'; import 'package:aman_kassa_flutter/redux/app_state.dart'; final RouteObserver routeObserver = RouteObserver(); class RouteAwareWidget extends StatefulWidget { final Widget child; RouteAwareWidget({this.child}); State createState() => RouteAwareWidgetState(child: child); } class RouteAwareWidgetState extends State with RouteAware { final Widget child; RouteAwareWidgetState({this.child}); @override void didChangeDependencies() { super.didChangeDependencies(); routeObserver.subscribe(this, ModalRoute.of(context)); } @override void dispose() { routeObserver.unsubscribe(this); super.dispose(); } @override void didPush() { // Route was pushed onto navigator and is now topmost route. } @override void didPopNext() { // Covering route was popped off the navigator. StoreProvider.of(context).dispatch(NavigatePopAction()); } @override Widget build(BuildContext context) => Container(child: child); }