@@ -14,8 +14,6 @@ export default function FindMatch() {
14
14
const [ selectedTopic , setSelectedTopic ] = useState < string > ( "" ) ;
15
15
const [ isSearching , setIsSearching ] = useState < boolean > ( false ) ;
16
16
const [ waitTime , setWaitTime ] = useState < number > ( 0 ) ;
17
- const [ websocket , setWebsocket ] = useState < WebSocket > ( ) ;
18
- const [ queueTimeout , setQueueTimeout ] = useState < NodeJS . Timeout > ( ) ;
19
17
const { toast } = useToast ( ) ;
20
18
const auth = useAuth ( ) ;
21
19
@@ -27,8 +25,6 @@ export default function FindMatch() {
27
25
} , 1000 ) ;
28
26
} else {
29
27
setWaitTime ( 0 ) ;
30
- clearTimeout ( queueTimeout ) ;
31
- setQueueTimeout ( undefined ) ;
32
28
}
33
29
34
30
return ( ) => {
@@ -86,8 +82,12 @@ export default function FindMatch() {
86
82
selectedTopic ,
87
83
selectedDifficulty
88
84
) ;
85
+ const queueTimeout = setTimeout ( ( ) => {
86
+ handleCancel ( ) ;
87
+ } , 60000 ) ;
89
88
ws . onmessage = ( ) => {
90
89
setIsSearching ( false ) ;
90
+ clearTimeout ( queueTimeout ) ;
91
91
toast ( {
92
92
title : "Matched" ,
93
93
description : "Successfully matched" ,
@@ -97,18 +97,13 @@ export default function FindMatch() {
97
97
} ;
98
98
ws . onclose = ( ) => {
99
99
setIsSearching ( false ) ;
100
+ clearTimeout ( queueTimeout ) ;
100
101
toast ( {
101
102
title : "Matching Stopped" ,
102
103
description : "Matching has been stopped" ,
103
104
variant : "destructive" ,
104
105
} ) ;
105
106
} ;
106
- setQueueTimeout (
107
- setTimeout ( ( ) => {
108
- handleCancel ( ) ;
109
- } , 60000 )
110
- ) ;
111
- setWebsocket ( ws ) ;
112
107
return ;
113
108
default :
114
109
toast ( {
@@ -158,7 +153,6 @@ export default function FindMatch() {
158
153
case 200 :
159
154
setIsSearching ( false ) ;
160
155
setWaitTime ( 0 ) ;
161
- setWebsocket ( undefined ) ;
162
156
toast ( {
163
157
title : "Success" ,
164
158
description : "Successfully left queue" ,
0 commit comments