Current File : /home/pacjaorg/wpt.pacja.org/wp-content/plugins/leadin/scripts/utils/backgroundAppUtils.ts |
import {
deviceId,
hubspotBaseUrl,
locale,
portalId,
leadinPluginVersion,
} from '../constants/leadinConfig';
import { initApp } from './appUtils';
type CallbackFn = (...args: any[]) => void;
export function initBackgroundApp(initFn: CallbackFn | CallbackFn[]) {
function main() {
if (Array.isArray(initFn)) {
initFn.forEach(callback => callback());
} else {
initFn();
}
}
initApp(main);
}
const getLeadinConfig = () => {
return {
leadinPluginVersion,
};
};
export const getOrCreateBackgroundApp = (refreshToken = '') => {
if ((window as any).LeadinBackgroundApp) {
return (window as any).LeadinBackgroundApp;
}
const { IntegratedAppEmbedder, IntegratedAppOptions }: any = window;
const options = new IntegratedAppOptions()
.setLocale(locale)
.setDeviceId(deviceId)
.setLeadinConfig(getLeadinConfig())
.setRefreshToken(refreshToken);
const embedder = new IntegratedAppEmbedder(
'integrated-plugin-proxy',
portalId,
hubspotBaseUrl,
() => {}
).setOptions(options);
embedder.attachTo(document.body, false);
embedder.postStartAppMessage(); // lets the app know all all data has been passed to it
(window as any).LeadinBackgroundApp = embedder;
return (window as any).LeadinBackgroundApp;
};