diff --git a/frontend/src/features/task-management/pages/EditTaskTemplatePage.tsx b/frontend/src/features/task-management/pages/EditTaskTemplatePage.tsx index 102818c4..3cad0042 100644 --- a/frontend/src/features/task-management/pages/EditTaskTemplatePage.tsx +++ b/frontend/src/features/task-management/pages/EditTaskTemplatePage.tsx @@ -41,6 +41,7 @@ const EditTaskTemplatePage = (): React.ReactElement => { const toast = useToast(); const [isSubmitting, setIsSubmitting] = useState(false); const [showQuitModal, setShowQuitModal] = useState(false); + const [showDeleteModal, setShowDeleteModal] = useState(false); const { control, @@ -74,13 +75,12 @@ const EditTaskTemplatePage = (): React.ReactElement => { ); useEffect(() => { - const fetchUser = async () => { + const fetchTask = async () => { if (!taskTemplateId) return; try { - const taskTemplateData = await TaskTemplateAPIClient.getTaskTemplate( - taskTemplateId, - ); + const taskTemplateData = + await TaskTemplateAPIClient.getTaskTemplate(taskTemplateId); // Prepopulate form with task template data reset({ @@ -91,7 +91,7 @@ const EditTaskTemplatePage = (): React.ReactElement => { } catch (error) { toast({ title: "Error", - description: "Failed to fetch user data", + description: "Failed to fetch task", status: "error", duration: 3000, isClosable: true, @@ -99,7 +99,7 @@ const EditTaskTemplatePage = (): React.ReactElement => { } }; - fetchUser(); + fetchTask(); }, [reset, taskTemplateId, toast]); const handleBackClick = () => { @@ -119,15 +119,37 @@ const EditTaskTemplatePage = (): React.ReactElement => { setShowQuitModal(false); }; - const handleDeleteTaskTemplate = () => { + const handleCloseDeleteModal = () => { + setShowDeleteModal(false); + }; + + const handleOpenDeleteModal = () => { + setShowDeleteModal(true); + }; + + const handleDeleteTaskTemplate = async () => { // TODO: Open delete task template modal and remove toast - toast({ - title: "Delete User", - description: "Delete functionality not implemented yet", - status: "info", - duration: 3000, - isClosable: true, - }); + + try { + await TaskTemplateAPIClient.deleteTaskTemplate(taskTemplateId); + + toast({ + title: "Success", + description: "Successfully deleted task", + status: "success", + duration: 3000, + isClosable: true, + }); + history.push(TASK_MANAGEMENT_PAGE); + } catch { + toast({ + title: "Error", + description: "Failed to edit task template", + status: "error", + duration: 3000, + isClosable: true, + }); + } }; const onSubmit = async (data: TaskTemplateFormData) => { @@ -142,6 +164,14 @@ const EditTaskTemplatePage = (): React.ReactElement => { instructions: data.taskInstructions, }); + toast({ + title: "Success", + description: "Successfully updated task", + status: "success", + duration: 3000, + isClosable: true, + }); + // Navigate back to task management page history.push(TASK_MANAGEMENT_PAGE); } catch (error) { @@ -272,10 +302,10 @@ const EditTaskTemplatePage = (): React.ReactElement => { + + + + ); };