Jonny Borges

update to 4.3.7

## [4.3.7]
- Fix wrong currentRoute when a route is removed
- Remove take that limits the router outlet depth (@steven-spiel)
## [4.3.6]
- Fix error with autodispose of additional dependencies beyond GetxController
- Added ability to add your own delegate to RouterOutlet (@steven-spiel)
... ...
... ... @@ -70,8 +70,10 @@ class HomeView extends GetView<HomeController> {
),
shape: StadiumBorder(),
),
onPressed: () {
Get.rootDelegate.toNamed('/home/country');
onPressed: () async {
final data =
await Get.rootDelegate.toNamed('/home/country');
print('DATA: $data');
},
child: Text(
'fetch_country'.tr,
... ...
... ... @@ -334,9 +334,9 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
final completer = Completer<T>();
if (decoder.route != null) {
_allCompleters[decoder.route!] = completer;
pushHistory(
await pushHistory(
GetNavConfig(
currentTreeBranch: decoder.treeBranch,
location: page,
... ... @@ -345,15 +345,37 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
);
return completer.future;
} else {
///TODO: IMPLEMENT ROUTE NOT FOUND
return Future.value();
}
}
Future<void> offNamed(
Future<T?>? offAndToNamed<T>(
String page, {
dynamic arguments,
int? id,
dynamic result,
Map<String, String>? parameters,
PopMode popMode = PopMode.History,
}) async {
await toNamed(page, arguments: arguments, parameters: parameters);
await _unsafeHistoryRemoveAt(history.length - 2);
if (parameters != null) {
final uri = Uri(path: page, queryParameters: parameters);
page = uri.toString();
}
await popRoute(result: result);
return toNamed(page, arguments: arguments, parameters: parameters);
}
Future<T> offNamed<T>(
String page, {
dynamic arguments,
Map<String, String>? parameters,
}) async {
history.removeLast();
return toNamed<T>(page, arguments: arguments, parameters: parameters);
}
/// Removes routes according to [PopMode]
... ... @@ -422,8 +444,12 @@ class GetDelegate extends RouterDelegate<GetNavConfig>
if (config != null) {
_removeHistoryEntry(config);
}
if (_allCompleters.containsKey(settings)) {
_allCompleters[settings]?.complete(route.popped);
}
}
refresh();
return true;
}
}
... ...
... ... @@ -88,9 +88,7 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> {
if (anchorRoute == null) {
// jump the ancestor path
final length = Uri.parse(initialRoute).pathSegments.length;
return config.currentTreeBranch
.skip(length)
.toList();
return config.currentTreeBranch.skip(length).toList();
}
ret = config.currentTreeBranch.pickAfterRoute(anchorRoute);
if (filterPages != null) {
... ...
... ... @@ -174,6 +174,8 @@ class GetPage<T> extends Page<T> {
);
}
late Future<T?> popped;
@override
Route<T> createRoute(BuildContext context) {
// return GetPageRoute<T>(settings: this, page: page);
... ... @@ -182,6 +184,8 @@ class GetPage<T> extends Page<T> {
settings: this,
unknownRoute: unknownRoute,
).getPageToRoute<T>(this, unknownRoute);
popped = _page.popped;
return _page;
}
}
... ...
... ... @@ -156,7 +156,7 @@ class GetObserver extends NavigatorObserver {
value.current = _extractRouteName(previousRoute) ?? '';
}
value.args = previousRoute.settings.arguments;
value.args = previousRoute?.settings.arguments;
value.route = previousRoute;
value.isBack = true;
value.removed = '';
... ...
name: get
description: Open screens/snackbars/dialogs without context, manage states and inject dependencies easily with GetX.
version: 4.3.6
version: 4.3.7
homepage: https://github.com/jonataslaw/getx
environment:
... ...