@wscsports/blaze-rtn-ima-ads
Version:
WSC Sports Blaze IMA Ads component for React Native
97 lines • 3.22 kB
JavaScript
import { BlazeAsyncBridge, BlazeGlobalEvents } from "@wscsports/blaze-rtn-sdk";
export class BlazeGlobalDelegateHelper {
static registerDelegate(delegate) {
BlazeGlobalDelegateHelper.onIMAAdEvent(delegate?.onIMAAdEvent);
BlazeGlobalDelegateHelper.onIMAAdError(delegate?.onIMAAdError);
BlazeGlobalDelegateHelper.additionalIMATagQueryParams(delegate?.additionalIMATagQueryParams);
BlazeGlobalDelegateHelper.customIMASettings(delegate?.customIMASettings);
BlazeGlobalDelegateHelper.overrideAdTagUrl(delegate?.overrideAdTagUrl);
}
static onIMAAdEvent(callback) {
const eventName = 'BlazeIMA.onAdEvent';
if (callback) {
BlazeGlobalEvents.createEventSubscription(eventName, data => {
try {
const eventType = data['eventType'];
callback({
eventType
});
} catch (e) {
console.error('onIMAAdEvent', e);
}
});
} else {
BlazeGlobalEvents.cancelEventSubscription(eventName);
}
}
static onIMAAdError(callback) {
const eventName = 'BlazeIMA.onAdError';
if (callback) {
BlazeGlobalEvents.createEventSubscription(eventName, data => {
try {
const errorMessage = data['errorMessage'];
callback(errorMessage);
} catch (e) {
console.error('onIMAAdError', e);
}
});
} else {
BlazeGlobalEvents.cancelEventSubscription(eventName);
}
}
static additionalIMATagQueryParams(callback) {
const eventName = 'BlazeIMA.additionalIMATagQueryParams';
// Register async method handler
if (callback) {
BlazeAsyncBridge.registerJSMethod(eventName, async params => {
try {
const result = await callback(params);
return result;
} catch (error) {
console.error(`Error in ${eventName}:`, error);
return {};
}
});
} else {
// Unregister the handler if no delegate is provided
BlazeAsyncBridge.unregisterJSMethod(eventName);
}
}
static customIMASettings(callback) {
const eventName = 'BlazeIMA.customIMASettings';
// Register async method handler
if (callback) {
BlazeAsyncBridge.registerJSMethod(eventName, async params => {
try {
const result = await callback(params);
return result;
} catch (error) {
console.error(`Error in ${eventName}:`, error);
return undefined;
}
});
} else {
// Unregister the handler if no delegate is provided
BlazeAsyncBridge.unregisterJSMethod(eventName);
}
}
static overrideAdTagUrl(callback) {
const eventName = 'BlazeIMA.overrideAdTagUrl';
// Register async method handler
if (callback) {
BlazeAsyncBridge.registerJSMethod(eventName, async params => {
try {
const result = await callback(params);
return result;
} catch (error) {
console.error(`Error in ${eventName}:`, error);
return undefined;
}
});
} else {
// Unregister the handler if no delegate is provided
BlazeAsyncBridge.unregisterJSMethod(eventName);
}
}
}
//# sourceMappingURL=BlazeIMADelegate.js.map