From aeacaa4e7eef8f6eed61d34eba52821c52e15ed0 Mon Sep 17 00:00:00 2001 From: yjudy0531 Date: Thu, 13 Aug 2026 21:25:57 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EA=B1=B0=EB=9E=98=20=EC=83=81=EC=84=B8?= =?UTF-8?q?=20=EC=B1=84=ED=8C=85=ED=95=98=EA=B8=B0=20=EB=B2=84=ED=8A=BC?= =?UTF-8?q?=EC=9D=84=20=EA=B1=B0=EB=9E=98=20=EA=B8=B0=EC=A4=80=20=EC=B1=84?= =?UTF-8?q?=ED=8C=85=EB=B0=A9=20API=EB=A1=9C=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - room.ts에 createOrGetChatRoomByTrade(tradeId) 추가 - createOrGetChatRoom의 purchaseOfferId는 optional로 유지 - TradeDetailPage.tsx 채팅하기 버튼을 createOrGetChatRoomByTrade(trade.tradeId)로 연결 백엔드 PR #412(Tenure_BE) 머지·배포 후 실제 동작 확인 필요 Co-Authored-By: Claude Sonnet 5 --- src/features/chat/api/room.ts | 10 +++++----- src/pages/mypage/TradeDetailPage.tsx | 4 ++-- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/features/chat/api/room.ts b/src/features/chat/api/room.ts index 21dbfd4..ef1cf3e 100644 --- a/src/features/chat/api/room.ts +++ b/src/features/chat/api/room.ts @@ -4,12 +4,12 @@ import type { ChatProduct, ChatRole, SaleStatus, TradeStatus } from '../model/ty import type { ChatRoomDetailResponse, ProductStatus } from './dto'; // 채팅방 생성 또는 조회 (아이템 상세 페이지 채팅하기 버튼). -// 판매자가 받은 구매 제안 상세에서 열 땐 purchaseOfferId를 함께 보내 제안자↔소유자 방을 잡는다. export const createOrGetChatRoom = (itemId: number, purchaseOfferId?: number) => - api.post<{ chatRoomId: number }>('/chats', { - itemId, - ...(purchaseOfferId != null && { purchaseOfferId }), - }); + api.post<{ chatRoomId: number }>('/chats', { itemId, purchaseOfferId }); + +// 채팅방 생성 또는 조회 (거래 상세 페이지 채팅하기 버튼). +export const createOrGetChatRoomByTrade = (tradeId: number) => + api.post<{ chatRoomId: number }>(`/chats/trades/${tradeId}`); // 채팅방 상세 조회 (프로덕트 바 데이터) export const getChatRoom = (chatRoomId: number) => { diff --git a/src/pages/mypage/TradeDetailPage.tsx b/src/pages/mypage/TradeDetailPage.tsx index ba83116..44a761d 100644 --- a/src/pages/mypage/TradeDetailPage.tsx +++ b/src/pages/mypage/TradeDetailPage.tsx @@ -8,7 +8,7 @@ import { useTradeStatusChange } from '@/features/trade/api/useTradeStatusChange' import type { TradeStatus } from '@/features/trade/api/types'; import { buildTradeTimeline } from '@/features/trade/lib/buildTradeTimeline'; import { resolveImageUrl } from '@/shared/lib/resolveImageUrl'; -import { createOrGetChatRoom } from '@/features/chat/api/room'; +import { createOrGetChatRoomByTrade } from '@/features/chat/api/room'; const SectionTitle = ({ children }: { children: ReactNode }) => (

{children}

@@ -152,7 +152,7 @@ const TradeDetailPage = () => { if (isChatLoading) return; setIsChatLoading(true); try { - const { chatRoomId } = await createOrGetChatRoom(trade.itemId); + const { chatRoomId } = await createOrGetChatRoomByTrade(trade.tradeId); navigate(`/chat/${chatRoomId}`); } finally { setIsChatLoading(false);