Scrum4Me/components/dashboard/products-empty-state.tsx
Madhura68 27728296ff feat(PBI-98/T-1092): empty-state + component-tests
- components/dashboard/products-empty-state.tsx: nieuwe component met
  rounded-xl container, NL-tekst, en NewProductButton (verborgen in demo).
- ProductsTable: vroege return ProductsEmptyState bij products.length===0.
- __tests__/components/dashboard/products-empty-state.test.tsx: 4 tests
  (tekst, NewProductButton zichtbaar/verborgen op demo, container-styling).
- __tests__/components/dashboard/product-row-actions.test.tsx: 7 tests
  (Activeer/Actief-badge zichtbaarheid per state, Docs/Backlog aria-labels,
  Meer-acties-knop disabled in demo). Mocks: next/navigation, sonner,
  actions/products + actions/active-product.
- 1035 tests groen totaal.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-16 15:41:48 +02:00

35 lines
1.1 KiB
TypeScript

// Empty-state voor de Dashboard products-tabel: wordt getoond wanneer de
// gebruiker (en alle leden van zijn ProductMember-set) nog géén producten
// hebben. Hergebruikt NewProductButton zodat de CTA dezelfde dialog opent
// als de header-knop.
import { NewProductButton } from '@/components/dashboard/new-product-button'
import { debugProps } from '@/lib/debug'
interface Props {
isDemo: boolean
}
export function ProductsEmptyState({ isDemo }: Props) {
return (
<div
className="rounded-xl border border-border bg-surface-container-low p-12 text-center space-y-4"
{...debugProps(
'products-empty-state',
'ProductsEmptyState',
'components/dashboard/products-empty-state.tsx',
)}
>
<div>
<p className="text-base font-medium">
Nog geen producten aangemaakt
</p>
<p className="text-sm text-muted-foreground mt-1">
Een product groepeert je backlog, sprints en docs. Maak er eentje aan
om te beginnen.
</p>
</div>
{!isDemo && <NewProductButton />}
</div>
)
}