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