UNPKG

next-google-adsense

Version:
57 lines (56 loc) 2.41 kB
"use strict"; "use client"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AdUnit = void 0; const tslib_1 = require("tslib"); const assert_never_1 = tslib_1.__importDefault(require("assert-never")); const navigation_1 = require("next/navigation"); const react_1 = tslib_1.__importStar(require("react")); const AdLayout_1 = require("./AdLayout"); const utils_1 = require("./utils"); const AdUnit = ({ publisherId, slotId, layout = "display", customLayout, comment = "regular", dummySize, }) => { var _a; const pathname = (0, navigation_1.usePathname)(); const containerRef = (0, react_1.useRef)(null); (0, react_1.useEffect)(() => { var _a; if (!((_a = containerRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth)) { return; } (window.adsbygoogle = window.adsbygoogle || []).push({}); }, [pathname]); const _publisherId = (_a = process.env.NEXT_PUBLIC_ADSENSE_PUBLISHER_ID) !== null && _a !== void 0 ? _a : publisherId; if (!(0, utils_1.isPublisherId)(_publisherId) || !(0, utils_1.isSlotId)(slotId)) { console.error("❌ [next-google-adsense] Invalid publisherId or slotId found for the unit."); return null; } const clientId = `ca-${_publisherId}`; let Ad; switch (layout) { case "display": { const dSize = typeof dummySize === "string" ? utils_1.DISPLAY_AD_SIZES[dummySize] : dummySize; Ad = (react_1.default.createElement(AdLayout_1.Display, { dataAdClient: clientId, dataAdSlot: slotId, dummySize: dSize })); break; } case "in-article": { const dSize = typeof dummySize === "string" ? utils_1.ARTICLE_AD_SIZES[dummySize] : dummySize; Ad = (react_1.default.createElement(AdLayout_1.InArticle, { dataAdClient: clientId, dataAdSlot: slotId, dummySize: dSize })); break; } case "custom": if (!customLayout) { console.error("❌ [next-google-adsense] Custom layout is not provided for the unit."); return null; } Ad = customLayout; break; default: (0, assert_never_1.default)(layout); } return react_1.default.createElement("div", { ref: containerRef }, Ad); }; exports.AdUnit = AdUnit;