From 148c7b55d95dcdcd8240f927455afcd4a8ad5c06 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A4=80=EC=98=81?= Date: Sat, 21 Feb 2026 16:31:04 +0900 Subject: [PATCH 1/3] =?UTF-8?q?fix:=20=EB=94=B0=EB=8B=A5=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Club/Application/hooks/useApplyToClub.ts | 4 ++-- src/pages/Club/Application/hooks/useClubApply.ts | 4 ++-- src/pages/Club/Application/index.tsx | 5 +++-- src/pages/Club/ClubDetail/components/ClubRecruitment.tsx | 5 +++-- 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/pages/Club/Application/hooks/useApplyToClub.ts b/src/pages/Club/Application/hooks/useApplyToClub.ts index db3b9986..8dc6745e 100644 --- a/src/pages/Club/Application/hooks/useApplyToClub.ts +++ b/src/pages/Club/Application/hooks/useApplyToClub.ts @@ -8,7 +8,7 @@ const useApplyToClub = (clubId: number) => { const navigate = useNavigate(); const queryClient = useQueryClient(); - const { mutateAsync: applyToClub } = useMutation({ + const { mutateAsync: applyToClub, isPending } = useMutation({ mutationKey: ['applyToClub', clubId], mutationFn: (body: ClubApplyRequest) => applyClub(clubId, body), onSuccess: () => { @@ -17,7 +17,7 @@ const useApplyToClub = (clubId: number) => { }, }); - return { applyToClub }; + return { applyToClub, isPending }; }; export default useApplyToClub; diff --git a/src/pages/Club/Application/hooks/useClubApply.ts b/src/pages/Club/Application/hooks/useClubApply.ts index 10167e3c..b2b0ac9a 100644 --- a/src/pages/Club/Application/hooks/useClubApply.ts +++ b/src/pages/Club/Application/hooks/useClubApply.ts @@ -22,13 +22,13 @@ const useClubApply = (clubId: number) => { const hasFeeData = clubFee.amount !== null && clubFee.accountNumber !== null; const isFeeRequired = recruitment.isFeeRequired && hasFeeData; - const { applyToClub } = useApplyToClub(clubId); + const { applyToClub, isPending } = useApplyToClub(clubId); const applyDirectly = () => applyToClub({ answers: [] }); const hasQuestions = clubQuestions && clubQuestions.questions.length > 0; - return { clubQuestions, applyToClub, applyDirectly, hasQuestions, isFeeRequired }; + return { clubQuestions, applyToClub, applyDirectly, hasQuestions, isFeeRequired, isPending }; }; export default useClubApply; diff --git a/src/pages/Club/Application/index.tsx b/src/pages/Club/Application/index.tsx index 1d453f48..a6a9211b 100644 --- a/src/pages/Club/Application/index.tsx +++ b/src/pages/Club/Application/index.tsx @@ -8,7 +8,7 @@ import useClubApply from './hooks/useClubApply'; function ApplicationPage() { const { clubId } = useParams(); const navigate = useNavigate(); - const { clubQuestions, applyToClub, isFeeRequired } = useClubApply(Number(clubId)); + const { clubQuestions, applyToClub, isFeeRequired, isPending } = useClubApply(Number(clubId)); const { answers: storedAnswers, clubId: storedClubId } = useClubApplicationStore(); const setApplication = useClubApplicationStore((s) => s.setApplication); const [answers, setAnswers] = useState>(() => @@ -80,7 +80,8 @@ function ApplicationPage() { diff --git a/src/pages/Club/ClubDetail/components/ClubRecruitment.tsx b/src/pages/Club/ClubDetail/components/ClubRecruitment.tsx index af0f715e..8d4604b0 100644 --- a/src/pages/Club/ClubDetail/components/ClubRecruitment.tsx +++ b/src/pages/Club/ClubDetail/components/ClubRecruitment.tsx @@ -14,7 +14,7 @@ interface ClubRecruitProps { function ClubRecruitment({ clubId, isMember }: ClubRecruitProps) { const navigate = useNavigate(); const { data: clubRecruitment } = useGetClubRecruitment(clubId); - const { hasQuestions, applyDirectly, isFeeRequired } = useClubApply(clubId); + const { hasQuestions, applyDirectly, isFeeRequired, isPending } = useClubApply(clubId); const { value: isConfirmOpen, setTrue: openConfirm, setFalse: closeConfirm } = useBooleanState(); const setApplication = useClubApplicationStore((s) => s.setApplication); @@ -95,7 +95,8 @@ function ClubRecruitment({ clubId, isMember }: ClubRecruitProps) { From e2fbfbb7253d1ae6588f5a7af910ca62c7e8cd90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A4=80=EC=98=81?= Date: Sat, 21 Feb 2026 16:31:18 +0900 Subject: [PATCH 2/3] =?UTF-8?q?feat:=20=EC=B1=84=ED=8C=85=20=EC=9D=BD?= =?UTF-8?q?=EC=A7=80=EC=95=8A=EC=9D=80=20=EC=82=AC=EB=9E=8C=20=EC=88=AB?= =?UTF-8?q?=EC=9E=90=20=ED=91=9C=EC=8B=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Chat/ChatRoom.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/pages/Chat/ChatRoom.tsx b/src/pages/Chat/ChatRoom.tsx index 93fa7517..e17bf9a9 100644 --- a/src/pages/Chat/ChatRoom.tsx +++ b/src/pages/Chat/ChatRoom.tsx @@ -121,9 +121,12 @@ function ChatRoom() { - - {formatTime(message.createdAt)} - +
+ {message.unreadCount > 0 && ( + {message.unreadCount} + )} + {formatTime(message.createdAt)} +
)} @@ -134,9 +137,12 @@ function ChatRoom() { {message.content} - - {formatTime(message.createdAt)} - +
+ {message.unreadCount > 0 && ( + {message.unreadCount} + )} + {formatTime(message.createdAt)} +
)} From bfcdd0a6361575c1aef110218306f17d4f2d6b93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=A4=80=EC=98=81?= Date: Sat, 21 Feb 2026 20:05:41 +0900 Subject: [PATCH 3/3] =?UTF-8?q?refactor:=20=EA=B8=80=EC=9E=90=20=ED=81=AC?= =?UTF-8?q?=EA=B8=B0=20=ED=86=B5=EC=9D=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Chat/ChatRoom.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/Chat/ChatRoom.tsx b/src/pages/Chat/ChatRoom.tsx index e17bf9a9..a2e36473 100644 --- a/src/pages/Chat/ChatRoom.tsx +++ b/src/pages/Chat/ChatRoom.tsx @@ -139,9 +139,9 @@ function ChatRoom() {
{message.unreadCount > 0 && ( - {message.unreadCount} + {message.unreadCount} )} - {formatTime(message.createdAt)} + {formatTime(message.createdAt)}
)}