import { useEffect, useState } from 'react'; import { FaEllipsisH } from 'react-icons/fa'; import Modal from './Modal'; import { deleteMessage } from '@controllers/MessageController'; import { useQueryClient } from '@tanstack/react-query'; import { toast } from 'react-toastify'; const DeleteModal = ({ authorId, messageId, showDelete, setShowDelete, }: { authorId: string; messageId: string; showDelete: boolean; setShowDelete: (showDelete: boolean) => void; }) => { const queryClient = useQueryClient(); const handleDelete = async () => { const response = await deleteMessage(messageId); queryClient.invalidateQueries(['messages']); setShowDelete(false); if (response.error) { toast.error(response.error, { position: 'top-right', autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); } else { toast.success(response.message, { position: 'top-right', autoClose: 5000, hideProgressBar: false, closeOnClick: true, pauseOnHover: true, draggable: true, progress: undefined, }); } setShowDelete(false); }; return ( <>
Voulez vous vraiment supprimer ce message ?
); }; const EditModal = ({ authorId, messageId, showEdit, setShowEdit, }: { authorId: string; messageId: string; showEdit: boolean; setShowEdit: (showEdit: boolean) => void; }) => { return (
Modifier
); }; const PopupMessage = ({ message }: { message: any }) => { const [show, setShow] = useState(false); const [showEdit, setShowEdit] = useState(false); const [showDelete, setShowDelete] = useState(false); useEffect(() => { const handleClick = (e: any) => { if (e.target.closest('#messageId' + message.id) === null) { setShow(false); } }; document.addEventListener('click', handleClick); }, [message.id]); return ( <>
setShow(!show)} >
); }; export default PopupMessage;