Jonny Borges
Committed by GitHub

Merge pull request #1814 from xiangzy1/master

fix: currentRoute wrong when push page in dialog
@@ -112,12 +112,15 @@ class GetObserver extends NavigatorObserver { @@ -112,12 +112,15 @@ class GetObserver extends NavigatorObserver {
112 if (route is PageRoute) { 112 if (route is PageRoute) {
113 value.current = newRoute.name ?? ''; 113 value.current = newRoute.name ?? '';
114 } 114 }
  115 + final previousRouteName = _extractRouteName(previousRoute);
  116 + if (previousRouteName != null) {
  117 + value.previous = previousRouteName;
  118 + }
115 119
116 value.args = route.settings.arguments; 120 value.args = route.settings.arguments;
117 value.route = route; 121 value.route = route;
118 value.isBack = false; 122 value.isBack = false;
119 value.removed = ''; 123 value.removed = '';
120 - value.previous = _extractRouteName(previousRoute) ?? '';  
121 value.isSnackbar = newRoute.isSnackbar ? true : value.isSnackbar ?? false; 124 value.isSnackbar = newRoute.isSnackbar ? true : value.isSnackbar ?? false;
122 value.isBottomSheet = 125 value.isBottomSheet =
123 newRoute.isBottomSheet ? true : value.isBottomSheet ?? false; 126 newRoute.isBottomSheet ? true : value.isBottomSheet ?? false;
@@ -154,13 +157,15 @@ class GetObserver extends NavigatorObserver { @@ -154,13 +157,15 @@ class GetObserver extends NavigatorObserver {
154 // Only PageRoute is allowed to change current value 157 // Only PageRoute is allowed to change current value
155 if (previousRoute is PageRoute) { 158 if (previousRoute is PageRoute) {
156 value.current = _extractRouteName(previousRoute) ?? ''; 159 value.current = _extractRouteName(previousRoute) ?? '';
  160 + value.previous = newRoute.name ?? '';
  161 + } else if (value.previous.isNotEmpty) {
  162 + value.current = value.previous;
157 } 163 }
158 164
159 value.args = previousRoute?.settings.arguments; 165 value.args = previousRoute?.settings.arguments;
160 value.route = previousRoute; 166 value.route = previousRoute;
161 value.isBack = true; 167 value.isBack = true;
162 value.removed = ''; 168 value.removed = '';
163 - value.previous = newRoute.name ?? '';  
164 value.isSnackbar = newRoute.isSnackbar; 169 value.isSnackbar = newRoute.isSnackbar;
165 value.isBottomSheet = newRoute.isBottomSheet; 170 value.isBottomSheet = newRoute.isBottomSheet;
166 value.isDialog = newRoute.isDialog; 171 value.isDialog = newRoute.isDialog;