wmr icon indicating copy to clipboard operation
wmr copied to clipboard

Router segment wildcards don't match when no segment is provided

Open ollelogdahl opened this issue 2 years ago • 1 comments

Describe the bug When trying to resolve a subrouter that has a / path, it fails.

To Reproduce Steps to reproduce the behavior:

function Ok() {
	return (
		<p>Ok</p>
	)
}

function Inner() {
	return (
		<Router>
			<Route path='/' component={Ok} />
			<Route path='/a' component={Ok} />
		</Router>
	)
}

function Outer() {
	return (
		<LocationProvider>
			<Router>
				<Inner path='/more/*' />
				<Inner path='/*' />
			</Router>
		</LocationProvider>
	)
}

render(<Outer />, document.body);

Expected behavior

I expect / in a subrouter to resolve if there is no extention to what the outer router matched.

  • / Should resolve
  • /a Should resolve
  • /more Should resolve
  • /more/a Should resolve

Only /a and /more/a resolves at the moment.

Bug occurs with: Just using preact-iso in dev-mode.

Desktop (please complete the following information):

ollelogdahl avatar Jul 12 '23 10:07 ollelogdahl

Personally, I'd call this behavior correct. / and /* are two different patterns and should be handled as such.

rschristian avatar Jul 14 '23 03:07 rschristian