import { Controller, useFieldArray, type UseFormReturn } from "react-hook-form"; import { Text } from "@/components/ui/text"; import { TextField } from "@/components/ui/text-field"; import { PROCEDURE_NAME_MAX_LENGTH } from "@/domain/completion-templates/constants/completion-template-constants"; import type { CompletionTemplateFormValues } from "@/domain/completion-templates/schemas/completion-template-schema"; import { CompletionTemplateAddLink } from "./completion-template-add-link"; import { CompletionTemplateRemoveButton } from "./completion-template-remove-button"; type ProceduresEditorProps = { form: UseFormReturn; }; const DESCRIPTION_PLACEHOLDER = "Describe the procedure — steps, sub-items, whatever the source document has. One item per line works well."; function ProcedureFields({ form, index }: ProceduresEditorProps & { index: number }) { return (
( )} /> ( )} />
); } /** Procedures print in the order they are listed here. */ export function CompletionTemplateProceduresEditor({ form }: ProceduresEditorProps) { const { fields, append, remove } = useFieldArray({ control: form.control, name: "procedures" }); return (
{fields.map((field, index) => (
Procedure {index + 1} remove(index)} />
))} append({ name: "", description: "" })}> + Add procedure
); }