55 SessionTypes ,
66 ISessionIdAndConversationId ,
77 SdkMediaStateWithType ,
8- ISdkGumRequest
8+ ISdkGumRequest ,
9+ IExtendedMediaSession
910} from 'genesys-cloud-webrtc-sdk' ;
1011import { v4 } from 'uuid' ;
1112import { useDispatch } from 'react-redux' ;
@@ -20,6 +21,7 @@ import { updateGumRequests, updateMediaState } from '../features/devicesSlice';
2021import { useSelector } from 'react-redux' ;
2122import { IPendingSession } from 'genesys-cloud-streaming-client' ;
2223import { RootState } from '../types/store' ;
24+ import { MinimalSdk } from '../types/sdk' ;
2325
2426interface IAuthData {
2527 token : string ;
@@ -46,7 +48,7 @@ export default function useSdk() {
4648 } ;
4749
4850 webrtcSdk = new GenesysCloudWebrtcSdk ( options ) ;
49- dispatch ( setSdk ( webrtcSdk ) ) ;
51+ dispatch ( setSdk ( webrtcSdk as MinimalSdk ) ) ;
5052
5153 connectEventHandlers ( ) ;
5254
@@ -129,7 +131,7 @@ export default function useSdk() {
129131 dispatch ( updateGumRequests ( ) ) ;
130132 }
131133
132- function updateDefaultDevices ( options : any ) : void {
134+ function updateDefaultDevices ( options : { audioDeviceId ?: string ; videoDeviceId ?: string ; outputDeviceId ?: string } ) : void {
133135 if ( ! sdk ) return ;
134136 sdk . updateDefaultDevices ( {
135137 ...options ,
@@ -156,18 +158,19 @@ export default function useSdk() {
156158
157159 /* Misc Functions */
158160 async function updateOnQueueStatus ( onQueue : boolean ) : Promise < void > {
159- if ( ! sdk ) return ;
161+ if ( ! sdk || ! sdk . _http || ! sdk . _config || ! sdk . _personDetails ) return ;
160162 const systemPresences = await sdk . _http . requestApi ( `systempresences` , {
161163 method : 'get' as const ,
162164 host : sdk . _config . environment || '' ,
163165 authToken : sdk . _config . accessToken
164166 } ) ;
165167
166168 let presenceDefinition ;
169+ const presences = systemPresences . data as Array < { name : string } > ;
167170 if ( onQueue ) {
168- presenceDefinition = systemPresences . data . find ( ( p : { name : string ; } ) => p . name === 'ON_QUEUE' )
171+ presenceDefinition = presences . find ( ( p : { name : string ; } ) => p . name === 'ON_QUEUE' )
169172 } else {
170- presenceDefinition = systemPresences . data . find ( ( p : { name : string ; } ) => p . name === 'AVAILABLE' )
173+ presenceDefinition = presences . find ( ( p : { name : string ; } ) => p . name === 'AVAILABLE' )
171174 }
172175 const requestOptions = {
173176 method : 'patch' as const ,
@@ -181,8 +184,8 @@ export default function useSdk() {
181184
182185 function disconnectPersistentConnection ( ) : void {
183186 if ( ! sdk ) return ;
184- const sessions = sdk . sessionManager . getAllActiveSessions ( ) . filter ( ( session : any ) => session . sessionType === SessionTypes . softphone ) ;
185- sessions . forEach ( ( session : any ) => sdk . forceTerminateSession ( session . id ) ) ;
187+ const sessions = sdk . sessionManager . getAllActiveSessions ( ) . filter ( ( session : IExtendedMediaSession ) => session . sessionType === SessionTypes . softphone ) ;
188+ sessions . forEach ( ( session : IExtendedMediaSession ) => sdk . forceTerminateSession ( session . id ) ) ;
186189 }
187190
188191 return {
0 commit comments