merchi_product_form
Version:
A React component for Merchi product forms
79 lines • 12.8 kB
JavaScript
import * as React from 'react';
import { isProductSupplierMOD } from './utils';
import { ButtonAddGroup, ButtonRemoveGroup } from './buttons';
import { LabelGroupCost } from './cost';
import GroupInventory from './GroupInventory';
import InputGroupQuantity from './InputGroupQuantity';
import InputHiddenStatic from './InputHiddenStatic';
import Variations from './Variations';
import { useFieldArray } from 'react-hook-form';
import { useMerchiFormContext } from '../context/MerchiProductFormProvider';
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
function VariationsGroups(_ref) {
var disabled = _ref.disabled,
_ref$name = _ref.name,
name = _ref$name === void 0 ? 'variationsGroups' : _ref$name,
renderBetweenGroups = _ref.renderBetweenGroups;
var _useMerchiFormContext = useMerchiFormContext(),
classNameGroupsContainer = _useMerchiFormContext.classNameGroupsContainer,
control = _useMerchiFormContext.control,
hideQuantityField = _useMerchiFormContext.hideQuantityField,
hideCalculatedPrice = _useMerchiFormContext.hideCalculatedPrice,
job = _useMerchiFormContext.job,
product = _useMerchiFormContext.product;
var _useFieldArray = useFieldArray({
control: control,
keyName: 'groupId',
name: name
}),
append = _useFieldArray.append,
fields = _useFieldArray.fields,
_remove = _useFieldArray.remove;
var isResellMOD = isProductSupplierMOD(product);
var groupCount = fields.length;
return /*#__PURE__*/_jsx(_Fragment, {
children: fields.map(function (group, index) {
var count = index + 1;
var variationGroup = job.variationsGroups[index];
return /*#__PURE__*/_jsxs(React.Fragment, {
children: [/*#__PURE__*/_jsxs("fieldset", {
className: classNameGroupsContainer,
name: "".concat(name, "[").concat(index, "]"),
children: [isResellMOD || hideQuantityField ? /*#__PURE__*/_jsx(InputHiddenStatic, {
name: "".concat(name, "[").concat(index, "].quantity"),
value: 1
}) : /*#__PURE__*/_jsx(InputGroupQuantity, {
count: count,
disabled: disabled,
name: "".concat(name, "[").concat(index, "].quantity")
}), /*#__PURE__*/_jsx(Variations, {
containerClass: "merchi-embed-form_product-group-variation-container",
disabled: disabled,
name: "".concat(name, "[").concat(index, "].variations")
}), product.needsInventory && variationGroup && /*#__PURE__*/_jsx(GroupInventory, {
group: job.variationsGroups[index]
}), /*#__PURE__*/_jsxs("div", {
className: "merchi-embed-form_product-group-actions-cost-container",
children: [!hideCalculatedPrice && variationGroup && /*#__PURE__*/_jsx(LabelGroupCost, {
group: variationGroup
}), /*#__PURE__*/_jsx("div", {
className: "merchi-embed-form_product-group-actions-container",
children: groupCount > 1 && /*#__PURE__*/_jsx(ButtonRemoveGroup, {
count: count,
disabled: disabled,
remove: function remove() {
return _remove(index);
}
})
})]
}), groupCount === count && /*#__PURE__*/_jsx(ButtonAddGroup, {
addGroup: append,
disabled: disabled
})]
}), renderBetweenGroups && renderBetweenGroups(index)]
}, group.groupId);
})
});
}
export default VariationsGroups;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsImlzUHJvZHVjdFN1cHBsaWVyTU9EIiwiQnV0dG9uQWRkR3JvdXAiLCJCdXR0b25SZW1vdmVHcm91cCIsIkxhYmVsR3JvdXBDb3N0IiwiR3JvdXBJbnZlbnRvcnkiLCJJbnB1dEdyb3VwUXVhbnRpdHkiLCJJbnB1dEhpZGRlblN0YXRpYyIsIlZhcmlhdGlvbnMiLCJ1c2VGaWVsZEFycmF5IiwidXNlTWVyY2hpRm9ybUNvbnRleHQiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJWYXJpYXRpb25zR3JvdXBzIiwiX3JlZiIsImRpc2FibGVkIiwiX3JlZiRuYW1lIiwibmFtZSIsInJlbmRlckJldHdlZW5Hcm91cHMiLCJfdXNlTWVyY2hpRm9ybUNvbnRleHQiLCJjbGFzc05hbWVHcm91cHNDb250YWluZXIiLCJjb250cm9sIiwiaGlkZVF1YW50aXR5RmllbGQiLCJoaWRlQ2FsY3VsYXRlZFByaWNlIiwiam9iIiwicHJvZHVjdCIsIl91c2VGaWVsZEFycmF5Iiwia2V5TmFtZSIsImFwcGVuZCIsImZpZWxkcyIsInJlbW92ZSIsImlzUmVzZWxsTU9EIiwiZ3JvdXBDb3VudCIsImxlbmd0aCIsImNoaWxkcmVuIiwibWFwIiwiZ3JvdXAiLCJpbmRleCIsImNvdW50IiwidmFyaWF0aW9uR3JvdXAiLCJ2YXJpYXRpb25zR3JvdXBzIiwiY2xhc3NOYW1lIiwiY29uY2F0IiwidmFsdWUiLCJjb250YWluZXJDbGFzcyIsIm5lZWRzSW52ZW50b3J5IiwiYWRkR3JvdXAiLCJncm91cElkIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbXBvbmVudHMvVmFyaWF0aW9uc0dyb3Vwcy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xyXG5pbXBvcnQgeyBpc1Byb2R1Y3RTdXBwbGllck1PRCB9IGZyb20gJy4vdXRpbHMnO1xyXG5pbXBvcnQgeyBCdXR0b25BZGRHcm91cCwgQnV0dG9uUmVtb3ZlR3JvdXAgfSBmcm9tICcuL2J1dHRvbnMnO1xyXG5pbXBvcnQgeyBMYWJlbEdyb3VwQ29zdCB9IGZyb20gJy4vY29zdCc7XHJcbmltcG9ydCBHcm91cEludmVudG9yeSBmcm9tICcuL0dyb3VwSW52ZW50b3J5JztcclxuaW1wb3J0IElucHV0R3JvdXBRdWFudGl0eSBmcm9tICcuL0lucHV0R3JvdXBRdWFudGl0eSc7XHJcbmltcG9ydCBJbnB1dEhpZGRlblN0YXRpYyBmcm9tICcuL0lucHV0SGlkZGVuU3RhdGljJztcclxuaW1wb3J0IFZhcmlhdGlvbnMgZnJvbSAnLi9WYXJpYXRpb25zJztcclxuaW1wb3J0IHsgdXNlRmllbGRBcnJheSB9IGZyb20gJ3JlYWN0LWhvb2stZm9ybSc7XHJcbmltcG9ydCB7IHVzZU1lcmNoaUZvcm1Db250ZXh0IH0gZnJvbSAnLi4vY29udGV4dC9NZXJjaGlQcm9kdWN0Rm9ybVByb3ZpZGVyJztcclxuXHJcbmludGVyZmFjZSBQcm9wcyB7XHJcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xyXG4gIG5hbWU/OiBzdHJpbmc7XHJcbiAgcmVuZGVyQmV0d2Vlbkdyb3Vwcz86IChpbmRleDogbnVtYmVyKSA9PiBSZWFjdC5SZWFjdE5vZGU7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIFZhcmlhdGlvbnNHcm91cHMoeyBkaXNhYmxlZCwgbmFtZSA9ICd2YXJpYXRpb25zR3JvdXBzJywgcmVuZGVyQmV0d2Vlbkdyb3VwcyB9OiBQcm9wcykge1xyXG4gIGNvbnN0IHtcclxuICAgIGNsYXNzTmFtZUdyb3Vwc0NvbnRhaW5lcixcclxuICAgIGNvbnRyb2wsXHJcbiAgICBoaWRlUXVhbnRpdHlGaWVsZCxcclxuICAgIGhpZGVDYWxjdWxhdGVkUHJpY2UsXHJcbiAgICBqb2IsXHJcbiAgICBwcm9kdWN0LFxyXG4gIH0gPSB1c2VNZXJjaGlGb3JtQ29udGV4dCgpO1xyXG4gIGNvbnN0IHsgYXBwZW5kLCBmaWVsZHMsIHJlbW92ZSB9ID0gdXNlRmllbGRBcnJheSh7XHJcbiAgICBjb250cm9sLFxyXG4gICAga2V5TmFtZTogJ2dyb3VwSWQnLFxyXG4gICAgbmFtZSxcclxuICB9KTtcclxuICBjb25zdCBpc1Jlc2VsbE1PRCA9IGlzUHJvZHVjdFN1cHBsaWVyTU9EKHByb2R1Y3QpO1xyXG4gIGNvbnN0IGdyb3VwQ291bnQgPSBmaWVsZHMubGVuZ3RoO1xyXG4gIHJldHVybiAoXHJcbiAgICA8PlxyXG4gICAgICB7ZmllbGRzLm1hcCgoZ3JvdXA6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgIGNvbnN0IGNvdW50ID0gaW5kZXggKyAxO1xyXG4gICAgICAgIGNvbnN0IHZhcmlhdGlvbkdyb3VwID0gam9iLnZhcmlhdGlvbnNHcm91cHNbaW5kZXhdO1xyXG4gICAgICAgIHJldHVybiAoXHJcbiAgICAgICAgICA8UmVhY3QuRnJhZ21lbnQga2V5PXtncm91cC5ncm91cElkfT5cclxuICAgICAgICAgICAgPGZpZWxkc2V0XHJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVHcm91cHNDb250YWluZXJ9XHJcbiAgICAgICAgICAgICAgbmFtZT17YCR7bmFtZX1bJHtpbmRleH1dYH1cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIHtpc1Jlc2VsbE1PRCB8fCBoaWRlUXVhbnRpdHlGaWVsZCA/IChcclxuICAgICAgICAgICAgICAgIDxJbnB1dEhpZGRlblN0YXRpY1xyXG4gICAgICAgICAgICAgICAgICBuYW1lPXtgJHtuYW1lfVske2luZGV4fV0ucXVhbnRpdHlgfVxyXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17MX1cclxuICAgICAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgICAgKSA6IChcclxuICAgICAgICAgICAgICAgIDxJbnB1dEdyb3VwUXVhbnRpdHlcclxuICAgICAgICAgICAgICAgICAgY291bnQ9e2NvdW50fVxyXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgICAgICAgICAgIG5hbWU9e2Ake25hbWV9WyR7aW5kZXh9XS5xdWFudGl0eWB9XHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgPFZhcmlhdGlvbnNcclxuICAgICAgICAgICAgICAgIGNvbnRhaW5lckNsYXNzPSdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLXZhcmlhdGlvbi1jb250YWluZXInXHJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgICAgICAgICBuYW1lPXtgJHtuYW1lfVske2luZGV4fV0udmFyaWF0aW9uc2B9XHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICB7cHJvZHVjdC5uZWVkc0ludmVudG9yeSAmJiB2YXJpYXRpb25Hcm91cCAmJiAoXHJcbiAgICAgICAgICAgICAgICA8R3JvdXBJbnZlbnRvcnkgZ3JvdXA9e2pvYi52YXJpYXRpb25zR3JvdXBzW2luZGV4XX0gLz5cclxuICAgICAgICAgICAgICApfVxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPSdtZXJjaGktZW1iZWQtZm9ybV9wcm9kdWN0LWdyb3VwLWFjdGlvbnMtY29zdC1jb250YWluZXInPlxyXG4gICAgICAgICAgICAgICAgeyFoaWRlQ2FsY3VsYXRlZFByaWNlICYmIHZhcmlhdGlvbkdyb3VwICYmIChcclxuICAgICAgICAgICAgICAgICAgPExhYmVsR3JvdXBDb3N0IGdyb3VwPXt2YXJpYXRpb25Hcm91cH0gLz5cclxuICAgICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT0nbWVyY2hpLWVtYmVkLWZvcm1fcHJvZHVjdC1ncm91cC1hY3Rpb25zLWNvbnRhaW5lcic+XHJcbiAgICAgICAgICAgICAgICAgIHtncm91cENvdW50ID4gMSAmJiAoXHJcbiAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblJlbW92ZUdyb3VwXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb3VudD17Y291bnR9XHJcbiAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XHJcbiAgICAgICAgICAgICAgICAgICAgICByZW1vdmU9eygpID0+IHJlbW92ZShpbmRleCl9XHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgKX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIHtncm91cENvdW50ID09PSBjb3VudCAmJiAoXHJcbiAgICAgICAgICAgICAgICA8QnV0dG9uQWRkR3JvdXAgYWRkR3JvdXA9e2FwcGVuZH0gZGlzYWJsZWQ9e2Rpc2FibGVkfSAvPlxyXG4gICAgICAgICAgICAgICl9XHJcbiAgICAgICAgICAgIDwvZmllbGRzZXQ+XHJcbiAgICAgICAgICAgIHtyZW5kZXJCZXR3ZWVuR3JvdXBzICYmIHJlbmRlckJldHdlZW5Hcm91cHMoaW5kZXgpfVxyXG4gICAgICAgICAgPC9SZWFjdC5GcmFnbWVudD5cclxuICAgICAgICApO1xyXG4gICAgICB9KX1cclxuICAgIDwvPlxyXG4gICk7XHJcbn1cclxuXHJcbmV4cG9ydCBkZWZhdWx0IFZhcmlhdGlvbnNHcm91cHM7XHJcbiJdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLQSxLQUFLLE1BQU0sT0FBTztBQUM5QixTQUFTQyxvQkFBb0IsUUFBUSxTQUFTO0FBQzlDLFNBQVNDLGNBQWMsRUFBRUMsaUJBQWlCLFFBQVEsV0FBVztBQUM3RCxTQUFTQyxjQUFjLFFBQVEsUUFBUTtBQUN2QyxPQUFPQyxjQUFjLE1BQU0sa0JBQWtCO0FBQzdDLE9BQU9DLGtCQUFrQixNQUFNLHNCQUFzQjtBQUNyRCxPQUFPQyxpQkFBaUIsTUFBTSxxQkFBcUI7QUFDbkQsT0FBT0MsVUFBVSxNQUFNLGNBQWM7QUFDckMsU0FBU0MsYUFBYSxRQUFRLGlCQUFpQjtBQUMvQyxTQUFTQyxvQkFBb0IsUUFBUSxzQ0FB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