70 lines
1.7 KiB
TypeScript
70 lines
1.7 KiB
TypeScript
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);
|