From bd36fabc75db5c40c0b23fda3457a90265ee7efd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=84=9D=EC=B0=AC=20=EC=9C=A4?= <ysc0731@ajou.ac.kr> Date: Tue, 10 Dec 2024 01:52:00 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=9E=AC?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EB=A1=9C=EC=A7=81=20=EB=A1=9C=EC=BB=AC?= =?UTF-8?q?=EC=83=81=ED=83=9C=EB=B3=80=EA=B2=BD=EC=97=90=EC=84=9C=20API?= =?UTF-8?q?=ED=98=B8=EC=B6=9C=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/MeetingPage.jsx | 74 +++++++++++++++++++-------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/src/pages/MeetingPage.jsx b/src/pages/MeetingPage.jsx index 82a936e..10804f2 100644 --- a/src/pages/MeetingPage.jsx +++ b/src/pages/MeetingPage.jsx @@ -101,7 +101,7 @@ const MeetingPage = () => { hasError, ]); - const handleCreateMeeting = () => { + const handleCreateMeeting = async () => { setShowCreateModal(true); // 모달 열기 }; @@ -110,14 +110,15 @@ const MeetingPage = () => { try { await joinMeeting(meetingId); alert("번개 모임에 성공적으로 참가했습니다!"); - // 참가 상태 업데이트 - setMeetings((prev) => - prev.map((meeting) => - meeting.id === meetingId - ? { ...meeting, isParticipant: true } - : meeting - ) - ); + + // 최신 데이터 다시 가져오기 + if (activeTab === "all") { + const updatedData = await getAllMeetings(0, meetingPage * 20); + setMeetings(updatedData.content); + } else if (activeTab === "my") { + const updatedData = await getMyMeetings(0, myMeetingPage * 20); + setMyMeetings(updatedData.content); + } } catch (error) { alert("번개 모임 참가에 실패했습니다."); console.error("Error joining meeting:", error); @@ -140,10 +141,15 @@ const MeetingPage = () => { try { await deleteMeeting(meetingId); alert("번개 모임을 삭제했습니다!"); - setMeetings((prev) => prev.filter((meeting) => meeting.id !== meetingId)); - setMyMeetings((prev) => - prev.filter((meeting) => meeting.id !== meetingId) - ); + + // 최신 데이터 다시 가져오기 + if (activeTab === "all") { + const updatedData = await getAllMeetings(0, meetingPage * 20); + setMeetings(updatedData.content); + } else if (activeTab === "my") { + const updatedData = await getMyMeetings(0, myMeetingPage * 20); + setMyMeetings(updatedData.content); + } } catch (error) { alert("번개 모임 삭제에 실패했습니다."); console.error("Error deleting meeting:", error); @@ -155,20 +161,15 @@ const MeetingPage = () => { try { await leaveMeeting(meetingId); alert("번개 모임을 나갔습니다!"); - setMeetings((prev) => - prev.map((meeting) => - meeting.id === meetingId - ? { ...meeting, isParticipant: false } - : meeting - ) - ); - setMyMeetings((prev) => - prev.map((meeting) => - meeting.id === meetingId - ? { ...meeting, isParticipant: false } - : meeting - ) - ); + + // 최신 데이터 다시 가져오기 + if (activeTab === "all") { + const updatedData = await getAllMeetings(0, meetingPage * 20); + setMeetings(updatedData.content); + } else if (activeTab === "my") { + const updatedData = await getMyMeetings(0, myMeetingPage * 20); + setMyMeetings(updatedData.content); + } } catch (error) { alert("번개 모임 나가기에 실패했습니다."); console.error("Error leaving meeting:", error); @@ -180,16 +181,15 @@ const MeetingPage = () => { try { await closeMeeting(meetingId); alert("번개 모임을 마감했습니다!"); - setMeetings((prev) => - prev.map((meeting) => - meeting.id === meetingId ? { ...meeting, type: "CLOSE" } : meeting - ) - ); - setMyMeetings((prev) => - prev.map((meeting) => - meeting.id === meetingId ? { ...meeting, type: "CLOSE" } : meeting - ) - ); + + // 최신 데이터 다시 가져오기 + if (activeTab === "all") { + const updatedData = await getAllMeetings(0, meetingPage * 20); + setMeetings(updatedData.content); + } else if (activeTab === "my") { + const updatedData = await getMyMeetings(0, myMeetingPage * 20); + setMyMeetings(updatedData.content); + } } catch (error) { alert("번개 모임 마감에 실패했습니다."); console.error("Error closing meeting:", error); -- GitLab