@@ -66,33 +66,12 @@ function getMatchingRoute(pathname, activeRoutes, activeParams) {
66
66
* Returns true if the given pathname matches the active routes
67
67
* and params.
68
68
*/
69
- function routeIsActive ( pathname , activeRoutes , activeParams , indexOnly ) {
70
- let route = getMatchingRoute ( pathname , activeRoutes , activeParams )
71
-
72
- if ( route == null ) {
73
- return false
74
- }
75
-
69
+ function routeIsActive ( pathname , location , routes , params , indexOnly ) {
76
70
if ( indexOnly ) {
77
- if ( activeRoutes . length < 2 ) {
78
- return false
79
- }
80
-
81
- const lastRoute = activeRoutes [ activeRoutes . length - 1 ]
82
- if ( route . indexRoute ) {
83
- return lastRoute === route . indexRoute
84
- }
85
-
86
- // TODO: Should we also return true if lastRoute is route?
87
-
88
- // In case the index route was configured via getIndexRoute.
89
- return (
90
- activeRoutes [ activeRoutes . length - 2 ] === route &&
91
- ! lastRoute . path // Pathless route must have been the index route.
92
- )
71
+ return location . pathname . replace ( / \/ * $ / ) === pathname . replace ( / \/ * $ / )
93
72
}
94
73
95
- return true
74
+ return getMatchingRoute ( pathname , routes , params ) != null
96
75
}
97
76
98
77
/**
@@ -117,7 +96,7 @@ function isActive(pathname, query, indexOnly, location, routes, params) {
117
96
if ( location == null )
118
97
return false
119
98
120
- if ( ! routeIsActive ( pathname , routes , params , indexOnly ) )
99
+ if ( ! routeIsActive ( pathname , location , routes , params , indexOnly ) )
121
100
return false
122
101
123
102
return queryIsActive ( query , location . query )
0 commit comments