diff --git a/client/src/components/Like.tsx b/client/src/components/Like.tsx new file mode 100644 index 0000000..144984c --- /dev/null +++ b/client/src/components/Like.tsx @@ -0,0 +1,34 @@ +import { FaThumbsUp } from 'react-icons/fa'; +import { likePost, unlikePost } from '@controllers/LikeController'; +import { useMutation, useQueryClient } from '@tanstack/react-query'; +import { toastError, toastSuccess } from '@controllers/Toasts'; + +const Like = ({ messageId, isLiked }: { messageId: string; isLiked: boolean }) => { + const queryClient = useQueryClient(); + + const mutateLike = useMutation(likePost, { + onSuccess: (data) => { + queryClient.invalidateQueries(['messages']); + toastSuccess('Message aimé'); + }, + onError: (error) => { + toastError(error as string); + }, + }); + + const like = () => { + if (!isLiked) { + console.log('like'); + + mutateLike.mutate(messageId); + } + }; + + return ( + + ); +}; + +export default Like; diff --git a/client/src/components/Message.tsx b/client/src/components/Message.tsx index 6e4919c..a288bb4 100644 --- a/client/src/components/Message.tsx +++ b/client/src/components/Message.tsx @@ -1,9 +1,10 @@ -import { FaThumbsUp } from 'react-icons/fa'; import Avatar from '@components/Avatar'; -import PopupMenu from './PopupMenu'; +import PopupMenu from '@components/PopupMenu'; +import Like from '@components/Like'; import { getMeInfo } from '@controllers/UserController'; import { useQuery } from '@tanstack/react-query'; import { toastError } from '@controllers/Toasts'; +import { useState } from 'react'; const Image = ({ image }: { image: string }) => { if (image === '' || image === null) { @@ -24,14 +25,6 @@ const Text = ({ text }: { text: string }) => { return