react-native-ad-manager
Version:
A react-native component for Google Ad Manager banners, interstitials and native ads.
88 lines (87 loc) • 2.39 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _reactNative = require("react-native");
var _utils = require("./utils");
var _Constants = require("./Constants");
const CTKInterstitial = _reactNative.NativeModules.CTKInterstitial ? _reactNative.NativeModules.CTKInterstitial : new Proxy({}, {
get() {
throw new Error(_Constants.LINKING_ERROR);
}
});
const eventEmitter = new _reactNative.NativeEventEmitter(CTKInterstitial);
const eventMap = {
adLoaded: 'interstitialAdLoaded',
adFailedToLoad: 'interstitialAdFailedToLoad',
adOpened: 'interstitialAdOpened',
adClosed: 'interstitialAdClosed'
};
const _subscriptions = new Map();
const addEventListener = (event, handler) => {
const mappedEvent = eventMap[event];
if (mappedEvent) {
let listener;
if (event === 'adFailedToLoad') {
listener = eventEmitter.addListener(mappedEvent, error => handler((0, _utils.createErrorFromErrorData)(error)));
} else {
listener = eventEmitter.addListener(mappedEvent, handler);
}
_subscriptions.set(handler, listener);
return {
remove: () => removeEventListener(event, handler)
};
} else {
console.warn(`Trying to subscribe to unknown event: "${event}"`);
return {
remove: () => {}
};
}
};
const removeEventListener = (_event, handler) => {
const listener = _subscriptions.get(handler);
if (!listener) {
return;
}
listener.remove();
_subscriptions.delete(handler);
};
const removeAllListeners = () => {
_subscriptions.forEach((listener, key, map) => {
listener.remove();
map.delete(key);
});
};
const simulatorId = 'SIMULATOR';
const setAdUnitID = adUnitID => {
CTKInterstitial.setAdUnitID(adUnitID);
};
const setTestDevices = testDevices => {
CTKInterstitial.setTestDevices(testDevices);
};
const setTargeting = targeting => {
CTKInterstitial.setTargeting(targeting);
};
const requestAd = () => {
return CTKInterstitial.requestAd();
};
const showAd = () => {
return CTKInterstitial.showAd();
};
const isReady = callback => {
return CTKInterstitial.isReady(callback);
};
var _default = exports.default = {
addEventListener,
removeEventListener,
removeAllListeners,
simulatorId,
setAdUnitID,
setTestDevices,
setTargeting,
requestAd,
showAd,
isReady
};
//# sourceMappingURL=CTKAdManagerInterstitial.js.map