Fix: Small fix for location hash/fragment #2464
Merged
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.
The current location hash implementation will replace all
#
chars in the fragment, which shouldn't be the case.While, according to spec,
#
is not allowed in the fragment portion of the URL, browsers tend to be lenient towards enforcing this. Opening a URL in your browser (be it Chrome or Firefox) with#
in the fragment will get accepted and returned in your location hash.Consider https://github.com/leptos-rs/leptos/#test#bar. Your location hash will return (in Javascript)
#test#bar
.The current implementation in Leptos will return
testbar
while the new implementation will returntest#bar
, which fits the docs better of the function:A small side-note: I've contemplated simply always removing the first char of the fragment (since this should always be
#
anyways). Like so:if s.is_empty() { s } else { s[1..].to_string() }
. I've decided against it, but if you (the reviewer) prefers this implementation, please let me know and I'll update it.