Skip to content

fix: navigation respects basepath when no to was given #4472

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 13 commits into from
Jun 22, 2025

Conversation

jvllmr
Copy link
Contributor

@jvllmr jvllmr commented Jun 19, 2025

Simple fix by passing "." to Router.resolvePathWithBase instead of using fromPath. Parameterized relative URL tests with basepath to avoid future regressions. I also managed to reproduce the issue this way.

fixes #4401
fixes #4471

@jvllmr jvllmr changed the title fix: navigation respects basepath when no to was given fix: navigation respects basepath when no to was given Jun 19, 2025
Copy link

nx-cloud bot commented Jun 20, 2025

View your CI Pipeline Execution ↗ for commit 6b8052c.

Command Status Duration Result
nx affected --targets=test:eslint,test:unit,tes... ✅ Succeeded 1m 27s View ↗
nx run-many --target=build --exclude=examples/*... ✅ Succeeded 1s View ↗

☁️ Nx Cloud last updated this comment at 2025-06-22 22:55:37 UTC

@schiller-manuel
Copy link
Contributor

thanks for your PR!

I am wondering why this works, given that this user wrote:

#4401 (comment)
Screenshot 2025-06-21 at 01 05 50

Copy link

pkg-pr-new bot commented Jun 20, 2025

More templates

@tanstack/arktype-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/arktype-adapter@4472

@tanstack/directive-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/directive-functions-plugin@4472

@tanstack/eslint-plugin-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/eslint-plugin-router@4472

@tanstack/history

npm i https://pkg.pr.new/TanStack/router/@tanstack/history@4472

@tanstack/react-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router@4472

@tanstack/react-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-devtools@4472

@tanstack/react-router-with-query

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-router-with-query@4472

@tanstack/react-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start@4472

@tanstack/react-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-client@4472

@tanstack/react-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-plugin@4472

@tanstack/react-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/react-start-server@4472

@tanstack/router-cli

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-cli@4472

@tanstack/router-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-core@4472

@tanstack/router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools@4472

@tanstack/router-devtools-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-devtools-core@4472

@tanstack/router-generator

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-generator@4472

@tanstack/router-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-plugin@4472

@tanstack/router-utils

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-utils@4472

@tanstack/router-vite-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/router-vite-plugin@4472

@tanstack/server-functions-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/server-functions-plugin@4472

@tanstack/solid-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router@4472

@tanstack/solid-router-devtools

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-router-devtools@4472

@tanstack/solid-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start@4472

@tanstack/solid-start-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-client@4472

@tanstack/solid-start-plugin

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-plugin@4472

@tanstack/solid-start-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/solid-start-server@4472

@tanstack/start-client-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-client-core@4472

@tanstack/start-plugin-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-plugin-core@4472

@tanstack/start-server-core

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-core@4472

@tanstack/start-server-functions-client

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-client@4472

@tanstack/start-server-functions-fetcher

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-fetcher@4472

@tanstack/start-server-functions-server

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-server-functions-server@4472

@tanstack/valibot-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/valibot-adapter@4472

@tanstack/virtual-file-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/virtual-file-routes@4472

@tanstack/zod-adapter

npm i https://pkg.pr.new/TanStack/router/@tanstack/zod-adapter@4472

commit: 6b8052c

Copy link
Member

@SeanCassiere SeanCassiere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This does look OK to me.

@schiller-manuel’s point is interesting. Worth looking into.

@jvllmr please:

  • Replicate the tests in the Solid package
  • Use unique test names for each run: test name xyz for $basepath

@jvllmr
Copy link
Contributor Author

jvllmr commented Jun 21, 2025

This does look OK to me.

@schiller-manuel’s point is interesting. Worth looking into.

@jvllmr please:

  • Replicate the tests in the Solid package
  • Use unique test names for each run: test name xyz for $basepath

I wondered about that case as well, but I focused on reproducing the problem with tests and started with the clue from the original issue. I could add the case from the issue to the tests as well just to be sure.

I made the test names unique and started on porting the tests to solid as well and pushed my progress for now because I ran out of time for today.

@SeanCassiere
Copy link
Member

I could add the case from the issue to the tests as well just to be sure.

Yes please. Better to cover our bases with more testing to cover the case.

@jvllmr
Copy link
Contributor Author

jvllmr commented Jun 22, 2025

All done ✅

  • I have finished porting the tests to @tanstack/solid-router. When doing so I found an inconsistency with resolving the from option between react-router and solid-router. I updated solid-router to match the behavior of react-router
  • I added a new testcase for the Link component that should reproduce the problem from the issue comment. However, when I reverted my patch the test still passed. Maybe there is more context to it we do not know or it is a false positive altogether?

@jvllmr jvllmr requested a review from SeanCassiere June 22, 2025 12:01
Copy link
Member

@SeanCassiere SeanCassiere left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have finished porting the tests to @tanstack/solid-router. When doing so I found an inconsistency with resolving the from option between react-router and solid-router. I updated solid-router to match the behavior of react-router.

👍🏼

I added a new testcase for the Link component that should reproduce the problem from the issue comment. However, when I reverted my patch the test still passed. Maybe there is more context to it we do not know or it is a false positive altogether?

🤔... I'm starting to think that comment is a red herring.

Running the original sandbox (from the mentioned issue) against the pr.pkg.new packages from this PR, the runtime issue of navigation without to resulting in the omission of the configured basepath, does seem to be fixed.


Either ways, this was clearly an issue in the resolution logic not accounting for adding the basepath when to wasn't supplied.

If any further fixes are required, we'll fix forward.

@SeanCassiere SeanCassiere merged commit 785681f into TanStack:main Jun 22, 2025
5 checks passed
@SeanCassiere
Copy link
Member

@jvllmr thank you for taking up this one and working with us on fixing this problem!

@jvllmr jvllmr deleted the navigate-basepath-fix branch June 27, 2025 14:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
3 participants