Repository URL to install this package:
|
Version:
1.1.21 ▾
|
"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;