diff --git a/site/src/pages/TaskPage/FollowUpDialog.tsx b/site/src/pages/TaskPage/FollowUpDialog.tsx new file mode 100644 index 0000000000..b09fc51459 --- /dev/null +++ b/site/src/pages/TaskPage/FollowUpDialog.tsx @@ -0,0 +1,95 @@ +import type { Task } from "api/typesGenerated"; +import { Button } from "components/Button/Button"; +import { + Dialog, + DialogClose, + DialogContent, + DialogDescription, + DialogFooter, + DialogHeader, + DialogTitle, +} from "components/Dialog/Dialog"; +import { Textarea } from "components/Textarea/Textarea"; +import { useFormik } from "formik"; +import type { FC } from "react"; +import { useId } from "react"; + +type FollowUpDialogProps = { + task: Task; + initialMessage: string; + open: boolean; + onOpenChange: (open: boolean) => void; + onSubmit: (message: string) => void; +}; + +export const FollowUpDialog: FC = ({ + task, + initialMessage, + open, + onOpenChange, + onSubmit, +}) => { + const formId = useId(); + + const formik = useFormik({ + initialValues: { + message: initialMessage, + }, + enableReinitialize: true, + onSubmit: (values) => { + const message = values.message.trim(); + if (message.length === 0) { + return; + } + onSubmit(message); + onOpenChange(false); + }, + }); + + return ( + + + + Send Follow-up Message + + Add another message to this task. The task will resume and send this + follow-up automatically. + + + +
+
+ +