feat(ST-905): add Activeer button per product row in dashboard and product header

This commit is contained in:
Janpeter Visser 2026-04-27 19:18:00 +02:00
parent b7033c40ae
commit 754d033669
4 changed files with 78 additions and 8 deletions

View file

@ -0,0 +1,35 @@
'use client'
import { useRouter } from 'next/navigation'
import { useTransition } from 'react'
import { toast } from 'sonner'
import { setActiveProductAction } from '@/actions/active-product'
interface Props {
productId: string
isDemo: boolean
}
export function ActivateProductButton({ productId, isDemo }: Props) {
const router = useRouter()
const [isPending, startTransition] = useTransition()
function handleActivate() {
if (isDemo) { toast.error('Niet beschikbaar in demo-modus'); return }
startTransition(async () => {
const result = await setActiveProductAction(productId)
if (result?.error) toast.error(typeof result.error === 'string' ? result.error : 'Activeren mislukt')
else router.push(`/products/${productId}`)
})
}
return (
<button
onClick={handleActivate}
disabled={isPending}
className="text-xs text-primary hover:underline font-medium disabled:opacity-50"
>
Activeer
</button>
)
}