Showing
1 changed file
with
7 additions
and
14 deletions
| @@ -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, |
-
Please register or login to post a comment