Ensure to match against the most specific route#87
Merged
Conversation
rorticus
approved these changes
Aug 29, 2018
rorticus
reviewed
Aug 29, 2018
| for (let i = 0; i < segments.length; i++) { | ||
| const segment = segments[i]; | ||
| if (typeof segment === 'string' && segment[0] === '{') { | ||
| route.score += 7; |
Contributor
There was a problem hiding this comment.
Might want to create constants for these numbers so we know what they mean!
JamesLMilner
approved these changes
Sep 4, 2018
| action: 'enter' | 'exit'; | ||
| } | ||
|
|
||
| const ROUTE_SEGMENT_SCORE = 7; |
Contributor
There was a problem hiding this comment.
These numbers look fairly arbitrary at first glance. Perhaps a comment to clarify?
Member
Author
There was a problem hiding this comment.
They actually are fairly arbitrary, I went for a score that meant we could introduce other types of segments in the future (like maybe wild card, which would have an even smaller score).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Type: feature/bug
The following has been addressed in the PR:
prettieras per the readme code style guidelinesDescription:
For routing the first match route specified in the configuration will be considered "the one", even if there is a more exact match in a later route within the configuration.
Assuming a routing configuration:
Current Behaviour
Routing to
/bar, should match against thebaroutlet as it's more specific (a string literal match) but currently would match against theparamoutlet because it is registered first.Routing to
/foo/bazwould currently match against the outlet,foo-onewith a type of partial, rather then correctly matching against the more exact outlet matchbaz.Updated Bahaviour
Routing to
/bar, will match against thebaroutlet as it's more specific (a string literal match).Routing to
/foo/bazwill match against outletbaz.Resolves #83