plugin updates

This commit is contained in:
Tony Volpe
2024-06-17 15:33:26 -04:00
parent 3751a5a1a6
commit e4e274a9a7
2674 changed files with 0 additions and 507851 deletions

View File

@@ -1,4 +0,0 @@
import { initAppOnReady } from '../utils/appUtils';
import renderIframeApp from '../iframe/renderIframeApp';
initAppOnReady(renderIframeApp);

View File

@@ -1,79 +0,0 @@
import elementorWidget from '../elementor/elementorWidget';
import registerFormWidget from '../elementor/FormWidget/registerFormWidget';
import { initBackgroundApp } from '../utils/backgroundAppUtils';
import registerMeetingsWidget from '../elementor/MeetingWidget/registerMeetingWidget';
const ELEMENTOR_READY_INTERVAL = 500;
const MAX_POLL_TIMEOUT = 30000;
const registerElementorWidgets = () => {
initBackgroundApp(() => {
let FormWidget: any;
let MeetingsWidget: any;
const leadinSelectFormItemView = elementorWidget(
//@ts-expect-error global
window.elementor,
{
widgetName: 'hubspot-form',
controlSelector: '.elementor-hbspt-form-selector',
containerSelector: '.hubspot-form-edit-mode',
},
(controlContainer: any, widgetContainer: any, setValue: Function) => {
FormWidget = new registerFormWidget(
controlContainer,
widgetContainer,
setValue
);
FormWidget.render();
},
() => {
FormWidget.done();
}
);
const leadinSelectMeetingItemView = elementorWidget(
//@ts-expect-error global
window.elementor,
{
widgetName: 'hubspot-meeting',
controlSelector: '.elementor-hbspt-meeting-selector',
containerSelector: '.hubspot-meeting-edit-mode',
},
(controlContainer: any, widgetContainer: any, setValue: Function) => {
MeetingsWidget = new registerMeetingsWidget(
controlContainer,
widgetContainer,
setValue
);
MeetingsWidget.render();
},
() => {
MeetingsWidget.done();
}
);
//@ts-expect-error global
window.elementor.addControlView(
'leadinformselect',
leadinSelectFormItemView
);
//@ts-expect-error global
window.elementor.addControlView(
'leadinmeetingselect',
leadinSelectMeetingItemView
);
});
};
const pollForElementorReady = setInterval(() => {
const elementorFrontend = (window as any).elementorFrontend;
if (elementorFrontend) {
registerElementorWidgets();
clearInterval(pollForElementorReady);
}
}, ELEMENTOR_READY_INTERVAL);
setTimeout(() => {
clearInterval(pollForElementorReady);
}, MAX_POLL_TIMEOUT);

View File

@@ -1,68 +0,0 @@
import $ from 'jquery';
import Raven from '../lib/Raven';
import { domElements } from '../constants/selectors';
import ThickBoxModal from '../feedback/ThickBoxModal';
import { submitFeedbackForm } from '../feedback/feedbackFormApi';
import {
getOrCreateBackgroundApp,
initBackgroundApp,
} from '../utils/backgroundAppUtils';
import { refreshToken } from '../constants/leadinConfig';
import { ProxyMessages } from '../iframe/integratedMessages';
function deactivatePlugin() {
const href = $(domElements.deactivatePluginButton).attr('href');
if (href) {
window.location.href = href;
}
}
function setLoadingState() {
$(domElements.deactivateFeedbackSubmit).addClass('loading');
}
function submitAndDeactivate(e: Event) {
e.preventDefault();
setLoadingState();
const feedback = $(domElements.deactivateFeedbackForm)
.serializeArray()
.find(field => field.name === 'feedback');
submitFeedbackForm(domElements.deactivateFeedbackForm)
.then(() => {
if (feedback && refreshToken) {
const embedder = getOrCreateBackgroundApp(refreshToken);
embedder.postMessage({
key: ProxyMessages.TrackPluginDeactivation,
payload: {
type: feedback.value.trim().replace(/[\s']+/g, '_'),
},
});
}
})
.catch((err: Error) => {
Raven.captureException(err);
})
.finally(() => {
deactivatePlugin();
});
}
function init() {
// eslint-disable-next-line no-new
new ThickBoxModal(
domElements.deactivatePluginButton,
'leadin-feedback-container',
'leadin-feedback-window',
'leadin-feedback-content'
);
$(domElements.deactivateFeedbackForm)
.off('submit')
.on('submit', submitAndDeactivate);
$(domElements.deactivateFeedbackSkip)
.off('click')
.on('click', deactivatePlugin);
}
initBackgroundApp(init);

View File

@@ -1,10 +0,0 @@
import registerFormBlock from '../gutenberg/FormBlock/registerFormBlock';
import { registerHubspotSidebar } from '../gutenberg/Sidebar/contentType';
import registerMeetingBlock from '../gutenberg/MeetingsBlock/registerMeetingBlock';
import { initBackgroundApp } from '../utils/backgroundAppUtils';
initBackgroundApp([
registerFormBlock,
registerMeetingBlock,
registerHubspotSidebar,
]);

View File

@@ -1,64 +0,0 @@
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);