UNPKG

@wix/design-system

Version:

@wix/design-system

230 lines (229 loc) 8.05 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); exports.__esModule = true; exports.listItemEditableBuilder = exports.ListItemEditable = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _wixUiIconsCommon = require("@wix/wix-ui-icons-common"); var _propTypes = _interopRequireDefault(require("prop-types")); var _react = _interopRequireWildcard(require("react")); var _Box = _interopRequireDefault(require("../Box")); var _IconButton = _interopRequireDefault(require("../IconButton")); var _Input = _interopRequireDefault(require("../Input")); var _Tooltip = _interopRequireDefault(require("../Tooltip")); var _ListItemEditable = require("./ListItemEditable.constants"); var _ListItemEditableSt = require("./ListItemEditable.st.css.js"); var _jsxFileName = "/home/builduser/work/57e038ea7326c1ec/packages/wix-design-system/dist/cjs/ListItemEditable/ListItemEditable.tsx"; function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var ListItemEditable = _ref => { var { dataHook, className, margins = 'list-item', size = _ListItemEditable.ListItemEditableSize.small, status, value, statusMessage, placeholder, suffix, autoFocus, onEnterPressed, cancelButtonTooltipProps, cancelButtonTooltipContent, approveButtonTooltipProps, approveButtonTooltipContent, approveButtonDisabledOnEmpty = true, onApprove = () => {}, onCancel = () => {}, onChange } = _ref; var [inputValue, setInputValue] = (0, _react.useState)(value || ''); var onInputChange = (0, _react.useCallback)(event => { setInputValue(event.target.value); onChange == null || onChange(event); }, [onChange]); var onApproveClicked = (0, _react.useCallback)(() => onApprove(inputValue), [onApprove, inputValue]); return /*#__PURE__*/_react.default.createElement(_Box.default, { dataHook: dataHook, className: className, margin: margins === 'list-item' ? '3px 24px' : undefined, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 52, columnNumber: 5 } }, /*#__PURE__*/_react.default.createElement(_Box.default, { marginRight: 3, flex: 1, minWidth: 0, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 57, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement(_Input.default, { dataHook: _ListItemEditable.dataHooks.input, className: _ListItemEditableSt.classes.input, size: size, status: status, value: inputValue, statusMessage: statusMessage, onChange: onInputChange, placeholder: placeholder, suffix: suffix, autoFocus: autoFocus, onEnterPressed: onEnterPressed, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 58, columnNumber: 9 } })), /*#__PURE__*/_react.default.createElement(_Box.default, { marginRight: 2, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 72, columnNumber: 7 } }, /*#__PURE__*/_react.default.createElement(_Tooltip.default, (0, _extends2.default)({}, cancelButtonTooltipProps, { dataHook: _ListItemEditable.dataHooks.cancelButtonTooltip, disabled: !cancelButtonTooltipContent, content: cancelButtonTooltipContent, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 73, columnNumber: 9 } }), /*#__PURE__*/_react.default.createElement(_IconButton.default, { dataHook: _ListItemEditable.dataHooks.cancelButton, size: size, priority: "secondary", onClick: onCancel, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 79, columnNumber: 11 } }, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.X, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 85, columnNumber: 13 } })))), /*#__PURE__*/_react.default.createElement(_Tooltip.default, (0, _extends2.default)({}, approveButtonTooltipProps, { dataHook: _ListItemEditable.dataHooks.approveButtonTooltip, disabled: !approveButtonTooltipContent || !inputValue, content: approveButtonTooltipContent, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 89, columnNumber: 7 } }), /*#__PURE__*/_react.default.createElement(_IconButton.default, { size: size, disabled: approveButtonDisabledOnEmpty && !inputValue, onClick: onApproveClicked, dataHook: _ListItemEditable.dataHooks.approveButton, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 95, columnNumber: 9 } }, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Check, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 101, columnNumber: 11 } })))); }; exports.ListItemEditable = ListItemEditable; ListItemEditable.displayName = 'ListItemEditable'; ListItemEditable.propTypes = { dataHook: _propTypes.default.string, className: _propTypes.default.string, value: _propTypes.default.string, placeholder: _propTypes.default.string, onApprove: _propTypes.default.func, onCancel: _propTypes.default.func, onChange: _propTypes.default.func, cancelButtonTooltipContent: _propTypes.default.any, cancelButtonTooltipProps: _propTypes.default.any, status: _propTypes.default.oneOf(['error', 'warning', 'loading']), size: _propTypes.default.any, approveButtonTooltipContent: _propTypes.default.any, approveButtonTooltipProps: _propTypes.default.any, approveButtonDisabledOnEmpty: _propTypes.default.bool, statusMessage: _propTypes.default.any, margins: _propTypes.default.any, suffix: _propTypes.default.any, autoFocus: _propTypes.default.bool, onEnterPressed: _propTypes.default.func }; var listItemEditableBuilder = _ref2 => { var { id, dataHook, className, size, placeholder, onApprove, onCancel, onChange, cancelButtonTooltipContent, cancelButtonTooltipProps, approveButtonTooltipContent, approveButtonTooltipProps, approveButtonDisabledOnEmpty, status, statusMessage, margins, suffix, autoFocus, onEnterPressed } = _ref2; return { id, disabled: true, overrideOptionStyle: true, prefix: undefined, label: undefined, value: props => /*#__PURE__*/_react.default.createElement(ListItemEditable, (0, _extends2.default)({}, props, { dataHook: dataHook, className: className, size: size, placeholder: placeholder, onApprove: onApprove, onCancel: onCancel, onChange: onChange, cancelButtonTooltipContent: cancelButtonTooltipContent, cancelButtonTooltipProps: cancelButtonTooltipProps, approveButtonTooltipContent: approveButtonTooltipContent, approveButtonTooltipProps: approveButtonTooltipProps, approveButtonDisabledOnEmpty: approveButtonDisabledOnEmpty, status: status, statusMessage: statusMessage, margins: margins, suffix: suffix, autoFocus: autoFocus, onEnterPressed: onEnterPressed, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 159, columnNumber: 5 } })) }; }; exports.listItemEditableBuilder = listItemEditableBuilder; //# sourceMappingURL=ListItemEditable.js.map