UNPKG

@wscsports/blaze-rtn-sdk

Version:
116 lines (114 loc) 4.55 kB
import { UIManager, findNodeHandle } from 'react-native'; import { Component } from 'react'; import { mapToObject } from '../utils'; import { CommonParser } from '../classes/common-parser'; export class BlazeBaseWidgetView extends Component { state = { height: 0 }; _onDataLoadStarted = event => { if (this.props.widgetDelegate?.onDataLoadStarted) { this.props.widgetDelegate?.onDataLoadStarted(event.nativeEvent); } }; _onDataLoadCompleted = event => { if (this.props.widgetDelegate?.onDataLoadComplete) { this.props.widgetDelegate?.onDataLoadComplete(event.nativeEvent); } }; _onPlayerDidAppear = event => { if (this.props.widgetDelegate?.onPlayerDidAppear) { this.props.widgetDelegate?.onPlayerDidAppear(event.nativeEvent); } }; _onPlayerDismiss = event => { if (this.props.widgetDelegate?.onPlayerDidDismiss) { this.props.widgetDelegate?.onPlayerDidDismiss(event.nativeEvent); } }; _onItemClicked = event => { if (this.props.widgetDelegate?.onItemClicked) { this.props.widgetDelegate?.onItemClicked(event.nativeEvent); } }; _onTriggerCTA = event => { if (this.props.widgetDelegate?.onTriggerCTA) { this.props.widgetDelegate?.onTriggerCTA(event.nativeEvent); } }; _onTriggerPlayerBodyTextLink = event => { if (this.props.widgetDelegate?.onTriggerPlayerBodyTextLink) { this.props.widgetDelegate?.onTriggerPlayerBodyTextLink(event.nativeEvent); } }; _onPlayerEventTriggered = event => { if (this.props.widgetDelegate?.onPlayerEventTriggered) { const nativeEvent = event.nativeEvent; const widgetId = nativeEvent.widgetId; const playerEventType = nativeEvent.playerEventType; const playerEventParams = nativeEvent.playerEventParams; const result = CommonParser.extractPlayerEvent(playerEventType, playerEventParams); if (result != null) { this.props.widgetDelegate?.onPlayerEventTriggered({ widgetId: widgetId, playerEvent: result }); } } }; _onHeightChange = event => { this.setState({ height: Number(event.nativeEvent.newHeight) }); }; reloadData(isSilentRefresh = false) { if (this.ref) { UIManager.dispatchViewManagerCommand(findNodeHandle(this.ref), UIManager.getViewManagerConfig(this.getComponentName()).Commands.reloadData, [isSilentRefresh]); } } updateDataSource(dataSource, isSilentRefresh = false) { if (this.ref) { UIManager.dispatchViewManagerCommand(findNodeHandle(this.ref), UIManager.getViewManagerConfig(this.getComponentName()).Commands.updateDataSource, [dataSource, isSilentRefresh]); } } play() { if (this.ref) { UIManager.dispatchViewManagerCommand(findNodeHandle(this.ref), UIManager.getViewManagerConfig(this.getComponentName()).Commands.play, []); } } updateOverrideStyles(perItemStyleOverrides, shouldUpdateUi) { if (this.ref) { const perItemStyleOverridesRecord = mapToObject(perItemStyleOverrides); UIManager.dispatchViewManagerCommand(findNodeHandle(this.ref), UIManager.getViewManagerConfig(this.getComponentName()).Commands.updateOverrideStyles, [perItemStyleOverridesRecord, shouldUpdateUi]); } } updateWidgetsUi() { if (this.ref) { UIManager.dispatchViewManagerCommand(findNodeHandle(this.ref), UIManager.getViewManagerConfig(this.getComponentName()).Commands.updateWidgetsUi, []); } } // This method should be overridden by derived components getComponentName() { throw new Error('getComponentName() not implemented'); } createBaseProps() { const baseProps = { ...this.props, onWidgetDataLoadStartedInternal: this._onDataLoadStarted, onWidgetDataLoadCompletedInternal: this._onDataLoadCompleted, onWidgetPlayerDidAppearInternal: this._onPlayerDidAppear, onWidgetPlayerDismissedInternal: this._onPlayerDismiss, onItemClickedInternal: this._onItemClicked, onTriggerCTAInternal: this._onTriggerCTA, onTriggerPlayerBodyTextLinkInternal: this._onTriggerPlayerBodyTextLink, onPlayerEventTriggeredInternal: this._onPlayerEventTriggered, onHeightChangedInternal: this._onHeightChange }; // If perItemStyleOverrides is defined and is a Map, convert it to an object if (this.props.perItemStyleOverrides instanceof Map) { baseProps.perItemStyleOverridesInternal = mapToObject(this.props.perItemStyleOverrides); } return baseProps; } } //# sourceMappingURL=BlazeBaseWidgetComponent.js.map