UNPKG

@zohodesk/platform-middleware

Version:

Generalized Contract for the events from Marketplace App, In-App widgets, CRM-Plus and EFC

92 lines (74 loc) 2.51 kB
import _Object$getPrototypeOf from "babel-runtime/core-js/object/get-prototype-of"; import _classCallCheck from "babel-runtime/helpers/classCallCheck"; import _createClass from "babel-runtime/helpers/createClass"; import _possibleConstructorReturn from "babel-runtime/helpers/possibleConstructorReturn"; import _inherits from "babel-runtime/helpers/inherits"; import React from "react"; import { connect } from "react-redux"; import { constructWidgetData } from '../utils'; import { renderWidgetsAction, renderWidgets as _renderWidgets } from '../actions/widgetsActions'; export var WidgetContext = React.createContext(); export var WidgetProvider = function (_React$Component) { _inherits(WidgetProvider, _React$Component); function WidgetProvider(props) { _classCallCheck(this, WidgetProvider); var _this = _possibleConstructorReturn(this, (WidgetProvider.__proto__ || _Object$getPrototypeOf(WidgetProvider)).call(this, props)); _this.value = { renderWidgets: _this.renderWidgets, fetchWidgets: _this.fetchWidgets }; return _this; } /* Sample reqObj = { locations: 'desk.ticket.detail.rightpanel, desk.ticket.detail.lefttab', from : '0', limit: '10', sortBy: 'position', departmentId:'1234567890' } */ //TODO: add the intelisense to handle from and limit _createClass(WidgetProvider, [{ key: "fetchWidgets", value: function fetchWidgets(reqObj) { return this.props.apiCallHandler(reqObj); } }, { key: "renderWidgets", value: function renderWidgets(widgets) { var renderWidgets = this.props.renderWidgets; renderWidgets(widgets); } }, { key: "render", value: function render() { var children = this.props.children; return React.createElement( WidgetContext.Provider, { value: this.value }, children ); } }]); return WidgetProvider; }(React.Component); var mapStateToProps = function mapStateToProps(state, props) { return { widgetState: state[props.stateName] }; }; var mapDispatchToProps = function mapDispatchToProps(dispatch, props) { return { renderWidgets: function renderWidgets(widgets) { return dispatch(_renderWidgets(widgets)); }, apiCallHandler: function apiCallHandler(reqObj) { return dispatch(props.apiCallHandler(reqObj)); } }; }; export default connect(mapStateToProps, { renderWidgets: _renderWidgets, apiCallHandler: apiCallHandler })(WidgetProvider);