Ahmed Fwela

fixed named parameter parsing

@@ -36,30 +36,22 @@ class ParseRouteTree { @@ -36,30 +36,22 @@ class ParseRouteTree {
36 } 36 }
37 37
38 final treeBranch = cumulativePaths 38 final treeBranch = cumulativePaths
39 - .map(  
40 - (p) {  
41 - final res = _findRoute(p);  
42 - //change GetPage name from the regex to the actual name  
43 - return res?.copy(  
44 - name: p,  
45 - );  
46 - },  
47 - )  
48 - .where((element) => element != null)  
49 - .cast<GetPage>() 39 + .map((e) => MapEntry(e, _findRoute(e)))
  40 + .where((element) => element.value != null)
50 .toList(); 41 .toList();
  42 +
51 final params = Map<String, String>.from(uri.queryParameters); 43 final params = Map<String, String>.from(uri.queryParameters);
52 if (treeBranch.isNotEmpty) { 44 if (treeBranch.isNotEmpty) {
53 //route is found, do further parsing to get nested query params 45 //route is found, do further parsing to get nested query params
54 final lastRoute = treeBranch.last; 46 final lastRoute = treeBranch.last;
55 - final parsedParams = _parseParams(name, lastRoute.path); 47 + final parsedParams = _parseParams(name, lastRoute.value!.path);
56 if (parsedParams.isNotEmpty) { 48 if (parsedParams.isNotEmpty) {
57 params.addAll(parsedParams); 49 params.addAll(parsedParams);
58 } 50 }
59 //copy parameters to all pages. 51 //copy parameters to all pages.
60 final mappedTreeBranch = treeBranch 52 final mappedTreeBranch = treeBranch
61 .map( 53 .map(
62 - (e) => e.copy( 54 + (e) => e.value!.copy(
63 parameter: params, 55 parameter: params,
64 ), 56 ),
65 ) 57 )
@@ -72,7 +64,7 @@ class ParseRouteTree { @@ -72,7 +64,7 @@ class ParseRouteTree {
72 64
73 //route not found 65 //route not found
74 return RouteDecoder( 66 return RouteDecoder(
75 - treeBranch, 67 + treeBranch.map((e) => e.value!).toList(),
76 params, 68 params,
77 ); 69 );
78 } 70 }
@@ -132,6 +124,7 @@ class ParseRouteTree { @@ -132,6 +124,7 @@ class ParseRouteTree {
132 opaque: origin.opaque, 124 opaque: origin.opaque,
133 parameter: origin.parameter, 125 parameter: origin.parameter,
134 popGesture: origin.popGesture, 126 popGesture: origin.popGesture,
  127 +
135 // settings: origin.settings, 128 // settings: origin.settings,
136 transitionDuration: origin.transitionDuration, 129 transitionDuration: origin.transitionDuration,
137 middlewares: middlewares, 130 middlewares: middlewares,