UNPKG

@wscsports/blaze-rtn-sdk

Version:
118 lines (114 loc) 5.61 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.BlazeBaseWidgetView = void 0; var _react = require("react"); var _reactNative = require("react-native"); var _basePlayerDelegate = require("../classes/base-player-delegate"); var _utils = require("../utils"); class BlazeBaseWidgetView extends _react.Component { state = { height: 0 }; _onDataLoadStarted = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handleDataLoadStarted(event.nativeEvent, this.props.widgetDelegate?.onDataLoadStarted); }; _onDataLoadCompleted = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handleDataLoadComplete(event.nativeEvent, this.props.widgetDelegate?.onDataLoadComplete); }; _onPlayerDidAppear = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handlePlayerDidAppear(event.nativeEvent, this.props.widgetDelegate?.onPlayerDidAppear); }; _onPlayerDismiss = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handlePlayerDidDismiss(event.nativeEvent, this.props.widgetDelegate?.onPlayerDidDismiss); }; _onItemClicked = event => { if (this.props.widgetDelegate?.onItemClicked) { const params = { sourceId: event.nativeEvent.sourceId, widgetItemId: event.nativeEvent.widgetItemId, widgetItemTitle: event.nativeEvent.widgetItemTitle }; this.props.widgetDelegate.onItemClicked(params); } }; _onTriggerCTA = event => { // Pass the native event directly to the shared handler _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handleTriggerCTA(event.nativeEvent, this.props.widgetDelegate?.onTriggerCTA); }; _onTriggerPlayerBodyTextLink = event => { // Pass the native event directly to the shared handler _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handleTriggerPlayerBodyTextLink(event.nativeEvent, this.props.widgetDelegate?.onTriggerPlayerBodyTextLink); }; _onPlayerEventTriggered = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handlePlayerEventTriggered(event.nativeEvent, this.props.widgetDelegate?.onPlayerEventTriggered); }; _onTriggerCustomActionButton = event => { _basePlayerDelegate.BlazeBasePlayerDelegateHandler.handleTriggerCustomActionButton(event.nativeEvent, this.props.widgetDelegate?.onTriggerCustomActionButton); }; _onHeightChange = event => { this.setState({ height: Number(event.nativeEvent.newHeight) }); }; reloadData(isSilentRefresh = false) { if (this.ref) { _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this.ref), _reactNative.UIManager.getViewManagerConfig(this.getComponentName()).Commands.reloadData, [isSilentRefresh]); } } updateDataSource(dataSource, isSilentRefresh = false) { if (this.ref) { _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this.ref), _reactNative.UIManager.getViewManagerConfig(this.getComponentName()).Commands.updateDataSource, [dataSource, isSilentRefresh]); } } play() { if (this.ref) { _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this.ref), _reactNative.UIManager.getViewManagerConfig(this.getComponentName()).Commands.play, []); } } updateOverrideStyles(perItemStyleOverrides, shouldUpdateUi) { if (this.ref) { const perItemStyleOverridesRecord = (0, _utils.mapToObject)(perItemStyleOverrides); _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this.ref), _reactNative.UIManager.getViewManagerConfig(this.getComponentName()).Commands.updateOverrideStyles, [perItemStyleOverridesRecord, shouldUpdateUi]); } } updateWidgetsUi() { if (this.ref) { _reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this.ref), _reactNative.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, onTriggerCustomActionButtonInternal: this._onTriggerCustomActionButton, onHeightChangedInternal: this._onHeightChange }; // If perItemStyleOverrides is defined and is a Map, convert it to an object if (this.props.perItemStyleOverrides instanceof Map) { baseProps.perItemStyleOverridesInternal = (0, _utils.mapToObject)(this.props.perItemStyleOverrides); } return baseProps; } shouldComponentUpdate(nextProps, nextState, nextContext) { // Allow Re-render if state has changed (Contains the widget's height) const hasStateChanged = this.state != nextState; if (hasStateChanged) return true; // ATM we don't re-render in any other case - because ReactNative sometimes render multiple times and the shimmer animation is glitched. return false; } } exports.BlazeBaseWidgetView = BlazeBaseWidgetView; //# sourceMappingURL=BlazeBaseWidgetComponent.js.map