'use client' import { useTransition } from 'react' import { Badge } from '@/components/ui/badge' import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger, DialogClose, } from '@/components/ui/dialog' import { Table, TableBody, TableCell, TableHead, TableHeader, TableRow, } from '@/components/ui/table' import { adminArchiveProductAction, adminDeleteProductAction } from '@/actions/admin/products' import { debugProps } from '@/lib/debug' type Product = { id: string name: string archived: boolean created_at: Date user: { username: string } _count: { members: number; pbis: number } } function ArchiveButton({ product }: { product: Product }) { const [pending, startTransition] = useTransition() function handleToggle() { startTransition(() => adminArchiveProductAction(product.id, !product.archived)) } return ( ) } function DeleteDialog({ product }: { product: Product }) { const [pending, startTransition] = useTransition() function handleDelete() { startTransition(() => adminDeleteProductAction(product.id)) } return ( }> Verwijder Product verwijderen

Weet je zeker dat je {product.name} wilt verwijderen? Dit verwijdert ook alle PBI's, stories en taken. Dit kan niet ongedaan worden gemaakt.

}>Annuleer
) } export function ProductsTable({ products }: { products: Product[] }) { return ( Naam Eigenaar Leden PBI's Status Aangemaakt Acties {products.length === 0 && ( Geen producten gevonden )} {products.map(product => ( {product.name} {product.user.username} {product._count.members} {product._count.pbis} {product.archived ? ( Gearchiveerd ) : ( Actief )} {new Date(product.created_at).toLocaleDateString('nl-NL')}
))}
) }