@react-native-tapsell-mediation/tapsell
Version:
Tapsell Mediation package
109 lines (106 loc) • 4.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ShowCourierInstance = void 0;
var _reactNative = require("react-native");
var _ImpressionType = require("./ImpressionType");
var _tapsell = require("@react-native-tapsell-mediation/tapsell");
var _MediationEventListener = require("../messaging/MediationEventListener");
var _NativeAdViewHolder = require("./native/NativeAdViewHolder");
const LINKING_ERROR = `The package '@react-native-tapsell-mediation/tapsell' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
ios: "- You have run 'pod install'\n",
default: ''
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
const TapsellMediatorModule = _reactNative.NativeModules.RNTapsellMediation ? _reactNative.NativeModules.RNTapsellMediation : new Proxy({}, {
get() {
throw new Error(LINKING_ERROR);
}
});
/** @internal */
class ShowCourier {
constructor() {
this.subscribeImpressionEvents();
}
_listeners = new Map();
static getInstance() {
if (!ShowCourier._instance) {
ShowCourier._instance = new ShowCourier();
}
return ShowCourier._instance;
}
showRewardedAd(adId, listener) {
this._listeners.set(adId, listener);
return TapsellMediatorModule.showRewardedAd(adId);
}
showInterstitialAd(adId, listener) {
this._listeners.set(adId, listener);
return TapsellMediatorModule.showInterstitialAd(adId);
}
showBannerAd(adId, bannerPosition, listener) {
this._listeners.set(adId, listener);
return TapsellMediatorModule.showBannerAd(adId, bannerPosition);
}
showNativeAd(adId, adDispatch, listener) {
_NativeAdViewHolder.nativeAdViewHolderInstance.registerAdView(adId, adDispatch);
this._listeners.set(adId, listener);
return TapsellMediatorModule.showNativeAd(adId);
}
clickNativeAd(adId) {
_reactNative.DeviceEventEmitter.emit('TapsellNativeAdClick', adId);
}
destroyBannerAd(adId) {
this._listeners.delete(adId);
TapsellMediatorModule.destroyBannerAd(adId);
}
destroyNativeAd(adId) {
this._listeners.delete(adId);
TapsellMediatorModule.destroyNativeAd(adId);
}
subscribeImpressionEvents() {
_MediationEventListener._mediationEventListenerInstance.registerAdImpressionListener(event => {
this.onImpressionEvent(event, _ImpressionType.ImpressionType.IMPRESSION);
});
_MediationEventListener._mediationEventListenerInstance.registerAdClickListener(event => {
this.onImpressionEvent(event, _ImpressionType.ImpressionType.CLICK);
});
_MediationEventListener._mediationEventListenerInstance.registerAdRewardListener(event => {
this.onImpressionEvent(event, _ImpressionType.ImpressionType.REWARD);
});
_MediationEventListener._mediationEventListenerInstance.registerAdCloseListener(event => {
this.onImpressionEvent(event, _ImpressionType.ImpressionType.CLOSE);
});
_MediationEventListener._mediationEventListenerInstance.registerAdShowFailureListener(event => {
this.onImpressionEvent(event, _ImpressionType.ImpressionType.FAILURE);
});
}
onImpressionEvent(event, impressionType) {
const listener = this._listeners.get(event.adId);
if (!listener) {
throw new Error(`Ad not found for id: ${event.adId}`);
}
switch (impressionType) {
case _ImpressionType.ImpressionType.IMPRESSION:
listener.onAdImpression();
break;
case _ImpressionType.ImpressionType.CLICK:
listener.onAdClicked();
break;
case _ImpressionType.ImpressionType.REWARD:
listener.onRewarded();
break;
case _ImpressionType.ImpressionType.CLOSE:
const completionState = _tapsell.CompletionState.fromInt(event.completionState);
if (completionState !== undefined) {
listener.onAdClosed(completionState);
}
break;
case _ImpressionType.ImpressionType.FAILURE:
listener.onAdFailed(event.message);
break;
}
}
}
/** @internal */
const ShowCourierInstance = exports.ShowCourierInstance = ShowCourier.getInstance();
//# sourceMappingURL=index.js.map