UNPKG

@wix/design-system

Version:

@wix/design-system

222 lines (221 loc) 8.76 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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _wixUiIconsCommon = require("@wix/wix-ui-icons-common"); 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 _WixDesignSystemIconThemeProvider = require("../WixDesignSystemIconThemeProvider"); 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 = _ref.dataHook, className = _ref.className, _ref$margins = _ref.margins, margins = _ref$margins === void 0 ? 'list-item' : _ref$margins, _ref$size = _ref.size, size = _ref$size === void 0 ? _ListItemEditable.ListItemEditableSize.small : _ref$size, status = _ref.status, value = _ref.value, statusMessage = _ref.statusMessage, placeholder = _ref.placeholder, suffix = _ref.suffix, autoFocus = _ref.autoFocus, onEnterPressed = _ref.onEnterPressed, cancelButtonTooltipProps = _ref.cancelButtonTooltipProps, cancelButtonTooltipContent = _ref.cancelButtonTooltipContent, approveButtonTooltipProps = _ref.approveButtonTooltipProps, approveButtonTooltipContent = _ref.approveButtonTooltipContent, _ref$approveButtonDis = _ref.approveButtonDisabledOnEmpty, approveButtonDisabledOnEmpty = _ref$approveButtonDis === void 0 ? true : _ref$approveButtonDis, _ref$onApprove = _ref.onApprove, onApprove = _ref$onApprove === void 0 ? () => {} : _ref$onApprove, _ref$onCancel = _ref.onCancel, onCancel = _ref$onCancel === void 0 ? () => {} : _ref$onCancel, onChange = _ref.onChange, maxLength = _ref.maxLength; var icons = (0, _WixDesignSystemIconThemeProvider.useIcons)('ListItemEditable', { Check: _wixUiIconsCommon.Check, X: _wixUiIconsCommon.X }); var _useState = (0, _react.useState)(value || ''), _useState2 = (0, _slicedToArray2.default)(_useState, 2), inputValue = _useState2[0], setInputValue = _useState2[1]; 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: 58, columnNumber: 5 } }, /*#__PURE__*/_react.default.createElement(_Box.default, { marginRight: 3, flex: 1, minWidth: 0, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 63, 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, maxLength: maxLength, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 64, columnNumber: 9 } })), /*#__PURE__*/_react.default.createElement(_Box.default, { marginRight: 2, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 79, 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: 80, 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: 86, columnNumber: 11 } }, /*#__PURE__*/_react.default.createElement(icons.X, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 92, 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: 96, 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: 102, columnNumber: 9 } }, /*#__PURE__*/_react.default.createElement(icons.Check, { __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 108, columnNumber: 11 } })))); }; exports.ListItemEditable = ListItemEditable; ListItemEditable.displayName = 'ListItemEditable'; var listItemEditableBuilder = _ref2 => { var id = _ref2.id, dataHook = _ref2.dataHook, className = _ref2.className, size = _ref2.size, placeholder = _ref2.placeholder, onApprove = _ref2.onApprove, onCancel = _ref2.onCancel, onChange = _ref2.onChange, cancelButtonTooltipContent = _ref2.cancelButtonTooltipContent, cancelButtonTooltipProps = _ref2.cancelButtonTooltipProps, approveButtonTooltipContent = _ref2.approveButtonTooltipContent, approveButtonTooltipProps = _ref2.approveButtonTooltipProps, approveButtonDisabledOnEmpty = _ref2.approveButtonDisabledOnEmpty, status = _ref2.status, statusMessage = _ref2.statusMessage, margins = _ref2.margins, suffix = _ref2.suffix, autoFocus = _ref2.autoFocus, onEnterPressed = _ref2.onEnterPressed, maxLength = _ref2.maxLength; 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, maxLength: maxLength, __self: void 0, __source: { fileName: _jsxFileName, lineNumber: 145, columnNumber: 5 } })) }; }; exports.listItemEditableBuilder = listItemEditableBuilder; //# sourceMappingURL=ListItemEditable.js.map