Tp 34777|ameyo session time events|Kunal (#500)

* TP-34777|Kunal|Ameyo session clickstream events

* TP-34777|Kunal|removed comments

* TP-34777|Kunal|resolved comments

* TP-34777|Kunal| fixes

* TP-34777|Kunal| fixes

* TP-34777|Kunal| fixes
This commit is contained in:
Kunal Sharma
2023-07-24 23:28:44 +05:30
committed by GitHub
parent 3858d98988
commit 9e2d26c256
4 changed files with 29 additions and 15 deletions

View File

@@ -286,6 +286,7 @@ export const AmeyoCollapsibleToolbar = (props: {
}, [isAmeyoAvailable]);
const agentOnlineHandler = () => {
addClickstreamEvent(AMEYO_SESSION_EVENTS.LH_AMEYO_AVAILABLE_TOGGLE_CLICKED);
ExtensionHandler.setAvailability(!ExtensionHandler.isAvailable());
};

View File

@@ -2,8 +2,15 @@
// @ts-nocheck // added since ameyo is global var defined by script
/* eslint-disable no-console */
import { AMEYO_SESSION_EVENTS, AMEYO_TOOLBAR_CLICKSTREAM, AMEYO_TOOLBAR_EVENTS } from "./clickStream.constant";
import {
AMEYO_SESSION_EVENTS,
AMEYO_TOOLBAR_CLICKSTREAM,
AMEYO_TOOLBAR_EVENTS
} from './clickStream.constant';
import { addClickstreamEvent } from './clickStreamEventService';
import { naviExtension } from './naviExtension.service';
import { poll } from '../utils/polling';
import { noop } from '@utils/common';
const AUTO_CALL_STORAGE_KEY = 'isAutoCallEnabled';
const LOGGEDIN_STORAGE_KEY = 'ameyoLoggedInAt';
@@ -120,23 +127,23 @@ export function isAmeyoLoggedIn(): boolean {
const ameyoAvailabilityCheckInterval = 1000 * 30; // 30sec
export function addAmeyoAvailabilityToggleClickstream(toggle: boolean) {
let clearAmeyoAvailabilityCheckInterval;
let availabilityPolling;
if (toggle) {
clearAmeyoAvailabilityCheckInterval = startAmeyoAvailabilityCheckInterval();
addClickstreamEvent(AMEYO_SESSION_EVENTS.LH_AMEYO_AVAILABLE_TOGGLE_ON_SUCCESSFULLY);
availabilityPolling = poll(
syncAmeyoAvailability,
undefined,
ameyoAvailabilityCheckInterval,
noop
);
} else {
addClickstreamEvent(AMEYO_SESSION_EVENTS.LH_AMEYO_AVAILABLE_TOGGLE_OFF_SUCCESSFULLY);
if (clearAmeyoAvailabilityCheckInterval) {
clearAmeyoAvailabilityCheckInterval();
}
availabilityPolling && availabilityPolling();
}
}
function startAmeyoAvailabilityCheckInterval() {
const interval = setInterval(() => {
const syncAmeyoAvailability = () => {
if (naviExtension.isAvailable()) {
addClickstreamEvent(AMEYO_SESSION_EVENTS.LH_AMEYO_USER_AVAILABILITY);
}, ameyoAvailabilityCheckInterval);
return () => {
clearInterval(interval);
};
}
}
};

View File

@@ -727,13 +727,17 @@ export const AMEYO_SESSION_EVENTS = {
name: 'LH_AMEYO_SUCCESSFUL_LOGIN',
description: 'User successfully logs in to ameyo '
},
LH_AMEYO_AVAILABLE_TOGGLE_CLICKED: {
name: 'LH_AMEYO_AVAILABLE_TOGGLE_CLICKED',
description: 'User clicked the ameyo toggle'
},
LH_AMEYO_AVAILABLE_TOGGLE_ON_SUCCESSFULLY: {
name: 'LH_AMEYO_AVAILABLE_TOGGLE_ON_SUCCESSFULLY',
description: 'User turns the ameyo toggle on'
description: 'User turns the ameyo toggle on successfully'
},
LH_AMEYO_AVAILABLE_TOGGLE_OFF_SUCCESSFULLY: {
name: 'LH_AMEYO_AVAILABLE_TOGGLE_OFF_SUCCESSFULLY',
description: 'User turns the ameyo toggle off'
description: 'User turns the ameyo toggle off successfully'
},
LH_AMEYO_SUCCESSFUL_LOGOUT: {
name: 'LH_AMEYO_SUCCESSFUL_LOGOUT',

View File

@@ -1,5 +1,6 @@
import { debounce } from '@navi/web-ui/lib/utils';
import { naviExtension } from 'src/service/naviExtension.service';
import { addAmeyoAvailabilityToggleClickstream } from "../service/ameyo.service";
// file.start();
@@ -79,6 +80,7 @@ export const ExtensionHandler = {
},
setAvailability: debounce((online: boolean) => {
naviExtension.setAvailability(online);
addAmeyoAvailabilityToggleClickstream(online);
}, 100),
login: (email: string, password: string) => {
naviExtension.login(email, password);