From 2e0fbf8eec85ca70b8d6bed7bbe4f712c9b852fe Mon Sep 17 00:00:00 2001 From: minseokim Date: Fri, 2 Jan 2026 22:00:29 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20=EC=8A=A4=EC=BC=80=EC=A4=84=20?= =?UTF-8?q?=ED=8E=98=EC=9D=B4=EC=A7=80=20=EB=B2=84=ED=8A=BC=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=EA=B1=B4=EB=B6=80=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EB=B0=8F=20PENDING=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/schedule/_components/current.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/app/schedule/_components/current.tsx b/src/app/schedule/_components/current.tsx index 80802ced..4efce5e2 100644 --- a/src/app/schedule/_components/current.tsx +++ b/src/app/schedule/_components/current.tsx @@ -12,7 +12,12 @@ export default function Current() { const { items, error, fetchNextPage, hasNextPage, isFetchingNextPage, completedMessage } = useInfiniteScroll({ queryFn: async ({ cursor, size }) => { - return await API.groupService.getMyGroups({ type: 'current', cursor, size }); + return await API.groupService.getMyGroups({ + type: 'current', + cursor, + size, + myStatuses: ['ATTEND', 'PENDING'], + }); }, queryKey: ['myGroups', 'current'], pageSize: 10, From ffcd4dabb30a469bd1ad29e1e9f2756595660d28 Mon Sep 17 00:00:00 2001 From: minseokim Date: Fri, 2 Jan 2026 22:01:40 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=ED=98=84=EC=9E=AC=20=EB=AA=A8?= =?UTF-8?q?=EC=9E=84=20=ED=83=AD=20PENDING=20=EC=83=81=ED=83=9C=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EB=B0=8F=20=EB=B2=84=ED=8A=BC=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=EA=B1=B4=EB=B6=80=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/schedule/_components/meeting-list.tsx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/app/schedule/_components/meeting-list.tsx b/src/app/schedule/_components/meeting-list.tsx index 413d886e..58b600ed 100644 --- a/src/app/schedule/_components/meeting-list.tsx +++ b/src/app/schedule/_components/meeting-list.tsx @@ -108,6 +108,9 @@ export const MeetingList = ({ dateTime={formatDateTime(meeting.startTime)} images={meeting.images} isFinished={meeting.status === 'FINISHED'} + isHost={meeting.myMembership?.role === 'HOST'} + isPending={meeting.myMembership?.status === 'PENDING'} + joinPolicy={meeting.joinPolicy} leaveAndChatActions={ showActions ? { From 25c89ec220b7b705111af6aedd3ab9470061f1df Mon Sep 17 00:00:00 2001 From: minseokim Date: Fri, 2 Jan 2026 22:04:31 +0900 Subject: [PATCH 3/3] =?UTF-8?q?fix:=20=ED=83=AD=20=EC=83=81=ED=83=9C?= =?UTF-8?q?=EC=97=90=20=EB=94=B0=EB=A5=B8=20=EB=B2=84=ED=8A=BC=20=ED=85=8D?= =?UTF-8?q?=EC=8A=A4=ED=8A=B8=20=EC=A1=B0=EA=B1=B4=EB=B6=80=20=ED=91=9C?= =?UTF-8?q?=EC=8B=9C=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/shared/card/index.tsx | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/components/shared/card/index.tsx b/src/components/shared/card/index.tsx index b49361bb..52264478 100644 --- a/src/components/shared/card/index.tsx +++ b/src/components/shared/card/index.tsx @@ -27,6 +27,8 @@ type CardProps = { tabType?: 'current' | 'myPost' | 'past'; isPending?: boolean; isFinished?: boolean; + joinPolicy?: 'FREE' | 'APPROVAL_REQUIRED'; + isHost?: boolean; }; const calculateProgress = (count: number, max: number): number => { @@ -39,6 +41,22 @@ const convertToCardTags = (tags: string[]): CardTag[] => { return tags.map((tag, index) => ({ id: index, label: tag })); }; +const getLeaveButtonText = ( + tabType?: 'current' | 'myPost' | 'past', + isHost?: boolean, + isPending?: boolean, +): string => { + if (tabType === 'myPost' || (tabType === 'current' && isHost)) { + return '모임 취소'; + } + + if (tabType === 'current' && isPending) { + return '신청 취소'; + } + + return '모임 탈퇴'; +}; + const Card = ({ title, images, @@ -54,12 +72,13 @@ const Card = ({ tabType, isPending, isFinished, + isHost, }: CardProps) => { const thumbnail = images?.[0]; const cardTags = convertToCardTags(tags); const progress = calculateProgress(participantCount, maxParticipants); const shouldShowButtons = leaveAndChatActions && tabType !== 'past'; - const leaveButtonText = tabType === 'myPost' ? '모임 취소' : '모임 탈퇴'; + const leaveButtonText = getLeaveButtonText(tabType, isHost, isPending); return (