@braze/web-sdk
Version:
Braze SDK for web sites and other JS platforms.
27 lines (26 loc) • 1.3 kB
JavaScript
import E from "../../../shared-lib/logger.js";
import { SUBSCRIPTION_ID_DATA_ATTRIBUTE as f } from "../../common/constants.js";
import r, { OPTIONS as q } from "../../managers/braze-instance.js";
import { setupBannerUI as U } from "../../ui/js/banner-css.js";
import { addPassiveEventListener as J } from "../../util/dom-utils.js";
import { bannerToHtml as S } from "../display/banner-to-html.js";
import { destroyBannerHtml as A } from "../display/destroy-banner-html.js";
import { detectBannerImpressions as F } from "../display/detect-banner-impressions.js";
import { subscribeToBannersUpdates } from "../subscribe-to-banners-updates.js";
export function insertBanner(o, e) {
if (!r.rr()) return;
if (!o) return void E.error("Not inserting banner: banner was not provided.");
if (!e)
return void E.error("Not inserting banner: parentNode was not provided.");
if (!r.ee(q.re))
return void E.error(
"Banners are disabled. Use the 'allowUserSuppliedJavascript' option for braze.initialize to enable these messages.",
);
U();
const n = S(o, r.ee(q.er)),
s = subscribeToBannersUpdates((s) => {
const i = s[o.placementId];
i ? e.replaceChildren(S(i, r.ee(q.er))) : A(n);
});
s && n.setAttribute(f, s), e.replaceChildren(n), J(window, "scroll", F), F();
}