@schibsted/niche-ads
Advanced tools
Comparing version 0.3.2 to 1.0.0
@@ -0,1 +1,25 @@ | ||
## [1.0.0](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/compare/v0.3.2...v1.0.0) (2022-02-15) | ||
### ⚠ BREAKING CHANGES | ||
- loadAds now accepts an object as an argument | ||
### Features | ||
- allow placement filtering ([#19](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/19)) ([1b038d6](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/1b038d699b87b0ea4c0e8f8373d981738c7669c2)) | ||
### Miscellaneous Chores | ||
- update babel monorepo ([#4](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/4)) ([0039909](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/0039909dfec49124145c86445e52594309ac79dc)) | ||
- update dependency @babel/core to ^7.17.2 ([#18](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/18)) ([76c7cc0](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/76c7cc02bb63cb19a4184e47fd40965d04b08029)) | ||
- update dependency eslint to ^8.8.0 ([#16](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/16)) ([e9329b4](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/e9329b4f401dfff4169aa06caf3235940318ec87)) | ||
- update dependency eslint to ^8.9.0 ([#20](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/20)) ([40f63ac](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/40f63ace0fe25e2d255a0483edc35afbe37f279a)) | ||
- update dependency lint-staged to ^12.3.3 ([#17](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/17)) ([3627db4](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/3627db4c4256ec99f8bb84168946f152202b35c6)) | ||
- update dependency prop-types to ^15.8.1 ([#15](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/15)) ([feae8bb](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/feae8bbc209223a4dcb20435d69485869a8a8603)) | ||
- update linters ([#7](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/7)) ([f66c3dd](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/f66c3ddcac702d08f3c39ca5571b744b2b60edd7)) | ||
- update node.js to v16 ([#12](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/12)) ([f61ac96](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/f61ac96fed7be5fbc626355d0bde848ba98ea4b4)) | ||
- update tool packages ([#11](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/11)) ([fcbbab0](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/fcbbab07a2ee3f6a93785cbf3771215115967bb8)) | ||
- update tool packages ([#21](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/21)) ([eec4cd0](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/eec4cd0e3c00703ec652c0b37274230795342457)) | ||
- update tool packages ([#8](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/issues/8)) ([211f0ff](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/commit/211f0ff8246e1204dd2d13fe335ff70bd524b2c3)) | ||
### [0.3.2](https://github.schibsted.io/przemyslaw-babiarz/niche-ads/compare/v0.3.1...v0.3.2) (2021-12-15) | ||
@@ -2,0 +26,0 @@ |
@@ -52,13 +52,12 @@ "use strict"; | ||
function AdContextProvider({ | ||
adsConfig, | ||
cdn, | ||
chatbot, | ||
children, | ||
cogwheelCdn, | ||
device, | ||
wallpaper | ||
}) { | ||
var _adsConfig$placements; | ||
function AdContextProvider(_ref) { | ||
let { | ||
adsConfig, | ||
cdn, | ||
chatbot, | ||
children, | ||
cogwheelCdn, | ||
device, | ||
wallpaper | ||
} = _ref; | ||
const [placementsConfig, setPlacementsConfig] = (0, _react.useState)([]); | ||
@@ -105,7 +104,18 @@ const [placements, setPlacements] = (0, _react.useState)({}); | ||
}, [messageHandler]); | ||
const loadAds = (0, _react.useCallback)(async (pageType, extraKeywords) => { | ||
const loadAds = (0, _react.useCallback)(async _ref2 => { | ||
let { | ||
pageType, | ||
keywords, | ||
allowlist, | ||
blocklist | ||
} = _ref2; | ||
await scriptsLoadPromise.current; | ||
if (!device || !adScriptsReady) { | ||
retryLoadAds.current = [pageType, extraKeywords]; | ||
retryLoadAds.current = { | ||
pageType, | ||
keywords, | ||
allowlist, | ||
blocklist | ||
}; | ||
return; | ||
@@ -120,3 +130,3 @@ } | ||
keywords: { ...buildKeywords(adsConfig.keywords, device, pageType), | ||
...extraKeywords, | ||
...keywords, | ||
'aa-sch-externalid_src': Boolean((0, _appnexus.getAdId)()) + Boolean((0, _appnexus.getUserId)()) | ||
@@ -128,3 +138,17 @@ }, | ||
}); | ||
setPlacementsConfig(adsConfig.placements[device][pageType].filter(placement => placement.invCode)); | ||
let newPlacementConfig = adsConfig.placements[device][pageType]?.filter(placement => placement.invCode); | ||
if (!newPlacementConfig) { | ||
throw new Error(`No configuration for device: ${device} and pageType: ${pageType}`); | ||
} | ||
if (allowlist?.length > 0) { | ||
newPlacementConfig = newPlacementConfig.filter(placement => allowlist.includes(placement.targetId)); | ||
} | ||
if (blocklist?.length > 0) { | ||
newPlacementConfig = newPlacementConfig.filter(placement => !blocklist.includes(placement.targetId)); | ||
} | ||
setPlacementsConfig(newPlacementConfig); | ||
}, [device, adsConfig, adScriptsReady]); | ||
@@ -135,7 +159,7 @@ (0, _react.useEffect)(() => { | ||
retryLoadAds.current = false; | ||
loadAds(...params); | ||
loadAds(params); | ||
} | ||
}, [device, loadAds, adScriptsReady]); | ||
(0, _react.useEffect)(() => { | ||
if ((placementsConfig === null || placementsConfig === void 0 ? void 0 : placementsConfig.length) > 0) { | ||
if (placementsConfig?.length > 0) { | ||
const placementsConfigsChunks = (0, _splitEvery.default)(APPNEXUS_PLACEMENTS_PER_REQUEST_LIMIT, placementsConfig); | ||
@@ -204,3 +228,3 @@ placementsConfigsChunks.forEach(placementsConfigChunk => { | ||
return noop; | ||
}, [placementsConfig, adsConfig === null || adsConfig === void 0 ? void 0 : (_adsConfig$placements = adsConfig.placements) === null || _adsConfig$placements === void 0 ? void 0 : _adsConfig$placements.common]); | ||
}, [placementsConfig, adsConfig?.placements?.common]); | ||
const clearPlacements = (0, _react.useCallback)(() => { | ||
@@ -207,0 +231,0 @@ placementsConfigRef.current.forEach(placementConfig => { |
@@ -10,3 +10,4 @@ "use strict"; | ||
function collapseAd(messageListenerEvent = {}) { | ||
function collapseAd() { | ||
let messageListenerEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
const { | ||
@@ -13,0 +14,0 @@ data |
@@ -14,7 +14,8 @@ "use strict"; | ||
*/ | ||
function attachWallpaperImageToPageBody( // eslint-disable-next-line default-param-last | ||
messageListenerEvent = {}, { | ||
setWallpaperFunction, | ||
setBackgroundColorFunction | ||
}) { | ||
function attachWallpaperImageToPageBody() { | ||
let messageListenerEvent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; | ||
let { | ||
setWallpaperFunction, | ||
setBackgroundColorFunction | ||
} = arguments.length > 1 ? arguments[1] : undefined; | ||
const { | ||
@@ -21,0 +22,0 @@ data |
@@ -24,6 +24,6 @@ "use strict"; | ||
}); | ||
Object.defineProperty(exports, "usePlacement", { | ||
Object.defineProperty(exports, "useClearPlacements", { | ||
enumerable: true, | ||
get: function () { | ||
return _usePlacement.default; | ||
return _useClearPlacements.default; | ||
} | ||
@@ -37,6 +37,6 @@ }); | ||
}); | ||
Object.defineProperty(exports, "useClearPlacements", { | ||
Object.defineProperty(exports, "usePlacement", { | ||
enumerable: true, | ||
get: function () { | ||
return _useClearPlacements.default; | ||
return _usePlacement.default; | ||
} | ||
@@ -43,0 +43,0 @@ }); |
@@ -24,6 +24,6 @@ "use strict"; | ||
const showAd = (0, _react.useCallback)(() => { | ||
if (placement !== null && placement !== void 0 && placement.targetId) { | ||
if (placement?.targetId) { | ||
(0, _appnexus.showTag)(placement.targetId); | ||
} | ||
}, [placement === null || placement === void 0 ? void 0 : placement.targetId]); | ||
}, [placement?.targetId]); | ||
return (0, _react.useMemo)(() => [placement, showAd, placementConfig], [placement, showAd, placementConfig]); | ||
@@ -30,0 +30,0 @@ }; |
@@ -6,3 +6,3 @@ "use strict"; | ||
}); | ||
exports.getAdId = exports.getUserId = exports.fireImpressionTrackers = exports.emitEvent = exports.onEvent = exports.offEvent = exports.setPageOpts = exports.showTag = exports.refresh = exports.loadTags = exports.clearRequest = exports.defineTag = exports.setUpAPNObject = exports.subscribeToASTLoad = exports.isASTLoaded = exports.APPNEXUS_EVENT_TYPES = void 0; | ||
exports.subscribeToASTLoad = exports.showTag = exports.setUpAPNObject = exports.setPageOpts = exports.refresh = exports.onEvent = exports.offEvent = exports.loadTags = exports.isASTLoaded = exports.getUserId = exports.getAdId = exports.fireImpressionTrackers = exports.emitEvent = exports.defineTag = exports.clearRequest = exports.APPNEXUS_EVENT_TYPES = void 0; | ||
const apntagLoadSubscribers = []; | ||
@@ -66,6 +66,4 @@ let apntag = { | ||
const setUpAPNObject = () => { | ||
var _window$apntag, _window; | ||
// eslint-disable-next-line no-multi-assign | ||
apntag = window.apntag = (_window$apntag = (_window = window) === null || _window === void 0 ? void 0 : _window.apntag) !== null && _window$apntag !== void 0 ? _window$apntag : apntag; | ||
apntag = window.apntag = window?.apntag ?? apntag; | ||
apntag.anq = apntag.anq || []; | ||
@@ -72,0 +70,0 @@ return apntag; |
{ | ||
"name": "@schibsted/niche-ads", | ||
"version": "0.3.2", | ||
"version": "1.0.0", | ||
"description": "Package containing ads logic reappearing across our projects", | ||
@@ -31,24 +31,24 @@ "main": "dist/index.js", | ||
"devDependencies": { | ||
"@babel/cli": "^7.14.8", | ||
"@babel/core": "^7.14.8", | ||
"@babel/eslint-parser": "^7.16.3", | ||
"@babel/preset-env": "^7.14.8", | ||
"@babel/preset-react": "^7.14.5", | ||
"@commitlint/cli": "^13.1.0", | ||
"@commitlint/config-conventional": "^13.1.0", | ||
"@release-it/conventional-changelog": "^3.3.0", | ||
"eslint": "^8.2.0", | ||
"eslint-config-airbnb": "^19.0.0", | ||
"@babel/cli": "^7.17.0", | ||
"@babel/core": "^7.17.2", | ||
"@babel/eslint-parser": "^7.17.0", | ||
"@babel/preset-env": "^7.16.11", | ||
"@babel/preset-react": "^7.16.7", | ||
"@commitlint/cli": "^16.2.1", | ||
"@commitlint/config-conventional": "^16.2.1", | ||
"@release-it/conventional-changelog": "^4.1.0", | ||
"eslint": "^8.9.0", | ||
"eslint-config-airbnb": "^19.0.4", | ||
"eslint-config-prettier": "^8.3.0", | ||
"eslint-plugin-babel": "^5.3.1", | ||
"eslint-plugin-import": "^2.25.3", | ||
"eslint-plugin-jsx-a11y": "^6.4.1", | ||
"eslint-plugin-import": "^2.25.4", | ||
"eslint-plugin-jsx-a11y": "^6.5.1", | ||
"eslint-plugin-prettier": "^4.0.0", | ||
"eslint-plugin-react": "^7.27.0", | ||
"eslint-plugin-react": "^7.28.0", | ||
"eslint-plugin-react-hooks": "^4.3.0", | ||
"husky": "^7.0.2", | ||
"lint-staged": "^11.1.2", | ||
"prettier": "^2.4.0", | ||
"prop-types": "^15.7.2", | ||
"release-it": "^14.11.5", | ||
"husky": "^7.0.4", | ||
"lint-staged": "^12.3.4", | ||
"prettier": "^2.5.1", | ||
"prop-types": "^15.8.1", | ||
"release-it": "^14.12.4", | ||
"rimraf": "^3.0.2" | ||
@@ -55,0 +55,0 @@ }, |
@@ -102,7 +102,7 @@ import { createContext, useCallback, useMemo, useState, useRef, useEffect } from 'react'; | ||
const loadAds = useCallback( | ||
async (pageType, extraKeywords) => { | ||
async ({ pageType, keywords, allowlist, blocklist }) => { | ||
await scriptsLoadPromise.current; | ||
if (!device || !adScriptsReady) { | ||
retryLoadAds.current = [pageType, extraKeywords]; | ||
retryLoadAds.current = { pageType, keywords, allowlist, blocklist }; | ||
@@ -121,3 +121,3 @@ return; | ||
...buildKeywords(adsConfig.keywords, device, pageType), | ||
...extraKeywords, | ||
...keywords, | ||
'aa-sch-externalid_src': Boolean(getAdId()) + Boolean(getUserId()), | ||
@@ -130,3 +130,13 @@ }, | ||
setPlacementsConfig(adsConfig.placements[device][pageType].filter((placement) => placement.invCode)); | ||
let newPlacementConfig = adsConfig.placements[device][pageType]?.filter((placement) => placement.invCode); | ||
if (!newPlacementConfig) { | ||
throw new Error(`No configuration for device: ${device} and pageType: ${pageType}`); | ||
} | ||
if (allowlist?.length > 0) { | ||
newPlacementConfig = newPlacementConfig.filter((placement) => allowlist.includes(placement.targetId)); | ||
} | ||
if (blocklist?.length > 0) { | ||
newPlacementConfig = newPlacementConfig.filter((placement) => !blocklist.includes(placement.targetId)); | ||
} | ||
setPlacementsConfig(newPlacementConfig); | ||
}, | ||
@@ -140,3 +150,3 @@ [device, adsConfig, adScriptsReady] | ||
retryLoadAds.current = false; | ||
loadAds(...params); | ||
loadAds(params); | ||
} | ||
@@ -143,0 +153,0 @@ }, [device, loadAds, adScriptsReady]); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
No v1
QualityPackage is not semver >=1. This means it is not stable and does not support ^ ranges.
Found 1 instance in 1 package
71061
1192
1