fastlion-amis
Version:
一种MIS页面生成工具
37 lines (36 loc) • 1.71 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.withRendererEnv = exports.EnvContext = void 0;
var tslib_1 = require("tslib");
/**
* @file 组件 Env,包括如何发送 ajax,如何通知,如何跳转等等。。
*/
var react_1 = (0, tslib_1.__importDefault)(require("react"));
var hoist_non_react_statics_1 = (0, tslib_1.__importDefault)(require("hoist-non-react-statics"));
exports.EnvContext = react_1.default.createContext(undefined);
function withRendererEnv(ComposedComponent) {
var _a;
var result = (0, hoist_non_react_statics_1.default)((_a = /** @class */ (function (_super) {
(0, tslib_1.__extends)(class_1, _super);
function class_1() {
return _super !== null && _super.apply(this, arguments) || this;
}
class_1.prototype.render = function () {
var injectedProps = {
env: this.props.env || this.context
};
if (!injectedProps.env) {
throw new Error('Env 信息获取失败,组件用法不正确');
}
return (react_1.default.createElement(ComposedComponent, (0, tslib_1.__assign)({}, this.props, injectedProps)));
};
return class_1;
}(react_1.default.Component)),
_a.displayName = "WithEnv(" + (ComposedComponent.displayName || ComposedComponent.name) + ")",
_a.contextType = exports.EnvContext,
_a.ComposedComponent = ComposedComponent,
_a), ComposedComponent);
return result;
}
exports.withRendererEnv = withRendererEnv;
//# sourceMappingURL=./env.js.map
;