Ahmed Fwela

predict anchorRoute when null

@@ -21,7 +21,7 @@ class HomeView extends GetView<HomeController> { @@ -21,7 +21,7 @@ class HomeView extends GetView<HomeController> {
21 return Scaffold( 21 return Scaffold(
22 body: GetRouterOutlet( 22 body: GetRouterOutlet(
23 initialRoute: Routes.DASHBOARD, 23 initialRoute: Routes.DASHBOARD,
24 - anchorRoute: Routes.HOME, 24 + // anchorRoute: Routes.HOME,
25 key: Get.nestedKey(Routes.HOME), 25 key: Get.nestedKey(Routes.HOME),
26 ), 26 ),
27 bottomNavigationBar: BottomNavigationBar( 27 bottomNavigationBar: BottomNavigationBar(
@@ -19,7 +19,7 @@ class RootView extends GetView<RootController> { @@ -19,7 +19,7 @@ class RootView extends GetView<RootController> {
19 ), 19 ),
20 body: GetRouterOutlet( 20 body: GetRouterOutlet(
21 initialRoute: Routes.HOME, 21 initialRoute: Routes.HOME,
22 - anchorRoute: '/', 22 + // anchorRoute: '/',
23 filterPages: (afterAnchor) { 23 filterPages: (afterAnchor) {
24 return afterAnchor.take(1); 24 return afterAnchor.take(1);
25 }, 25 },
@@ -83,8 +83,18 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { @@ -83,8 +83,18 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> {
83 GlobalKey<NavigatorState>? key, 83 GlobalKey<NavigatorState>? key,
84 }) : this.pickPages( 84 }) : this.pickPages(
85 pickPages: (config) { 85 pickPages: (config) {
86 - var ret = config.currentTreeBranch  
87 - .pickAfterRoute(anchorRoute ?? initialRoute); 86 + Iterable<GetPage<dynamic>> ret;
  87 + if (anchorRoute == null) {
  88 + //anchorRoute = initialRoute minus last segment
  89 + final parsedUri = Uri.parse(initialRoute);
  90 + final replacedUri = parsedUri.replace(
  91 + pathSegments: parsedUri.pathSegments.take(
  92 + parsedUri.pathSegments.length - 1,
  93 + ),
  94 + );
  95 + anchorRoute = '/$replacedUri';
  96 + }
  97 + ret = config.currentTreeBranch.pickAfterRoute(anchorRoute!);
88 if (filterPages != null) { 98 if (filterPages != null) {
89 ret = filterPages(ret); 99 ret = filterPages(ret);
90 } 100 }
@@ -145,10 +155,12 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> { @@ -145,10 +155,12 @@ class GetRouterOutlet extends RouterOutlet<GetDelegate, GetNavConfig> {
145 155
146 extension PagesListExt on List<GetPage> { 156 extension PagesListExt on List<GetPage> {
147 Iterable<GetPage> pickAtRoute(String route) { 157 Iterable<GetPage> pickAtRoute(String route) {
148 - return skipWhile((value) => value.name != route).toList(); 158 + return skipWhile((value) {
  159 + return value.name != route;
  160 + });
149 } 161 }
150 162
151 Iterable<GetPage> pickAfterRoute(String route) { 163 Iterable<GetPage> pickAfterRoute(String route) {
152 - return skipWhile((value) => value.name != route).skip(1).toList(); 164 + return pickAtRoute(route).skip(1);
153 } 165 }
154 } 166 }