11import { useNavigate } from 'react-router-dom' ;
22
3+ import { useRecoilState } from 'recoil' ;
4+
5+ import theme from '@styles/theme' ;
6+
7+ import { RequesterDto } from '@apis/matching/dto' ;
38import { useSocket } from '@context/SocketProvider' ;
9+ import { OtherUserAtom } from '@recoil/util/OtherUser' ;
10+
11+ import { StyledText } from '@components/Text/StyledText' ;
412
513import { ResponseButton , ResponseContainer } from './styles' ;
614
715export interface ResponseMessageProps {
816 matchingId : number ;
917 chatRoomId : number ;
18+ requester : Omit < RequesterDto , 'RepresentativePostDto' > ;
1019 requestStatus : 'accepted' | 'rejected' | 'pending' ;
1120}
1221
13- const ResponseMessage : React . FC < ResponseMessageProps > = ( { matchingId, chatRoomId, requestStatus } ) => {
22+ const ResponseMessage : React . FC < ResponseMessageProps > = ( { matchingId, chatRoomId, requester , requestStatus } ) => {
1423 const socket = useSocket ( 'matching' ) ;
1524 const isPending = requestStatus === 'pending' ;
1625 const nav = useNavigate ( ) ;
26+ const [ , setOtherUser ] = useRecoilState ( OtherUserAtom ) ;
1727
1828 const handlebuttonClick = ( status : 'accept' | 'reject' ) => {
1929 if ( requestStatus !== 'pending' ) return ;
2030 if ( socket ) {
2131 socket . emit ( 'patchMatching' , { id : matchingId , requestStatus : status } ) ;
2232 if ( status === 'accept' ) {
33+ setOtherUser ( requester ) ;
2334 nav ( `/chats/${ chatRoomId } ` ) ;
2435 }
2536 }
@@ -29,12 +40,16 @@ const ResponseMessage: React.FC<ResponseMessageProps> = ({ matchingId, chatRoomI
2940 < ResponseContainer >
3041 { ( requestStatus === 'pending' || requestStatus === 'rejected' ) && (
3142 < ResponseButton $isPending = { isPending } onClick = { ( ) => handlebuttonClick ( 'reject' ) } >
32- 거절
43+ < StyledText $textTheme = { { style : 'body2-regular' } } color = { theme . colors . text . primary } >
44+ 거절
45+ </ StyledText >
3346 </ ResponseButton >
3447 ) }
3548 { ( requestStatus === 'pending' || requestStatus === 'accepted' ) && (
3649 < ResponseButton $isPending = { isPending } onClick = { ( ) => handlebuttonClick ( 'accept' ) } >
37- 수락
50+ < StyledText $textTheme = { { style : 'body2-regular' } } color = { theme . colors . text . primary } >
51+ 수락
52+ </ StyledText >
3853 </ ResponseButton >
3954 ) }
4055 </ ResponseContainer >
0 commit comments