Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/entries/reviewBanner.ts |
import $ from 'jquery';
import {
getOrCreateBackgroundApp,
initBackgroundApp,
} from '../utils/backgroundAppUtils';
import { domElements } from '../constants/selectors';
import { refreshToken, activationTime } from '../constants/leadinConfig';
import { ProxyMessages } from '../iframe/integratedMessages';
const REVIEW_BANNER_INTRO_PERIOD_DAYS = 15;
const userIsAfterIntroductoryPeriod = () => {
const activationDate = new Date(+activationTime * 1000);
const currentDate = new Date();
const timeElapsed = new Date(
currentDate.getTime() - activationDate.getTime()
);
return timeElapsed.getUTCDate() - 1 >= REVIEW_BANNER_INTRO_PERIOD_DAYS;
};
/**
* Adds some methods to window when review banner is
* displayed to monitor events
*/
export function initMonitorReviewBanner() {
if (refreshToken) {
const embedder = getOrCreateBackgroundApp(refreshToken);
const container = $(domElements.reviewBannerContainer);
if (container && userIsAfterIntroductoryPeriod()) {
$(domElements.reviewBannerLeaveReviewLink)
.off('click')
.on('click', () => {
embedder.postMessage({
key: ProxyMessages.TrackReviewBannerInteraction,
});
});
$(domElements.reviewBannerDismissButton)
.off('click')
.on('click', () => {
embedder.postMessage({
key: ProxyMessages.TrackReviewBannerDismissed,
});
});
embedder
.postAsyncMessage({
key: ProxyMessages.FetchContactsCreateSinceActivation,
payload: +activationTime * 1000,
})
.then(({ total }: any) => {
if (total >= 5) {
container.removeClass('leadin-review-banner--hide');
embedder.postMessage({
key: ProxyMessages.TrackReviewBannerRender,
});
}
});
}
}
}
initBackgroundApp(initMonitorReviewBanner);