Eduardo Florence

Updating only the current route overlay

@@ -114,9 +114,9 @@ class GetObserver extends NavigatorObserver { @@ -114,9 +114,9 @@ class GetObserver extends NavigatorObserver {
114 value.isBack = false; 114 value.isBack = false;
115 value.removed = ''; 115 value.removed = '';
116 value.previous = _extractRouteName(previousRoute) ?? ''; 116 value.previous = _extractRouteName(previousRoute) ?? '';
117 - value.isSnackbar = newRoute.isSnackbar;  
118 - value.isBottomSheet = newRoute.isBottomSheet;  
119 - value.isDialog = newRoute.isDialog; 117 + value.isSnackbar = newRoute.isSnackbar ? true : value.isSnackbar ?? false;
  118 + value.isBottomSheet = newRoute.isBottomSheet ? true : value.isBottomSheet ?? false;
  119 + value.isDialog = newRoute.isDialog ? true : value.isDialog ?? false;
120 }); 120 });
121 121
122 if (routing != null) { 122 if (routing != null) {
@@ -153,9 +153,9 @@ class GetObserver extends NavigatorObserver { @@ -153,9 +153,9 @@ class GetObserver extends NavigatorObserver {
153 value.isBack = true; 153 value.isBack = true;
154 value.removed = ''; 154 value.removed = '';
155 value.previous = newRoute.name ?? ''; 155 value.previous = newRoute.name ?? '';
156 - value.isSnackbar = false;  
157 - value.isBottomSheet = false;  
158 - value.isDialog = false; 156 + value.isSnackbar = currentRoute.isSnackbar ? false : value.isSnackbar;
  157 + value.isBottomSheet = currentRoute.isBottomSheet ? false : value.isBottomSheet;
  158 + value.isDialog = currentRoute.isDialog ? false : value.isDialog;
159 }); 159 });
160 160
161 routing?.call(_routeSend); 161 routing?.call(_routeSend);
@@ -194,6 +194,7 @@ class GetObserver extends NavigatorObserver { @@ -194,6 +194,7 @@ class GetObserver extends NavigatorObserver {
194 void didRemove(Route route, Route previousRoute) { 194 void didRemove(Route route, Route previousRoute) {
195 super.didRemove(route, previousRoute); 195 super.didRemove(route, previousRoute);
196 final routeName = _extractRouteName(route); 196 final routeName = _extractRouteName(route);
  197 + final currentRoute = _RouteData.ofRoute(route);
197 198
198 Get.log("REMOVING ROUTE $routeName"); 199 Get.log("REMOVING ROUTE $routeName");
199 _routeSend?.update((value) { 200 _routeSend?.update((value) {
@@ -201,6 +202,9 @@ class GetObserver extends NavigatorObserver { @@ -201,6 +202,9 @@ class GetObserver extends NavigatorObserver {
201 value.isBack = false; 202 value.isBack = false;
202 value.removed = routeName ?? ''; 203 value.removed = routeName ?? '';
203 value.previous = routeName ?? ''; 204 value.previous = routeName ?? '';
  205 + value.isSnackbar = currentRoute.isSnackbar ? false : value.isSnackbar;
  206 + value.isBottomSheet = currentRoute.isBottomSheet ? false : value.isBottomSheet;
  207 + value.isDialog = currentRoute.isDialog ? false : value.isDialog;
204 }); 208 });
205 209
206 routing?.call(_routeSend); 210 routing?.call(_routeSend);