Two breadcrumb pages belong to URLs that always redirect, so they never show

Aperta
#793 1 commento 0 reazioni 1 assegnatario Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

@richshaw ci sta già lavorando.

Dal 4/11/2026.

Valutazione

Questa issue non è ancora stata valutata.

Descrizione

enhancement good first issue pipeline:stuck

What happens

The organizer breadcrumb is a parallel route, src/app/app/(chrome)/@crumbs. Two of its pages pair with organizer pages that do nothing but redirect, so neither crumb is ever seen.

  • @crumbs/signups/[id]/edit/page.tsx (22 lines). It loads the signup with loadSignupForOrganizer and renders "‹title› › Edit": a hand copy of what SignupTitleCrumb (src/components/chrome/SignupTitleCrumb.tsx) does, plus an "Edit" crumb. Its page, signups/[id]/edit/page.tsx, only redirects to /settings. It stays for old links; src/mcp/links.ts says as much.
  • @crumbs/signups/[id]/page.tsx (1 line, re-exports SignupTitleCrumb). Its page, signups/[id]/page.tsx, only redirects to /build.

The slot does render on the redirected request, but only into the 307 response body, which the browser throws away. The final page shows its own crumb. "Edit" never appears anywhere.

Fix, in outline

  • Delete src/app/app/(chrome)/@crumbs/signups/[id]/edit/page.tsx and its now-empty edit/ folder.
  • Delete src/app/app/(chrome)/@crumbs/signups/[id]/page.tsx.
  • Keep both redirect pages. /app/signups/<id> is linked from the dashboard and from the New signup action, and /edit serves old links. @crumbs/default.tsx (returns null) covers both URLs once the slot pages are gone.

Watch for

  • Restart a running dev server after deleting them. pnpm dev keeps a stale reference and returns 500 ("Can't resolve …@crumbs/signups/[id]/edit/page") until restarted. That's the dev build, not a real problem.
  • Don't expect a query saving. Statement counts on both redirected URLs were the same with and without the crumb files: the crumb's reads are deduped by React cache() against signups/[id]/layout.tsx. This is about dead code and a stray copy of SignupTitleCrumb, not speed.
  • No visible change. Every organizer page's breadcrumb should read the same before and after.

Done when

  • Both files are gone, and nothing else under @crumbs changed.
  • Opening /app/signups/<id> and /app/signups/<id>/edit still lands on /build and /settings with "OpenSignup › ‹title›", by hard and by soft navigation. The existing e2e specs that open /app/signups/<id> still pass.
  • pnpm lint && pnpm format:check && pnpm typecheck && pnpm knip && pnpm test pass.

Found by the pipeline's refactor scout in the organizer chrome (src/app/app/(chrome)), at be0c273. Checked by an independent verify agent that ran the app with the two files and without them. It compared the redirects (307 to /settings and /build), the breadcrumb after hard and soft navigation, and the Postgres statement counts: all identical. https://claude.ai/code/session_016YZ9SS4Qrr2sRQj4bhaMwW

Lingua principale
TypeScript
Stelle
19
Fork
4
Merge medio
19h 38m
PR unite (30g)
197

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di richshaw/OpenSignup

Tutte le issue di richshaw/OpenSignup

Issue simili

Altre issue su TypeScript

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.