State B (actieve sprint geselecteerd, geen draft) hangt nu aan dezelfde vinkje-UI als state A′, maar muteert de transient pending-buffer in plaats van de draft. - PbiList: nieuwe prop activeSprintId. selectionMode = hasDraft || stateBMode. togglePbiInDraft routeert naar upsertPbiIntent (A′) of bulk- toggleStorySprintMembership over eligible child-stories (B, skip blocked). - StoryPanel: idem prop activeSprintId. StoryBlockWithCherrypick muteert draft via upsertStoryOverride in A′ of pending buffer via toggleStorySprintMembership in B (cross-sprint blocked = disabled). - SaveSprintButton (nieuw): client component in page header, alleen zichtbaar als er een actieve sprint is. Disabled bij clean buffer, enabled met teller bij dirty. Klikken calls commitSprintMembershipAction → applyMembershipCommitResult gericht in store + toast bij conflicts. - page.tsx: activeSprintItem.id wordt doorgegeven aan PbiList, StoryPanel en SaveSprintButton. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| (app) | ||
| (auth) | ||
| (mobile) | ||
| _components/tasks | ||
| api | ||
| debug-env | ||
| debug-realtime | ||
| styles | ||
| apple-icon.png | ||
| favicon.ico | ||
| globals.css | ||
| icon.png | ||
| layout.tsx | ||
| page.tsx | ||