UNPKG

canner

Version:

Build CMS in few lines of code for different data sources

198 lines (165 loc) 7.57 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = deploy; exports.genDeployButton = genDeployButton; exports.genCancelButton = genCancelButton; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); require("antd/lib/button/style"); var _button = _interopRequireDefault(require("antd/lib/button")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var React = _interopRequireWildcard(require("react")); var _antd = require("antd"); var _lodash = require("lodash"); var _cache = require("./cache"); function deploy(Com) { return ( /*#__PURE__*/ function (_React$Component) { (0, _inherits2.default)(ComponentWithDeploy, _React$Component); function ComponentWithDeploy() { var _getPrototypeOf2; var _this; (0, _classCallCheck2.default)(this, ComponentWithDeploy); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2.default)(this, (_getPrototypeOf2 = (0, _getPrototypeOf3.default)(ComponentWithDeploy)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "deploy", function (refId, callback) { var deploy = _this.props.deploy; return deploy(refId.getPathArr()[0]).then(callback).catch(function () {}); }); (0, _defineProperty2.default)((0, _assertThisInitialized2.default)((0, _assertThisInitialized2.default)(_this)), "reset", function (refId, callback) { var _this$props = _this.props, reset = _this$props.reset, rootValue = _this$props.rootValue; var key = refId.getPathArr()[0]; var recordId = getItemId(rootValue, refId); reset(key, recordId); callback(); }); return _this; } (0, _createClass2.default)(ComponentWithDeploy, [{ key: "render", value: function render() { var _this$props2 = this.props, routerParams = _this$props2.routerParams, routes = _this$props2.routes, refId = _this$props2.refId, path = _this$props2.path, pattern = _this$props2.pattern, controlDeployAndResetButtons = _this$props2.controlDeployAndResetButtons, hideButtons = _this$props2.hideButtons; var buttonContainer = { textAlign: 'right', marginTop: 60 }; var renderConfirmButton = genDeployButton(this.deploy, refId); var renderCancelButton = genCancelButton(this.reset, refId); var isCreateOp = routerParams.operator === 'create'; var shouldRenderButtons = (routes.length === 1 || (0, _cache.isRoutesEndAtMe)({ routes: routes, path: path, pattern: pattern }) && isCreateOp) && !controlDeployAndResetButtons && !hideButtons && refId.getPathArr().length <= routes.length; return React.createElement("div", null, React.createElement(Com, (0, _extends2.default)({}, this.props, { renderConfirmButton: renderConfirmButton, renderCancelButton: renderCancelButton })), shouldRenderButtons && // $FlowFixMe React.createElement("div", { style: buttonContainer }, renderConfirmButton({ callback: function callback() {// location.href = routerParams.backUrl || location.href.split('?')[0]; }, style: { marginRight: 16 } }), renderCancelButton({ hidden: isCreateOp }))); } }]); return ComponentWithDeploy; }(React.Component) ); } function genDeployButton(deploy, currentRefId) { return function DeployButton() { var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref$disabled = _ref.disabled, disabled = _ref$disabled === void 0 ? false : _ref$disabled, _ref$style = _ref.style, style = _ref$style === void 0 ? { marginRight: 16 } : _ref$style, _ref$refId = _ref.refId, refId = _ref$refId === void 0 ? currentRefId : _ref$refId, _ref$onClick = _ref.onClick, _onClick = _ref$onClick === void 0 ? deploy : _ref$onClick, _ref$callback = _ref.callback, callback = _ref$callback === void 0 ? function () {} : _ref$callback, _ref$text = _ref.text, text = _ref$text === void 0 ? 'Confirm' : _ref$text, _ref$Component = _ref.Component, Component = _ref$Component === void 0 ? _button.default : _ref$Component; return React.createElement(Component, { disabled: disabled, style: style, type: "primary", onClick: function onClick() { return _onClick(refId, callback); }, "data-testid": "confirm-button" }, text); }; } function genCancelButton(reset, currentRefId) { return function CancelButton() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, _ref2$disabled = _ref2.disabled, disabled = _ref2$disabled === void 0 ? false : _ref2$disabled, _ref2$style = _ref2.style, style = _ref2$style === void 0 ? {} : _ref2$style, _ref2$refId = _ref2.refId, refId = _ref2$refId === void 0 ? currentRefId : _ref2$refId, _ref2$onClick = _ref2.onClick, _onClick2 = _ref2$onClick === void 0 ? reset : _ref2$onClick, _ref2$callback = _ref2.callback, callback = _ref2$callback === void 0 ? function () {} : _ref2$callback, _ref2$text = _ref2.text, text = _ref2$text === void 0 ? 'Reset' : _ref2$text, _ref2$Component = _ref2.Component, Component = _ref2$Component === void 0 ? _button.default : _ref2$Component; return React.createElement(Component, { disabled: disabled, style: style, onClick: function onClick() { return _onClick2(refId, callback); }, "data-testid": "reset-button" }, text); }; } function getItemId(rootValue, refId) { var _refId$getPathArr = refId.getPathArr(), _refId$getPathArr2 = (0, _slicedToArray2.default)(_refId$getPathArr, 2), key = _refId$getPathArr2[0], index = _refId$getPathArr2[1]; var itemId = ''; var value = rootValue[key]; if ((0, _lodash.isArray)(value) && index) { itemId = value[index].id; } return itemId; }