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