@wix/design-system
Version:
@wix/design-system
230 lines (229 loc) • 8.05 kB
JavaScript
"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