didPop method
The Navigator popped route
.
The route immediately below that one, and thus the newly active
route, is previousRoute
.
Implementation
@override
void didPop(Route route, Route? previousRoute) {
super.didPop(route, previousRoute);
final currentRoute = _RouteData.ofRoute(route);
final newRoute = _RouteData.ofRoute(previousRoute);
// Log appropriate message based on route type
switch (currentRoute) {
case var r when r.isBottomSheet || r.isDialog:
Get.log("CLOSE ${r.name}");
case var r when r.isGetPageRoute:
Get.log("CLOSE TO ROUTE ${r.name}");
default:
// No logging needed
break;
}
// Report the current route if available
if (previousRoute != null) {
RouterReportManager.instance.reportCurrentRoute(previousRoute);
}
// Update routing information
_routeSend?.update((value) {
// Update current and previous route information
switch (previousRoute) {
case PageRoute():
value.current = _extractRouteName(previousRoute) ?? "";
value.previous = newRoute.name ?? "";
case _ when value.previous.isNotEmpty:
value.current = value.previous;
default:
// Keep current value
break;
}
// Update other routing properties
value.args = previousRoute?.settings.arguments;
value.route = previousRoute;
value.isBack = true;
value.removed = "";
value.isBottomSheet = newRoute.isBottomSheet;
value.isDialog = newRoute.isDialog;
});
routing?.call(_routeSend);
}