1
1
'use client' ;
2
2
3
- import { Worker } from 'twilio-taskrouter' ;
3
+ import { Supervisor , Workspace } from 'twilio-taskrouter' ;
4
4
import { LogContextType , useLogContext } from '@/lib/log-context' ;
5
5
import React , { useEffect , useState } from 'react' ;
6
6
import Logger from './logger.client' ;
@@ -13,7 +13,8 @@ const WorkerWorkspace = ({ token, environment = 'stage' }: { token: string; envi
13
13
const [ enableReject , setEnableReject ] = useState < boolean > ( false ) ;
14
14
const [ enableDisconnectWorker , setEnableDisconnectWorker ] = useState < boolean > ( false ) ;
15
15
16
- const [ workerObj , setWorkerObj ] = useState < any | null > ( null ) ;
16
+ const [ workerObj , setWorkerObj ] = useState < Supervisor | null > ( null ) ;
17
+ const [ workSpace , setWorkSpace ] = useState < Workspace | null > ( null ) ;
17
18
const [ reservationObj , setReservationObj ] = useState < any | null > ( null ) ;
18
19
19
20
const [ currentReservations , setCurrentReservations ] = useState < Array < any > > ( [ ] ) ;
@@ -54,6 +55,24 @@ const WorkerWorkspace = ({ token, environment = 'stage' }: { token: string; envi
54
55
}
55
56
} ;
56
57
58
+ const handleFetchWorkers = async ( ) => {
59
+ try {
60
+ const fetchWorkersReq = await workSpace ?. fetchWorkers ( ) ;
61
+ if ( fetchWorkersReq ) {
62
+ const workers = Array . from ( fetchWorkersReq . values ( ) ) ;
63
+ appendLogs ( '======================================================' ) ;
64
+ appendLogs ( 'Workers fetched' ) ;
65
+ workers . forEach ( ( worker : any ) => {
66
+ appendLogs ( 'Workers sid: ' + worker . sid ) ;
67
+ appendLogs ( 'Workers friendlyName: ' + worker . friendlyName ) ;
68
+ appendLogs ( 'Workers activity: ' + worker . activityName ) ;
69
+ } ) ;
70
+ }
71
+ } catch ( error ) {
72
+ console . log ( error ) ;
73
+ }
74
+ } ;
75
+
57
76
useEffect ( ( ) => {
58
77
if ( ! token ) {
59
78
return ;
@@ -65,10 +84,15 @@ const WorkerWorkspace = ({ token, environment = 'stage' }: { token: string; envi
65
84
66
85
appendLogs ( 'Initializing Worker with the new token' , 'green' ) ;
67
86
68
- const worker = new Worker ( token , {
87
+ const worker = new Supervisor ( token , {
69
88
region : environment . toLowerCase ( ) === 'stage' ? 'stage-us1' : 'us1' ,
70
89
logLevel : 'info' ,
71
90
} ) ;
91
+ const workspace = new Workspace ( token , {
92
+ region : environment . toLowerCase ( ) === 'stage' ? 'stage-us1' : 'us1' ,
93
+ logLevel : 'info' ,
94
+ } ) ;
95
+ setWorkSpace ( workspace ) ;
72
96
73
97
setWorkerObj ( worker ) ;
74
98
@@ -234,14 +258,19 @@ const WorkerWorkspace = ({ token, environment = 'stage' }: { token: string; envi
234
258
>
235
259
Reject
236
260
</ button >
237
-
238
261
< button
239
262
onClick = { handleDisconnectWorker }
240
263
disabled = { ! enableDisconnectWorker }
241
264
className = "bg-[#0263e0] enabled:hover:bg-[#06033a] text-white py-2 px-4 mb-5 rounded disabled:opacity-75 disabled:pointer-events-none font-medium"
242
265
>
243
266
Disconnect
244
267
</ button >
268
+ < button
269
+ onClick = { handleFetchWorkers }
270
+ className = "bg-[#0263e0] enabled:hover:bg-[#06033a] text-white py-2 px-4 mb-5 rounded disabled:opacity-75 disabled:pointer-events-none font-medium"
271
+ >
272
+ Fetch Workers
273
+ </ button >
245
274
</ div >
246
275
</ section >
247
276
< Logger />
0 commit comments