@sberdevices/plasma-temple
Version:
SberDevices CanvasApp Templates.
110 lines (94 loc) • 4.35 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.CartItemQuantityButton = CartItemQuantityButton;
var _react = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("react"));
var _styledComponents = /*#__PURE__*/_interopRequireDefault( /*#__PURE__*/require("styled-components"));
var _plasmaIcons = /*#__PURE__*/require("@sberdevices/plasma-icons");
var _plasmaUi = /*#__PURE__*/require("@sberdevices/plasma-ui");
var _plasmaTokens = /*#__PURE__*/require("@sberdevices/plasma-tokens");
var _hooks = /*#__PURE__*/require("../../../hooks");
var _useThrottledCallback = /*#__PURE__*/require("../../../hooks/useThrottledCallback");
var _utils = /*#__PURE__*/require("../../../utils");
var _CartItemPresent = /*#__PURE__*/require("../CartItemPresent/CartItemPresent");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
var throttleWait = /*#__PURE__*/(0, _utils.isSberBoxLike)() ? _useThrottledCallback.THROTTLE_WAIT : 0;
var StyledStepperValue = /*#__PURE__*/(0, _styledComponents["default"])(_plasmaUi.StepperValue).withConfig({
componentId: "plasma-temple__sc-yxcy0k-0"
})(["margin-left:0.375rem;margin-right:0.375rem;color:", ";"], function (_ref) {
var isWarning = _ref.isWarning;
return isWarning ? _plasmaTokens.warning : _plasmaTokens.primary;
});
var StyledStepperButton = /*#__PURE__*/(0, _styledComponents["default"])(_plasmaUi.ActionButton).attrs({
'data-focusable': true,
tabIndex: 0,
view: 'secondary',
pin: 'circle-circle'
}).withConfig({
componentId: "plasma-temple__sc-yxcy0k-1"
})([""]);
function CartItemQuantityButton(_ref2) {
var item = _ref2.item,
className = _ref2.className,
plusDisabled = _ref2.plusDisabled,
onPlus = _ref2.onPlus,
onMinus = _ref2.onMinus,
onRemove = _ref2.onRemove;
var quantity = item.quantity,
quantityLimit = item.quantityLimit,
present = item.present,
disabled = item.disabled;
var getItem = (0, _hooks.useGetMutableValue)(item);
var handlePlus = (0, _useThrottledCallback.useThrottledCallback)(function (event) {
event.stopPropagation();
onPlus(getItem());
}, [getItem, onPlus], throttleWait);
var isMin = quantity <= 0;
var handleMinus = (0, _useThrottledCallback.useThrottledCallback)(function (event) {
event.stopPropagation();
onMinus(getItem());
}, [getItem, onMinus], throttleWait);
var handleRemove = (0, _useThrottledCallback.useThrottledCallback)(function (event) {
event.stopPropagation();
onRemove === null || onRemove === void 0 ? void 0 : onRemove(getItem());
}, [getItem, onRemove], throttleWait);
if (present) {
return /*#__PURE__*/_react["default"].createElement(_CartItemPresent.CartItemPresent, null);
}
if (disabled && onRemove) {
return /*#__PURE__*/_react["default"].createElement(StyledStepperButton, {
onClick: handleRemove,
"data-cy": "QuantityButton-remove",
"data-name": "cart-item-quantity-button-remove"
}, /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconClose, {
color: "inherit",
size: "xs"
}));
}
return /*#__PURE__*/_react["default"].createElement(_plasmaUi.StepperRoot, {
className: className
}, /*#__PURE__*/_react["default"].createElement(StyledStepperButton, {
onClick: isMin && onRemove ? handleRemove : handleMinus,
"data-cy": "QuantityButton-minus",
"data-name": "cart-item-quantity-button-minus"
}, isMin ? /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconClose, {
color: "inherit",
size: "xs"
}) : /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconMinus, {
color: "inherit",
size: "xs"
})), /*#__PURE__*/_react["default"].createElement(StyledStepperValue, {
value: quantity,
isWarning: Boolean(item.quantityLimit && item.quantity > item.quantityLimit)
}), /*#__PURE__*/_react["default"].createElement(StyledStepperButton, {
disabled: plusDisabled || disabled || Boolean(quantityLimit && quantity >= quantityLimit),
onClick: handlePlus,
"data-cy": "QuantityButton-plus",
"data-name": "cart-item-quantity-button-plus"
}, /*#__PURE__*/_react["default"].createElement(_plasmaIcons.IconPlus, {
color: "inherit",
size: "xs"
})));
}
//# sourceMappingURL=CartItemQuantityButton.js.map