@@ -6,14 +6,13 @@ import { useSheetStore } from '@/store/sheetStore';
66import { useEffect , useState } from 'react' ;
77import dayjs from 'dayjs' ;
88import duration from 'dayjs/plugin/duration' ;
9- import { cancelChatRequest } from '@/apis/chat' ;
9+ import { cancelChatRequest , createChatroom } from '@/apis/chat' ;
1010import { useNavigate } from 'react-router' ;
1111dayjs . extend ( duration ) ;
1212
1313export default function ChatConnectLoadingSheet ( ) {
1414 const navigate = useNavigate ( ) ;
15- //zustand로 관리
16- //거절, 취소하거나 홈으로 가기 누르면 false로
15+
1716 const { currentRecord, closeAllSheets, closeSheet } = useSheetStore ( ) ;
1817
1918 const [ timeLeft , setTimeLeft ] = useState ( 60 ) ;
@@ -25,6 +24,7 @@ export default function ChatConnectLoadingSheet() {
2524 navigate ( '/home' ) ;
2625 } ;
2726
27+ //타이머 60초
2828 useEffect ( ( ) => {
2929 const endTime = new Date ( ) . getTime ( ) + 60 * 1000 ; // 현재 시간 + 60초
3030
@@ -50,14 +50,14 @@ export default function ChatConnectLoadingSheet() {
5050
5151 const formattedTime = dayjs . duration ( timeLeft , 'seconds' ) . format ( 'mm:ss' ) ;
5252
53- //채팅 요청 취소
53+ //채팅 요청 취소(요청 보낸 사람)
5454 const cancel = async ( ) => {
55- console . log ( currentRecord ) ;
5655 if ( ! currentRecord ) {
5756 console . log ( 'record가 존재하지 않습니다' ) ;
5857 return ;
5958 }
6059 try {
60+ console . log ( currentRecord ) ;
6161 await cancelChatRequest ( currentRecord . recordId ) ;
6262 console . log ( '채팅 취소' ) ;
6363
@@ -67,7 +67,30 @@ export default function ChatConnectLoadingSheet() {
6767 }
6868 } ;
6969
70- const isReceiver = false ;
70+ //채팅방 생성 (요청 받는 사람 입장에서 생성?)
71+ const createChat = async ( ) => {
72+ try {
73+ const data = await createChatroom ( 17 ) ;
74+ console . log ( data ) ;
75+
76+ if ( data . code === 200 ) {
77+ navigate ( '/chatroom' ) ;
78+ closeAllSheets ( ) ;
79+ }
80+ //500 이면 이미 방 있음 => 기존 채팅방으로
81+ } catch ( error ) {
82+ console . log ( error ) ;
83+ }
84+ } ;
85+
86+ //채팅 요정 거절
87+ const refuseRequest = ( ) => {
88+ closeSheet ( 'isChatLoadingSheetOpen' ) ;
89+ } ;
90+
91+ //채팅 신청한 사람이 상대가 수락했다는 sse 받으면 closeAllSheet, chatroom으로 이동
92+
93+ const isReceiver = true ;
7194
7295 if ( connetFail ) {
7396 return (
@@ -135,8 +158,12 @@ export default function ChatConnectLoadingSheet() {
135158 { /* 받는 사람일 경우 */ }
136159 { isReceiver && (
137160 < div className = "absolute bottom-10 flex gap-[6px] px-3 w-full" >
138- < Button variant = "primary" > 수락하기</ Button >
139- < Button variant = "secondary" > 거절하기</ Button >
161+ < Button onClick = { createChat } variant = "primary" >
162+ 수락하기
163+ </ Button >
164+ < Button onClick = { refuseRequest } variant = "secondary" >
165+ 거절하기
166+ </ Button >
140167 </ div >
141168 ) }
142169 </ div >
0 commit comments