From 1f7b71e0045121dddef9a1b43b3f701bb815f62d Mon Sep 17 00:00:00 2001 From: Manik Maity Date: Sun, 10 Nov 2024 15:48:41 +0530 Subject: [PATCH] =?UTF-8?q?Added=20delete=20functionality=20=F0=9F=9A=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/PollTableRow/PollTableRow.jsx | 29 ++++++++++++------- frontend/src/services/deletePollService.js | 7 +++++ 2 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 frontend/src/services/deletePollService.js diff --git a/frontend/src/components/PollTableRow/PollTableRow.jsx b/frontend/src/components/PollTableRow/PollTableRow.jsx index 06c24a0..3898817 100644 --- a/frontend/src/components/PollTableRow/PollTableRow.jsx +++ b/frontend/src/components/PollTableRow/PollTableRow.jsx @@ -1,24 +1,33 @@ -// PollTableRow.js import React, { useState } from "react"; import { FaTrashAlt, FaUserEdit } from "react-icons/fa"; +import {useMutation} from "react-query" +import deletePollService from "../../services/deletePollService"; +import { toast } from "react-toastify"; function PollTableRow({ poll, index, refetch }) { - const [showEditForm, setShowEditForm] = useState(false); + + + const mutation = useMutation(deletePollService, { + onSuccess : (data) => { + console.log(data); + refetch(); + toast.success(data?.message); + }, + onError : (error) => { + toast.error("An unexpected error occurred"); + console.log(error); + } + }) const handleDelete = () => { const sure = window.confirm("Are you sure you want to delete this poll?"); - if (sure) { - console.log(`Poll with ID: ${poll._id} has been deleted.`); - } + if (!sure) return; + mutation.mutate(poll._id); }; return ( <> - {showEditForm && ( -
- {/* Poll Edit Form Component would go here */} -
- )} + {index + 1} {poll.title} diff --git a/frontend/src/services/deletePollService.js b/frontend/src/services/deletePollService.js new file mode 100644 index 0000000..a3c68d3 --- /dev/null +++ b/frontend/src/services/deletePollService.js @@ -0,0 +1,7 @@ +import axiosInstance from "../helper/axiosInstance.js" +async function deletePollService(pollId) { + const response = await axiosInstance.delete(`/poll/delete/${pollId}`); + return response.data; +} + +export default deletePollService