function openTrueCallerPopup(jssoObj, loginUserCallback, onShowCallback) { try { window.dataLayer = window.dataLayer || []; dataLayer.push({ event: "truecaller_component", type: "truecaller", category: "request_sent", }); console.log('Event: truecaller_component, Type: truecaller, Category: request_sent'); console.log('Event: truecaller, Action: request_sent, Category: truecaller_component'); jssoObj.truecallerOneTapLoginV1( function (successResponse) { try { console.log('True caller: Successfully logged in', successResponse); jssoObj.getUserDetails(function (response) { try { console.log('Event: truecaller, Action: user_login, Category: truecaller_one_tap'); dataLayer.push({ event: "user_login", type: "truecaller", category: "truecaller_one_tap", }); } catch (error) { console.log('Error in getUserDetails callback:', error); } }); if (typeof loginUserCallback === 'function') { loginUserCallback(); } } catch (error) { console.log('Error handling success response:', error); } }, function (errorResponse) { try { if (errorResponse?.failedType) { const map = { APP_NOT_INSTALLED: 'not_installed', TIMEOUT: 'timeout', }; if (errorResponse.failedType === 'APP_NOT_INSTALLED') { console.log('Event: truecaller_component, Category: app_not_installed, Type: truecaller'); console.log('Event: truecaller, Action: app_not_installed, Category: truecaller_component'); dataLayer.push({ event: "truecaller_component", type: "truecaller", category: "app_not_installed", }); } else if (errorResponse.failedType === 'TIMEOUT') { console.log('Event: truecaller_component, Category: component_timeout, Type: truecaller'); console.log('Event: truecaller, Action: component_timeout, Category: truecaller_component'); dataLayer.push({ event: "truecaller_component", type: "truecaller", category: "component_timeout", }); } if (map[errorResponse.failedType] === map.APP_NOT_INSTALLED) { if (typeof onShowCallback === 'function') { onShowCallback(false); } } } } catch (error) { console.log('Error handling failure response:', error); } }, function (popUpCallback) { try { if (popUpCallback?.type) { if (popUpCallback.type === 'OPEN') { console.log('Event: truecaller_component, Type: truecaller, Category: component_shown'); console.log('Event: truecaller, Action: component_shown, Category: truecaller_component'); dataLayer.push({ event: "truecaller_component", type: "truecaller", category: "component_shown", }); if (typeof onShowCallback === 'function') { onShowCallback(true); } } else if (popUpCallback.type === 'SKIP') { console.log('Event: truecaller_component, Type: truecaller, Category: truecaller_skip_click'); console.log('Event: truecaller, Action: truecaller_skip_click, Category: truecaller_component'); dataLayer.push({ event: "truecaller_component", type: "truecaller", category: "truecaller_skip_click", }); } } } catch (error) { console.log('Error handling pop-up callback:', error); } } ); } catch (error) { console.log('Critical error in openTrueCallerPopup:', error); } }