From b90c2de9d036d0823ff8472e88dc6a48de555b8c Mon Sep 17 00:00:00 2001 From: ckswnskfk Date: Tue, 26 Dec 2023 11:45:57 +0900 Subject: [PATCH] =?UTF-8?q?Refactor:=20post=20id=20=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80,=20post=20=EC=B9=B4=EB=93=9C=20=EB=A6=AC=ED=8C=A9?= =?UTF-8?q?=ED=84=B0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 모달 닫는 조건을 여는 조건과 통일 --- src/components/post/PostCard.jsx | 11 ++--------- src/components/post/PostModal.jsx | 3 ++- src/pages/post/PostIdPage.jsx | 19 +++++++++++++++++-- 3 files changed, 21 insertions(+), 12 deletions(-) diff --git a/src/components/post/PostCard.jsx b/src/components/post/PostCard.jsx index 66a8597..7830c29 100644 --- a/src/components/post/PostCard.jsx +++ b/src/components/post/PostCard.jsx @@ -1,6 +1,5 @@ import { motion } from 'framer-motion'; -import { deleteMessage } from '@/apis/post/postAPI'; import Button from '@/components/common/button/Button'; import Card from '@/components/common/card/Card'; import Icon from '@/components/common/icon/Icon'; @@ -10,7 +9,7 @@ import { fontNamesEng } from '@/constants/fontNames'; import { formatDate } from '@/utils/dateUtils'; import { hoverCard } from '@/utils/framerAnimation'; -function PostCard({ message, openModal, isEdit, reload }) { +function PostCard({ message, openModal, isEdit, deleteMessage }) { const { profileImageURL, sender, @@ -23,13 +22,7 @@ function PostCard({ message, openModal, isEdit, reload }) { const handleClickDelete = async (e) => { e.stopPropagation(); - const result = await deleteMessage(id); - if (!result) { - // TODO: 삭제 실패 toast - return; - } - - await reload(); + deleteMessage(id); }; return ( diff --git a/src/components/post/PostModal.jsx b/src/components/post/PostModal.jsx index 5ed1446..43507e6 100644 --- a/src/components/post/PostModal.jsx +++ b/src/components/post/PostModal.jsx @@ -17,7 +17,8 @@ const PostModal = () => { useEffect(() => { if (isModalOpen) { dialogRef.current.showModal(); - } else if (dialogRef.current.open) { + } + if (!isModalOpen) { dialogRef.current.close(); } }, [isModalOpen]); diff --git a/src/pages/post/PostIdPage.jsx b/src/pages/post/PostIdPage.jsx index f7291bd..8a386ad 100644 --- a/src/pages/post/PostIdPage.jsx +++ b/src/pages/post/PostIdPage.jsx @@ -1,7 +1,11 @@ import { useState } from 'react'; import { useLoaderData, useLocation, useNavigate } from 'react-router-dom'; -import { deleteRecipient, getMessageList } from '@/apis/post/postAPI'; +import { + deleteMessage, + deleteRecipient, + getMessageList, +} from '@/apis/post/postAPI'; import Button from '@/components/common/button/Button'; import NewMessageCTA from '@/components/post/NewMessageCTA'; import PostCard from '@/components/post/PostCard'; @@ -17,6 +21,7 @@ export default function PostIdPage() { const navigate = useNavigate(); const { recipientId, messageListInfo, recipientInfo } = useLoaderData(); const { isModalOpen, openModal } = useModalContext(); + console.log(isModalOpen); const isEdit = pathname.includes('edit'); @@ -59,6 +64,16 @@ export default function PostIdPage() { setIsLoading(false); }; + const handleClickDeleteMessage = async (id) => { + const result = await deleteMessage(id); + if (!result) { + // TODO: 삭제 실패 toast + return; + } + + await reload(); + }; + const handleClickDelete = async () => { const result = await deleteRecipient(recipientId); if (!result) { @@ -101,7 +116,7 @@ export default function PostIdPage() { message={message} openModal={openModal} isEdit={isEdit} - reload={reload} + deleteMessage={handleClickDeleteMessage} > ))}