UNPKG

@react-native-tapsell-mediation/tapsell

Version:
109 lines (106 loc) 4.17 kB
"use strict"; 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