Skip to content

Conversation

kosciolek
Copy link
Contributor

@kosciolek kosciolek commented Jul 11, 2025

Fixes #4599

Previous behavior

$param
    (group)
        route.tsx
        index.tsx

when router-generator processes the route.tsx node, the split variable

const split = trimmedPath.split('/')

will be [ '$param', '(group)' ], and because the last part is a group

this.routeGroupPatternRegex.test(lastRouteSegment)

the whole route will be generated as pathless, i.e.

const IndexRoute = IndexRouteImport.update({
  id: '/',
  path: '/',
  getParentRoute: () => rootRouteImport,
} as any)
const ParamgroupRouteRoute = ParamgroupRouteRouteImport.update({
  id: '/$param/(group)',
  ////////////////
  path: '/$param/', // <---- This will NOT be here without the fix
  ////////////////
  getParentRoute: () => rootRouteImport,
} as any)
const ParamgroupIndexRoute = ParamgroupIndexRouteImport.update({
  id: '/',
  path: '/',
  getParentRoute: () => ParamgroupRouteRoute,
} as any)

therefore the $param part of the path will be lost, and it won't be included in index.tsx's path resolution algorithm (in this case its path would be /)

Current behavior

When processing a route node, its path is skipped when all nodes between it and the higher route are groups.

@kosciolek kosciolek marked this pull request as ready for review July 12, 2025 17:47
Copy link

nx-cloud bot commented Jul 12, 2025

View your CI Pipeline Execution ↗ for commit a794300

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

☁️ Nx Cloud last updated this comment at 2025-07-12 18:39:19 UTC

Copy link

pkg-pr-new bot commented Jul 12, 2025

More templates

@tanstack/arktype-adapter

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

@tanstack/directive-functions-plugin

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

@tanstack/eslint-plugin-router

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

@tanstack/history

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

@tanstack/react-router

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

@tanstack/react-router-devtools

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

@tanstack/react-router-with-query

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

@tanstack/react-start

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

@tanstack/react-start-client

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

@tanstack/react-start-plugin

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

@tanstack/react-start-server

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

@tanstack/router-cli

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

@tanstack/router-core

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

@tanstack/router-devtools

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

@tanstack/router-devtools-core

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

@tanstack/router-generator

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

@tanstack/router-plugin

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

@tanstack/router-utils

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

@tanstack/router-vite-plugin

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

@tanstack/server-functions-plugin

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

@tanstack/solid-router

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

@tanstack/solid-router-devtools

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

@tanstack/solid-start

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

@tanstack/solid-start-client

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

@tanstack/solid-start-plugin

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

@tanstack/solid-start-server

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

@tanstack/start-client-core

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

@tanstack/start-plugin-core

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

@tanstack/start-server-core

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

@tanstack/start-server-functions-client

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

@tanstack/start-server-functions-fetcher

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

@tanstack/start-server-functions-server

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

@tanstack/valibot-adapter

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

@tanstack/virtual-file-routes

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

@tanstack/zod-adapter

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

commit: a794300

@schiller-manuel schiller-manuel merged commit 6b55a33 into TanStack:main Jul 12, 2025
5 checks passed
@schiller-manuel
Copy link
Contributor

very nice thanks a lot!

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.

Weird routing behaviour with nested dynamic parameters and shared route.tsx
2 participants