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:
@@ -286,6 +286,7 @@ export const AmeyoCollapsibleToolbar = (props: {
|
||||
}, [isAmeyoAvailable]);
|
||||
|
||||
const agentOnlineHandler = () => {
|
||||
addClickstreamEvent(AMEYO_SESSION_EVENTS.LH_AMEYO_AVAILABLE_TOGGLE_CLICKED);
|
||||
ExtensionHandler.setAvailability(!ExtensionHandler.isAvailable());
|
||||
};
|
||||
|
||||
|
||||
@@ -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);
|
||||
};
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user