UNPKG

@aliretail/react-materials-components

Version:
141 lines (116 loc) 5.41 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports["default"] = void 0; var _button = _interopRequireDefault(require("@alifd/next/lib/button")); var _icon = _interopRequireDefault(require("@alifd/next/lib/icon")); var _dialog = _interopRequireDefault(require("@alifd/next/lib/dialog")); var _message = _interopRequireDefault(require("@alifd/next/lib/message")); var _react = _interopRequireWildcard(require("react")); var _CoreInput = _interopRequireDefault(require("./CoreInput")); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; } var FormulaInput = function FormulaInput(props) { var noWrapper = props.noWrapper, onChange = props.onChange, configList = props.configList, value = props.value, dialogTitle = props.dialogTitle, isPreview = props.isPreview, disabled = props.disabled, onOpenDialog = props.onOpenDialog, onCloseDialog = props.onCloseDialog; var _useState = (0, _react.useState)(false), showInput = _useState[0], setShowInput = _useState[1]; var _useState2 = (0, _react.useState)(value), dialogInputValue = _useState2[0], setDialogInputValue = _useState2[1]; var _useState3 = (0, _react.useState)(value), stateValue = _useState3[0], setStateValue = _useState3[1]; var handleChange = (0, _react.useCallback)(function (newValue) { onChange(newValue); setStateValue(newValue); }, [onChange]); var handleButtonClick = (0, _react.useCallback)(function () { var invoke = function invoke() { setDialogInputValue(stateValue); setShowInput(!showInput); }; if (typeof onOpenDialog === 'function') { onOpenDialog().then(invoke)["catch"](function () {}); } else { invoke(); } }, [showInput, stateValue, onOpenDialog]); var closeDialog = (0, _react.useCallback)(function () { setShowInput(false); }, []); (0, _react.useEffect)(function () { setStateValue(value); }, [value]); if (isPreview) { return /*#__PURE__*/_react["default"].createElement("span", null, value); } if (noWrapper) { return /*#__PURE__*/_react["default"].createElement(_CoreInput["default"], { value: value, onChange: onChange, configList: configList }); } var inputDialog = null; if (showInput) { var handleOk = function handleOk() { if (dialogInputValue) { var invoke = function invoke() { handleChange(dialogInputValue); closeDialog(); }; if (typeof onCloseDialog === 'function') { onCloseDialog(dialogInputValue).then(invoke)["catch"](function (errorMessage) { if (errorMessage === void 0) { errorMessage = ''; } _message["default"].warning(errorMessage || '请正确输入'); }); } else { invoke(); } } }; inputDialog = /*#__PURE__*/_react["default"].createElement(_dialog["default"], { visible: true, title: dialogTitle, onOk: handleOk, onClose: closeDialog, onCancel: closeDialog, shouldUpdatePosition: true }, /*#__PURE__*/_react["default"].createElement("div", { className: "aliretail-formula-input-dialog" }, /*#__PURE__*/_react["default"].createElement(_CoreInput["default"], { value: dialogInputValue, onChange: setDialogInputValue, configList: configList }))); } return /*#__PURE__*/_react["default"].createElement("div", { className: "aliretail-formula-input-container" }, /*#__PURE__*/_react["default"].createElement("span", { className: "aliretail-formula-input-value" }, stateValue), /*#__PURE__*/_react["default"].createElement(_button["default"], { text: true, type: "primary", onClick: handleButtonClick, className: "aliretail-formula-input-button", disabled: disabled }, /*#__PURE__*/_react["default"].createElement("span", null, stateValue ? '编辑' : '添加'), /*#__PURE__*/_react["default"].createElement(_icon["default"], { type: stateValue ? 'edit-square' : 'add' })), inputDialog); }; FormulaInput.defaultProps = { onChange: function onChange() {} }; var _default = FormulaInput; exports["default"] = _default;