Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/entries/feedback.ts |
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 { ProxyMessages } from '../iframe/integratedMessages';
let embedder: any;
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) {
embedder.postMessage({
key: ProxyMessages.TrackPluginDeactivation,
payload: {
type: feedback.value.trim().replace(/[\s']+/g, '_'),
},
});
}
})
.catch((err: Error) => {
Raven.captureException(err);
})
.finally(() => {
deactivatePlugin();
});
}
function init() {
embedder = getOrCreateBackgroundApp();
// 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);