@wscsports/blaze-rtn-sdk
Version:
WSC Sports Blaze SDK component for React Native
143 lines (140 loc) • 4.29 kB
JavaScript
import { CommonParser } from './common-parser';
import { parseBlazeError } from '../interfaces/blaze-error.interface';
// Shared parameter interfaces for base player delegate
// Base player delegate interface - shared between Widget and EntryPoint delegates
// Base player delegate handler - eliminates duplicate code between Widget and EntryPoint delegates
export class BlazeBasePlayerDelegateHandler {
static extractPlayerType(data) {
return data['playerType'];
}
static extractCTAActionType(data) {
return data['actionType'];
}
static handleDataLoadStarted(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
callback({
playerType,
sourceId
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handleDataLoadStarted', e);
}
}
static handleDataLoadComplete(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
const itemsCount = data['itemsCount'];
const error = parseBlazeError(data['error']);
callback({
playerType,
sourceId,
itemsCount,
error
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handleDataLoadComplete', e);
}
}
static handlePlayerDidAppear(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
callback({
playerType,
sourceId
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handlePlayerDidAppear', e);
}
}
static handlePlayerDidDismiss(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
callback({
playerType,
sourceId
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handlePlayerDidDismiss', e);
}
}
static handleTriggerCTA(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
const actionType = this.extractCTAActionType(data);
const actionParam = data['actionParam'];
callback({
playerType,
sourceId,
actionType,
actionParam
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handleTriggerCTA', e);
}
}
static handleTriggerPlayerBodyTextLink(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
const actionParam = data['actionParam'];
callback({
playerType,
sourceId,
actionParam
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handleTriggerPlayerBodyTextLink', e);
}
}
static handlePlayerEventTriggered(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
const playerEventType = data['playerEventType'];
const playerEventParams = data['playerEventParams'];
const result = CommonParser.extractPlayerEvent(playerEventType, playerEventParams);
if (result != null) {
callback({
playerType,
sourceId,
playerEvent: result
});
}
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handlePlayerEventTriggered', e);
}
}
static handleTriggerCustomActionButton(data, callback) {
if (!callback) return;
try {
const playerType = this.extractPlayerType(data);
const sourceId = data['sourceId'];
const buttonId = data['buttonId'];
const buttonName = data['buttonName'];
const appMetadata = data['appMetadata'];
callback({
playerType,
sourceId,
buttonId,
buttonName,
appMetadata
});
} catch (e) {
console.error('BlazeBasePlayerDelegateHandler.handleTriggerCustomActionButton', e);
}
}
}
//# sourceMappingURL=base-player-delegate.js.map