Skip to content

fix(router-generator): Pathless Layout Route Renders Empty HTML #4003

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

Open
wants to merge 7 commits into
base: main
Choose a base branch
from

Conversation

leesb971204
Copy link
Contributor

fixes #3843

Copy link

nx-cloud bot commented Apr 16, 2025

View your CI Pipeline Execution ↗ for commit 2cbf653.

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

☁️ Nx Cloud last updated this comment at 2025-04-18 08:30:16 UTC

Copy link

pkg-pr-new bot commented Apr 16, 2025

More templates

@tanstack/arktype-adapter

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

@tanstack/create-router

npm i https://pkg.pr.new/TanStack/router/@tanstack/create-router@4003

@tanstack/create-start

npm i https://pkg.pr.new/TanStack/router/@tanstack/create-start@4003

@tanstack/directive-functions-plugin

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

@tanstack/eslint-plugin-router

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

@tanstack/history

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-start

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

@tanstack/react-router-with-query

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

@tanstack/react-start-client

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

@tanstack/react-start-config

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

@tanstack/react-start-plugin

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

@tanstack/react-start-router-manifest

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/server-functions-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-config

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

@tanstack/solid-start-plugin

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

@tanstack/solid-start-router-manifest

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

@tanstack/solid-start-server

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

@tanstack/start

npm i https://pkg.pr.new/TanStack/router/@tanstack/start@4003

@tanstack/start-api-routes

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-api-routes@4003

@tanstack/start-client-core

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

@tanstack/start-config

npm i https://pkg.pr.new/TanStack/router/@tanstack/start-config@4003

@tanstack/start-server-core

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

@tanstack/start-server-functions-client

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

@tanstack/start-server-functions-fetcher

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

@tanstack/start-server-functions-handler

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

@tanstack/start-server-functions-server

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

@tanstack/start-server-functions-ssr

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/zod-adapter

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

commit: 2cbf653

@schiller-manuel
Copy link
Contributor

can you add a test for this?

@schiller-manuel
Copy link
Contributor

also wondering if this maybe needs a fix in the router generator instead? what's the idea of your fix here?

@leesb971204
Copy link
Contributor Author

leesb971204 commented Apr 16, 2025

also wondering if this maybe needs a fix in the router generator instead? what's the idea of your fix here?

Just because only a pathless layout file exists doesn’t mean there’s no route.
Do you think it’s more appropriate to handle this in the generator instead?

@schiller-manuel
Copy link
Contributor

yes I think so. the generator currently generates a "virtual route" in this situation. this is then matched at runtime

@leesb971204 leesb971204 changed the title fix(router-core): Pathless Layout Route Renders Empty HTML fix(router-generator): Pathless Layout Route Renders Empty HTML Apr 17, 2025
@leesb971204
Copy link
Contributor Author

yes I think so. the generator currently generates a "virtual route" in this situation. this is then matched at runtime

I believe the issue can be resolved by updating the isNonPath value when a node’s only child is a pathless_layout.
What do you think about this approach?

@schiller-manuel
Copy link
Contributor

maybe, I did not look into it deeply yet. can you add an e2e test into one of the existing e2e test setups for react router for this please? then we can check whether the fix solves it

@leesb971204
Copy link
Contributor Author

leesb971204 commented Apr 17, 2025

maybe, I did not look into it deeply yet. can you add an e2e test into one of the existing e2e test setups for react router for this please? then we can check whether the fix solves it

Got it. But I think additional changes might be needed.
For example, if a node has both a pathless_layout and static children, should we still treat it as isNonPath: true?
In this situation, accessing /app would still result in a empty HTML being returned.
What do you think?

L app  👈 isNonPath ??
  L _appLayout.tsx  
  L test.tsx  

…dd updateIsNonPath utility function

Signed-off-by: leesb971204 <[email protected]>
@SeanCassiere
Copy link
Member

I think we'll also need to update the test snapshots on this one.

Looking at the current changes on the reproduction sandbox in the reported issue, using the pr-pkg-new packages, the diff shows that a path is being assigned to a pathless layout route.

image

@SeanCassiere
Copy link
Member

Been thinking about this more and we'd need some comprehensive sandbox (end-to-end) testing for this.

Plus, my point earlier about pathless layout routes being assigned a path isn't correct.

@leesb971204
Copy link
Contributor Author

Been thinking about this more and we'd need some comprehensive sandbox (end-to-end) testing for this.

Plus, my point earlier about pathless layout routes being assigned a path isn't correct.

Then, do you think we should approach this in a different way rather than relying on isNonPath?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Pathless Layout Route Renders Empty HTML
3 participants