diff --git a/packages/core/lib/useCallSdk.ts b/packages/core/lib/useCallSdk.ts index 02feeb4..b60a0b1 100644 --- a/packages/core/lib/useCallSdk.ts +++ b/packages/core/lib/useCallSdk.ts @@ -74,7 +74,7 @@ const initialState: StateType = { callStartTime: Date.now(), } -let adapter: IAdapter; +let adapter: IAdapter function UseCallSdk({AdapterClass, adapterOptions, metricsConfig, clickStreamConfig}: { AdapterClass: new (adapterOptions: IAdapter) => IAdapter, @@ -90,71 +90,73 @@ function UseCallSdk({AdapterClass, adapterOptions, metricsConfig, clickStreamCon } }) { useEffect(() => { - adapter = new AdapterClass(adapterOptions); + if(adapterOptions) { + adapter = new AdapterClass(adapterOptions); + } }, [adapterOptions]); // @ts-expect-error sdfsf const [callState] = useReducer(reducer, initialState,()=> initialState); function registerOnCallIncoming(callback : (callState: GenericObject)=>void) { //dispatch({type: actionTypes.CALL_INCOMING, payload: {}}) - adapter.registerOnCallIncoming(callback); + adapter?.registerOnCallIncoming(callback); } function registerOnCallConnected(callback : (callState: GenericObject)=>void) { - adapter.registerOnCallConnected(callback); + adapter?.registerOnCallConnected(callback); } function registerOnCallDisconnected(callback : (callState: GenericObject)=>void) { - adapter.registerOnCallDisconnected(callback); + adapter?.registerOnCallDisconnected(callback); } function registerOnAdapterReady(callback : ()=> void) { - adapter.registerOnAdapterReady(callback); + adapter?.registerOnAdapterReady(callback); } function registerOnAgentAvailabilityChange(callback : (isAgentAvailable: boolean, reason: string) => void) { - adapter.registerOnAgentAvailabilityChange(callback); + adapter?.registerOnAgentAvailabilityChange(callback); } function registerOnForcedLogoutListener(callback:()=>void) { - adapter.registerOnForcedLogoutListener(callback); + adapter?.registerOnForcedLogoutListener(callback); } function registerOnAgentsForCallTransfer(callback: (data: GenericObject) => void) { - adapter.registerOnAgentsForCallTransfer(callback); + adapter?.registerOnAgentsForCallTransfer(callback); } function registerOnCallTransferStatus(callback: (data: GenericObject) => void) { - adapter.registerOnCallTransferStatus(callback); + adapter?.registerOnCallTransferStatus(callback); } function registerOnLoginFailedListener(callback:()=>void) { - adapter.registerOnLoginFailedListener(callback); + adapter?.registerOnLoginFailedListener(callback); } function acceptCall() { - adapter.acceptCall(); + adapter?.acceptCall(); } function rejectCall() { - adapter.rejectCall(); + adapter?.rejectCall(); } function disposeCall() { - adapter.disposeCall(); + adapter?.disposeCall(); } function muteCall() { - adapter.muteCall(); + adapter?.muteCall(); } function unmuteCall() { - adapter.unmuteCall(); + adapter?.unmuteCall(); } function logOut() { - adapter.logOut(); + adapter?.logOut(); } function initialize() { @@ -167,15 +169,15 @@ function UseCallSdk({AdapterClass, adapterOptions, metricsConfig, clickStreamCon if(clickStreamConfig?.clickStreamTransporter) { clickStreamProcessor = new ClickStreamProcessor(clickStreamConfig?.clickStreamTransporter || noop); } - adapter.init(metricProcessor, clickStreamProcessor); + adapter?.init(metricProcessor, clickStreamProcessor); } function setOnBreak() { - adapter.setOnBreak(); + adapter?.setOnBreak(); } function setAvailable() { - adapter.setAvailable(); + adapter?.setAvailable(); } function getAgentAvailability(): boolean {