import { Button } from "@kandev/ui/button"; import { Label } from "@kandev/ui/label"; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from "@kandev/ui/dialog"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "@kandev/ui/select"; import type { Workflow, WorkflowStep } from "@/lib/types/http"; type WorkflowDeleteDialogProps = { open: boolean; onOpenChange: (open: boolean) => void; workflowTaskCount: number | null; otherWorkflows: Workflow[]; targetWorkflowId: string; setTargetWorkflowId: (id: string) => void; targetWorkflowSteps: WorkflowStep[]; targetStepId: string; setTargetStepId: (id: string) => void; migrateLoading: boolean; deleteLoading: boolean; onDelete: () => Promise; onMigrateAndDelete: () => Promise; }; export function WorkflowDeleteDialog({ open, onOpenChange, workflowTaskCount, otherWorkflows, targetWorkflowId, setTargetWorkflowId, targetWorkflowSteps, targetStepId, setTargetStepId, migrateLoading, deleteLoading, onDelete, onMigrateAndDelete, }: WorkflowDeleteDialogProps) { const hasTasks = workflowTaskCount !== null && workflowTaskCount > 0; return ( Delete workflow {hasTasks ? `This workflow has ${workflowTaskCount} task${workflowTaskCount === 1 ? "" : "s"}. Choose where to migrate them, or delete everything.` : "This will permanently delete the workflow and all its steps."} {hasTasks && otherWorkflows.length > 0 && (
{targetWorkflowSteps.length > 0 && (
)}
)} {hasTasks && otherWorkflows.length > 0 && ( )}
); } type StepDeleteDialogProps = { open: boolean; onOpenChange: (open: boolean) => void; stepTaskCount: number | null; stepsForMigration: WorkflowStep[]; targetStep: string; setTargetStep: (id: string) => void; loading: boolean; onMigrateAndDelete: () => Promise; onDeleteAndTasks: () => Promise; }; export function StepDeleteDialog({ open, onOpenChange, stepTaskCount, stepsForMigration, targetStep, setTargetStep, loading, onMigrateAndDelete, onDeleteAndTasks, }: StepDeleteDialogProps) { return ( Delete step This step has {stepTaskCount} task{stepTaskCount === 1 ? "" : "s"}. {stepsForMigration.length > 0 ? " Choose where to migrate them, or delete the step and its tasks." : " Deleting this step will affect these tasks."} {stepsForMigration.length > 0 && (
)} {stepsForMigration.length > 0 && ( )}
); }