Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@skava/modules / ___dist / observable-utils / deps / injectContextWith.js
Size: Mime:
"use strict";

Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.injectContextWith = injectContextWith;
exports.default = void 0;

var _mobxReact = require("xmobx/mobx-react");

var _exotic = require("../../exotic");

var _injectContext = _interopRequireDefault(require("./injectContext"));

function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }

// import { inject } from 'xmobx/mobx'

/**
 * @api https://github.com/mobxjs/mobx-react#customizing-inject
 *
 * @param {Function} [injectionMap=Function]
 * @param {Function | React.getContext} [getContext=Function]
 * @return {ClassDecorator | mobx.Provide<React.ComponentClass>}
 *
 * @example
 *   stores => {
 *     return {
 *       modalContext: stores.modalContext,
 *     }
 *   }
 */
function injectContextWith(injectionMap = _exotic.NO_OP, getContext = _exotic.NO_OP) {
  return function injectionDecorator(Target) {
    const injector = (0, _mobxReact.inject)(injectionMap);
    const View = (0, _mobxReact.observer)(Target);
    const Injected = injector(View);
    return (0, _injectContext.default)(getContext, Injected);
  };
}

var _default = injectContextWith;
exports.default = _default;