@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
JavaScript
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);