--- title: "Debug-id op component-root" status: active audience: [ai-agent, contributor] language: nl last_updated: 2026-05-09 when_to_read: "Wanneer je een named-component aanmaakt of aanpast." --- # Patroon: Debug-id op component-root ## Regel: named-component boundary Elk named-component plaatst `data-debug-id` en `data-debug-label` via de `debugProps`-helper op zijn root JSX-element. Zes concrete regels: 1. **Import** `debugProps` uit `@/lib/debug` — geen inline attribuut schrijven. 2. **Spread** het resultaat op het root element: `{...debugProps(id, component, file)}`. 3. **`id`** is kebab-case van de componentnaam, bijv. `sprint-board`. 4. **`component`** is de PascalCase naam zoals die geëxporteerd wordt, bijv. `SprintBoard`. 5. **`file`** is het relatieve pad vanaf de repo-root, bijv. `components/sprint/sprint-board.tsx`. 6. **Root = het buitenste JSX-element** dat de component rendert — niet een wrapper div die je extra toevoegt. In productie (`NODE_ENV=production`) retourneert `debugProps` een leeg object `{}` zodat er geen debug-attributen in de gebundelde HTML staan. ## Helper-voorbeeld ```tsx import { debugProps } from '@/lib/debug' export function SprintBoard({ ... }: SprintBoardProps) { return (