diff --git a/src/views/Labels/LabelView.jsx b/src/views/Labels/LabelView.jsx index 9dd442a..62e699b 100644 --- a/src/views/Labels/LabelView.jsx +++ b/src/views/Labels/LabelView.jsx @@ -15,33 +15,55 @@ import { useLabels } from './LabelQueries' // import { useMutation, useQueryClient } from '@tanstack/react-query' import { Add } from '@mui/icons-material' import { useQueryClient } from 'react-query' +import { useNavigate } from 'react-router-dom' import { DeleteLabel } from '../../utils/Fetcher' +import ConfirmationModal from '../Modals/Inputs/ConfirmationModal' const LabelView = () => { const { data: labels, isLabelsLoading, isError } = useLabels() const [userLabels, setUserLabels] = useState([labels]) const [modalOpen, setModalOpen] = useState(false) - const [currentLabel, setCurrentLabel] = useState(null) // Label being edited or null for new label + const [currentLabel, setCurrentLabel] = useState(null) const queryClient = useQueryClient() + const [confirmationModel, setConfirmationModel] = useState({}) + const Navigate = useNavigate() const handleAddLabel = () => { - setCurrentLabel(null) // Adding a new label + setCurrentLabel(null) setModalOpen(true) } const handleEditLabel = label => { - setCurrentLabel(label) // Editing an existing label + setCurrentLabel(label) setModalOpen(true) } + const handleDeleteClicked = id => { + setConfirmationModel({ + isOpen: true, + title: 'Delete Label', + + message: + 'Are you sure you want to delete this label? This will remove the label from all tasks.', + + confirmText: 'Delete', + color: 'danger', + cancelText: 'Cancel', + onClose: confirmed => { + if (confirmed) { + handleDeleteLabel(id) + } + setConfirmationModel({}) + }, + }) + } + const handleDeleteLabel = id => { DeleteLabel(id).then(res => { - // Invalidate and refetch labels after deleting a label const updatedLabels = userLabels.filter(label => label.id !== id) setUserLabels(updatedLabels) queryClient.invalidateQueries('labels') }) - // Implement deletion logic here } const handleSaveLabel = newOrUpdatedLabel => { @@ -92,7 +114,13 @@ const LabelView = () => {
{userLabels.map(label => (