UNPKG

@bemit/consent-ui

Version:

© 2022 [bemit](https://bemit.eu)

54 lines 1.34 kB
const fbState = { loaded: false, fbpxInv: undefined }; export const loadFb = () => { !function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments); }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s); }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); }; export const pluginFacebook = (group, fbqId) => ({ shouldBe: options => { return Boolean(options?.groups?.[group]); }, create: wasAlreadyCreated => { if (wasAlreadyCreated) return; const cb = () => { window.clearInterval(fbState.fbpxInv); const onFbLoaded = () => { if (window.fbq) { window.clearInterval(fbState.fbpxInv); window.fbq('init', fbqId); window.fbq('track', 'PageView'); } }; fbState.fbpxInv = window.setInterval(onFbLoaded, 30); onFbLoaded(); }; if (!fbState.loaded) { fbState.loaded = true; loadFb(); cb(); } else { cb(); } }, destroy: () => { return { requiresRefresh: true }; } });