35 lines
1.7 KiB
JavaScript
35 lines
1.7 KiB
JavaScript
"use strict";
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
exports.divWrapper = void 0;
|
|
var tslib_1 = require("tslib");
|
|
var React = tslib_1.__importStar(require("react"));
|
|
var addClassDecoratorSupport_1 = tslib_1.__importDefault(require("./addClassDecoratorSupport"));
|
|
var h = React.createElement;
|
|
var noWrap = function (Comp, propName, props, state) {
|
|
var _a;
|
|
return h(Comp, propName ? tslib_1.__assign((_a = {}, _a[propName] = state, _a), props) : tslib_1.__assign(tslib_1.__assign({}, state), props));
|
|
};
|
|
exports.divWrapper = function (Comp, propName, props, state) {
|
|
return h('div', null, noWrap(Comp, propName, props, state));
|
|
};
|
|
var createEnhancer = function (Facc, prop, wrapper) {
|
|
if (wrapper === void 0) { wrapper = noWrap; }
|
|
var enhancer = function (Comp, propName, faccProps) {
|
|
if (propName === void 0) { propName = prop; }
|
|
if (faccProps === void 0) { faccProps = null; }
|
|
var isClassDecoratorMethodCall = typeof Comp === 'string';
|
|
if (isClassDecoratorMethodCall) {
|
|
return function (Klass) { return enhancer(Klass, Comp || prop, propName); };
|
|
}
|
|
var Enhanced = function (props) {
|
|
return h(Facc, faccProps, function (state) { return wrapper(Comp, propName, props, state); });
|
|
};
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
Enhanced.displayName = (Facc.displayName || Facc.name) + "(" + (Comp.displayName || Comp.name) + ")";
|
|
}
|
|
return isClassDecoratorMethodCall ? addClassDecoratorSupport_1.default(Enhanced) : Enhanced;
|
|
};
|
|
return enhancer;
|
|
};
|
|
exports.default = createEnhancer;
|
|
//# sourceMappingURL=createEnhancer.js.map
|