UNPKG

apollo-mantra

Version:

Tools for integration of apollo with Mantra

45 lines (44 loc) 1.81 kB
"use strict"; var __assign = (this && this.__assign) || Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; Object.defineProperty(exports, "__esModule", { value: true }); var React = require("react"); var config_1 = require("./config"); var mobx_react_1 = require("mobx-react"); function connect(mapStateToProps) { return function wrapWithConnect(WrappedComponent) { var func = function (props, context) { return React.createElement(WrappedComponent, __assign({}, props, mapStateToProps(context.state, props, context))); }; func.displayName = "Connect(" + (WrappedComponent.displayName || 'Component') + ")"; func.contextTypes = config_1.default.contextTypes; return mobx_react_1.observer(func); }; } exports.connect = connect; function provide() { var names = []; for (var _i = 0; _i < arguments.length; _i++) { names[_i] = arguments[_i]; } return function provideFromContext(WrappedComponent) { var func = function (props, context) { var extraProps = {}; for (var _i = 0, names_1 = names; _i < names_1.length; _i++) { var name_1 = names_1[_i]; extraProps[name_1] = context.mobxStores[name_1]; } return React.createElement(WrappedComponent, __assign({}, props, extraProps)); }; func.displayName = "Connect(" + (WrappedComponent.displayName || 'Component') + ")"; func.contextTypes = { mobxStores: mobx_react_1.PropTypes.objectOrObservableObject }; return mobx_react_1.observer(func); }; } exports.provide = provide;