feat(ST-n1csfo4j): AlertDialog imports, state en transition voor Alles-op-done knop

Voegt AlertDialog-imports, setAllSprintTasksDoneAction-import, productId-prop
(hernoemd van _productId) en showAllDoneConfirm/isSettingAllDone state toe aan
sprint-header.tsx als voorbereiding op de Alles-op-done AlertDialog-knop.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Scrum4Me Agent 2026-05-06 06:22:52 +02:00
parent 31dc429b61
commit 33c7c03a67

View file

@ -8,6 +8,16 @@ import {
DialogContent, DialogContent,
DialogTitle, DialogTitle,
} from '@/components/ui/dialog' } from '@/components/ui/dialog'
import {
AlertDialog,
AlertDialogAction,
AlertDialogCancel,
AlertDialogContent,
AlertDialogDescription,
AlertDialogFooter,
AlertDialogHeader,
AlertDialogTitle,
} from '@/components/ui/alert-dialog'
import { toast } from 'sonner' import { toast } from 'sonner'
import { DemoTooltip } from '@/components/shared/demo-tooltip' import { DemoTooltip } from '@/components/shared/demo-tooltip'
import { import {
@ -20,7 +30,7 @@ import {
entityDialogFooterClasses, entityDialogFooterClasses,
entityDialogHeaderClasses, entityDialogHeaderClasses,
} from '@/components/shared/entity-dialog-layout' } from '@/components/shared/entity-dialog-layout'
import { updateSprintGoalAction, updateSprintDatesAction, completeSprintAction } from '@/actions/sprints' import { updateSprintGoalAction, updateSprintDatesAction, completeSprintAction, setAllSprintTasksDoneAction } from '@/actions/sprints'
import type { SprintStory } from './sprint-backlog' import type { SprintStory } from './sprint-backlog'
interface Sprint { interface Sprint {
@ -51,12 +61,14 @@ function toDateInputValue(d: Date | null) {
return d.toISOString().slice(0, 10) return d.toISOString().slice(0, 10)
} }
export function SprintHeader({ productId: _productId, productName, sprint, isDemo, sprintStories }: SprintHeaderProps) { export function SprintHeader({ productId, productName, sprint, isDemo, sprintStories }: SprintHeaderProps) {
const [editingGoal, setEditingGoal] = useState(false) const [editingGoal, setEditingGoal] = useState(false)
const [editingDates, setEditingDates] = useState(false) const [editingDates, setEditingDates] = useState(false)
const [completeOpen, setCompleteOpen] = useState(false) const [completeOpen, setCompleteOpen] = useState(false)
const [decisions, setDecisions] = useState<Record<string, 'DONE' | 'OPEN'>>({}) const [decisions, setDecisions] = useState<Record<string, 'DONE' | 'OPEN'>>({})
const [isCompleting, startCompleting] = useTransition() const [isCompleting, startCompleting] = useTransition()
const [showAllDoneConfirm, setShowAllDoneConfirm] = useState(false)
const [isSettingAllDone, startSettingAllDone] = useTransition()
const [datesDirty, setDatesDirty] = useState(false) const [datesDirty, setDatesDirty] = useState(false)
const datesFormRef = useRef<HTMLFormElement>(null) const datesFormRef = useRef<HTMLFormElement>(null)