fix(m12): drop bogus /backlog#pbi-{code} route on PBI-link

Three places linked to \`/products/[id]/backlog#pbi-{pbi_code}\` after
materializing or in the planned-state link-card. That route doesn't
exist (product backlog lives at \`/products/[id]\` directly), and the
hash was double-prefixed (\`#pbi-PBI-32\`) since pbi_code already starts
with PBI-. Result: 404 for the user.

Fix: route to \`/products/[id]\` without anchor. The new PBI is the most
recent so visible near the top. Per-PBI anchor scrolling is a follow-up
once we add \`id="pbi-{id}"\` attributes to pbi-list rows.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-05-05 14:06:24 +02:00
parent 96bda7da00
commit b25c3c5482
2 changed files with 7 additions and 5 deletions

View file

@ -114,9 +114,11 @@ export function IdeaRowActions({ idea, isDemo, onArchive }: IdeaRowActionsProps)
return
}
toast.success(`Gematerialiseerd als ${r.data?.pbi_code}`)
// Navigeer naar de nieuwe PBI in de product-backlog
if (r.data?.pbi_id && idea.product_id) {
router.push(`/products/${idea.product_id}/backlog#pbi-${r.data.pbi_code}`)
// Navigeer naar de product-backlog. Anchor-scrolling per-PBI bestaat
// (nog) niet in pbi-list, dus gewoon naar de overview-pagina; de nieuwe
// PBI is de meest recente.
if (idea.product_id) {
router.push(`/products/${idea.product_id}`)
} else {
router.refresh()
}
@ -131,7 +133,7 @@ export function IdeaRowActions({ idea, isDemo, onArchive }: IdeaRowActionsProps)
size="sm"
variant="outline"
onClick={() =>
router.push(`/products/${idea.product_id}/backlog#pbi-${idea.pbi!.code}`)
router.push(`/products/${idea.product_id}`)
}
>
Bekijk {idea.pbi.code}