feat(ST-358): add unassigned stories sheet with claim-on-click

- UnassignedStoriesSheet: slide-in sheet listing unassigned sprint stories
- ClaimStoryRow: form action + ClaimButton with useFormStatus pending state
- Successful claim removes story from local list and shows success toast
- Empty state: "Geen ongeclaimde stories. Lekker bezig!"
- Demo: DemoTooltip wraps Pak op button, claim button disabled
- Page now fetches stories with _count.tasks instead of just count
- claimStoryAction also revalidates /products/[id]/solo path

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Janpeter Visser 2026-04-26 16:55:55 +02:00
parent 1341163e34
commit 89e5164a28
3 changed files with 128 additions and 3 deletions

View file

@ -223,6 +223,7 @@ export async function claimStoryAction(storyId: string, productId: string) {
await prisma.story.update({ where: { id: storyId }, data: { assignee_id: session.userId } })
revalidatePath(`/products/${productId}/sprint`)
revalidatePath(`/products/${productId}/solo`)
revalidatePath('/solo')
return { success: true }
}