import { useMutation, useQueryClient } from '@tanstack/react-query'; import { useState } from 'react'; import { FaPlus, FaTimes } from 'react-icons/fa'; import { newMessage } from '@controllers/MessageController'; const NewMessage = () => { const [message, setMessage] = useState(''); const [image, setImage] = useState(''); const queryClient = useQueryClient(); const [preview, setPreview] = useState(''); const handleImageSelect = (e: any) => { setImage(e.target.value); const file = e.target.files[0]; if (file) { const src = URL.createObjectURL(file); setPreview(src); } }; const { mutate: send } = useMutation(newMessage, { onSuccess: () => { queryClient.invalidateQueries(['messages']); }, onError: (error) => { console.error(error); }, }); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); if (message.trim().length === 0 && image.trim().length === 0) { return; } const data = new FormData(e.target as HTMLFormElement); send(data); setMessage(''); setImage(''); setPreview(''); }; const handleRemoveImage = () => { setImage(''); setPreview(''); }; return ( ); }; export default NewMessage;