diff --git a/client/src/components/Avatar.tsx b/client/src/components/Avatar.tsx index a7d7812..056422d 100644 --- a/client/src/components/Avatar.tsx +++ b/client/src/components/Avatar.tsx @@ -13,7 +13,7 @@ const Avatar = ({ user }: any) => { } }); - return avatar; + return
avatar
; }; export default Avatar; diff --git a/client/src/components/Message.tsx b/client/src/components/Message.tsx index 8f7208b..2ea8a98 100644 --- a/client/src/components/Message.tsx +++ b/client/src/components/Message.tsx @@ -35,7 +35,7 @@ const Message = ({ text = '', user, date, image = '' }: any) => { <>
{user && } -
+
{user.firstName} {user.lastName} diff --git a/client/src/components/NewMessage.tsx b/client/src/components/NewMessage.tsx index f8c95c3..d32fdf3 100644 --- a/client/src/components/NewMessage.tsx +++ b/client/src/components/NewMessage.tsx @@ -1,25 +1,34 @@ import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useState } from 'react'; import { Cookies } from 'react-cookie'; +import { FaPlus } from 'react-icons/fa'; -const sendMessage = async (message: string) => { +const sendMessage = async (data: FormData) => { const token = new Cookies().get('token'); + let contentType = 'application/json'; + let body: FormData | string | undefined = undefined; + console.log(data.get('image')); + + if (data.get('image')?.name !== "") { + contentType = 'multipart/form-data'; + body = data; + } else { + body = JSON.stringify(data); + } const response = await fetch('/api/posts/new', { method: 'POST', mode: 'cors', headers: { - 'Content-Type': 'application/json', Authorization: `Bearer ${token}`, }, - body: JSON.stringify({ content: message }), + body, }); return response.json(); }; - - const NewMessage = () => { const [message, setMessage] = useState(''); + const [image, setImage] = useState(''); const queryClient = useQueryClient(); const { mutate: send } = useMutation(sendMessage, { @@ -34,19 +43,32 @@ const NewMessage = () => { const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); - send(message); + const data = new FormData(e.target as HTMLFormElement); + send(data); setMessage(''); + setImage(''); }; return (