@@ -114,9 +114,9 @@ class GetObserver extends NavigatorObserver {
114114 value.isBack = false ;
115115 value.removed = '' ;
116116 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 ;
120120 });
121121
122122 if (routing != null ) {
@@ -153,9 +153,9 @@ class GetObserver extends NavigatorObserver {
153153 value.isBack = true ;
154154 value.removed = '' ;
155155 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 ;
159159 });
160160
161161 routing? .call (_routeSend);
@@ -166,6 +166,7 @@ class GetObserver extends NavigatorObserver {
166166 super .didReplace (newRoute: newRoute, oldRoute: oldRoute);
167167 final newName = _extractRouteName (newRoute);
168168 final oldName = _extractRouteName (oldRoute);
169+ final currentRoute = _RouteData .ofRoute (oldRoute);
169170
170171 Get .log ("REPLACE ROUTE $oldName " );
171172 Get .log ("NEW ROUTE $newName " );
@@ -182,9 +183,9 @@ class GetObserver extends NavigatorObserver {
182183 value.isBack = false ;
183184 value.removed = '' ;
184185 value.previous = '$oldName ' ;
185- value.isSnackbar = false ;
186- value.isBottomSheet = false ;
187- value.isDialog = false ;
186+ value.isSnackbar = currentRoute.isSnackbar ? false : value.isSnackbar ;
187+ value.isBottomSheet = currentRoute.isBottomSheet ? false : value.isBottomSheet ;
188+ value.isDialog = currentRoute.isDialog ? false : value.isDialog ;
188189 });
189190
190191 routing? .call (_routeSend);
@@ -194,13 +195,18 @@ class GetObserver extends NavigatorObserver {
194195 void didRemove (Route route, Route previousRoute) {
195196 super .didRemove (route, previousRoute);
196197 final routeName = _extractRouteName (route);
198+ final currentRoute = _RouteData .ofRoute (route);
197199
198200 Get .log ("REMOVING ROUTE $routeName " );
201+
199202 _routeSend? .update ((value) {
200203 value.route = previousRoute;
201204 value.isBack = false ;
202205 value.removed = routeName ?? '' ;
203206 value.previous = routeName ?? '' ;
207+ value.isSnackbar = currentRoute.isSnackbar ? false : value.isSnackbar;
208+ value.isBottomSheet = currentRoute.isBottomSheet ? false : value.isBottomSheet;
209+ value.isDialog = currentRoute.isDialog ? false : value.isDialog;
204210 });
205211
206212 routing? .call (_routeSend);
0 commit comments