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 => {