@popmenu/ordering-ui 0.113.6 → 0.115.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/index.js CHANGED
@@ -1781,6 +1781,8 @@ var useLabelStyles = styles.makeStyles(function (theme) { return ({
1781
1781
  var useOptionsStyles = styles.makeStyles(function (theme) { return ({
1782
1782
  options: {
1783
1783
  color: theme.palette.info.main,
1784
+ marginBottom: theme.spacing(1.5),
1785
+ padding: 0,
1784
1786
  },
1785
1787
  }); });
1786
1788
 
@@ -1868,17 +1870,21 @@ var Label = function (props) {
1868
1870
  price))));
1869
1871
  };
1870
1872
  var Options = function (props) {
1871
- var handleOptionsClick = props.handleOptionsClick, modifierId = props.modifierId;
1873
+ var handleOptionsClick = props.handleOptionsClick;
1872
1874
  var classes = useOptionsStyles();
1873
- return (React__default['default'].createElement(core.Box, { marginLeft: 3 },
1874
- React__default['default'].createElement(Button, { variation: "none", className: classes.options, onClick: function () { return handleOptionsClick(modifierId); } },
1875
+ return (React__default['default'].createElement(core.Box, null,
1876
+ React__default['default'].createElement(Button, { variation: "none", className: classes.options, onClick: handleOptionsClick },
1875
1877
  React__default['default'].createElement(core.Typography, { variant: "caption" }, "OPTIONS"),
1876
1878
  React__default['default'].createElement(Icon, { icon: SvgChevronRight }))));
1877
1879
  };
1878
1880
  var SingleSelectModifierControl = function (props) {
1879
- var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick;
1881
+ var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
1880
1882
  var radioClasses = useRadioModifierFormStyles();
1881
1883
  var makeHandleChange = function (modifier) { return function (e) {
1884
+ var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
1885
+ if (!isModifierInValue && modifier.hasModifiers) {
1886
+ handleOptionsClick(modifier.id);
1887
+ }
1882
1888
  onChange({
1883
1889
  isRadio: true,
1884
1890
  modifierId: Number(e.target.value),
@@ -1894,17 +1900,20 @@ var SingleSelectModifierControl = function (props) {
1894
1900
  var _c;
1895
1901
  return (React__default['default'].createElement(core.Box, { key: modifier.id },
1896
1902
  React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React__default['default'].createElement(core.Radio, { checked: ((_c = value[0]) === null || _c === void 0 ? void 0 : _c.modifierId) === modifier.id, className: classNames((_a = {}, _a[radioClasses.hideRadio] = modifier.outOfStock, _a), (_b = {}, _b[radioClasses.radio] = !modifier.outOfStock, _b)), disabled: isOutOfStock || modifier.outOfStock, onChange: makeHandleChange(modifier) }), label: React__default['default'].createElement(core.Box, { className: radioClasses.label },
1897
- React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1903
+ React__default['default'].createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1898
1904
  modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
1899
1905
  React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
1900
- modifier.hasModifiers && React__default['default'].createElement(Options, { handleOptionsClick: handleOptionsClick, modifierId: modifier.id })));
1906
+ modifier.hasModifiers && !modifier.outOfStock && (React__default['default'].createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
1901
1907
  }))));
1902
1908
  };
1903
1909
  var MultipleSelectControl = function (props) {
1904
- var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick;
1910
+ var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
1905
1911
  var classes = useCheckboxModifierFormStyles();
1906
1912
  var makeHandleChange = function (modifier) { return function () {
1907
1913
  var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
1914
+ if (!isModifierInValue && modifier.hasModifiers) {
1915
+ handleOptionsClick(modifier.id);
1916
+ }
1908
1917
  onChange({
1909
1918
  isRadio: false,
1910
1919
  modifierId: modifier.id,
@@ -1919,10 +1928,10 @@ var MultipleSelectControl = function (props) {
1919
1928
  var _a, _b;
1920
1929
  return (React__default['default'].createElement(core.Box, { key: modifier.id },
1921
1930
  React__default['default'].createElement(core.FormControlLabel, { key: modifier.id, value: modifier.id, className: classes.root, checked: value.some(function (v) { return v.modifierId === modifier.id; }), onChange: makeHandleChange(modifier), control: React__default['default'].createElement(core.Checkbox, { className: classNames((_a = {}, _a[classes.hideCheckbox] = modifier.outOfStock, _a), (_b = {}, _b[classes.checkbox] = !modifier.outOfStock, _b)), disabled: isOutOfStock || modifier.outOfStock || (!modifier.quantity && disableNewSelections) }), label: React__default['default'].createElement(core.Box, { className: classes.label },
1922
- React__default['default'].createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1931
+ React__default['default'].createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
1923
1932
  modifier.outOfStock && (React__default['default'].createElement(core.Box, { minWidth: "90px", marginLeft: 2 },
1924
1933
  React__default['default'].createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
1925
- modifier.hasModifiers && React__default['default'].createElement(Options, { handleOptionsClick: handleOptionsClick, modifierId: modifier.id })));
1934
+ modifier.hasModifiers && !modifier.outOfStock && (React__default['default'].createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
1926
1935
  }))));
1927
1936
  };
1928
1937
  var MultipleQuantitySelectControl = function (props) {
@@ -1981,7 +1990,7 @@ var getStatusTagProps = function (props) {
1981
1990
  return { color: color, label: label, variant: variant };
1982
1991
  };
1983
1992
  var DishModifierCard = function (props) {
1984
- var name = props.name, disableNewSelections = props.disableNewSelections, modifiers = props.modifiers, value = props.value, messages = props.messages, onChange = props.onChange, type = props.type, error = props.error, isOutOfStock = props.isOutOfStock, handleOptionsClick = props.handleOptionsClick;
1993
+ var aggregatePrice = props.aggregatePrice, name = props.name, disableNewSelections = props.disableNewSelections, modifiers = props.modifiers, value = props.value, messages = props.messages, onChange = props.onChange, type = props.type, error = props.error, isOutOfStock = props.isOutOfStock, handleOptionsClick = props.handleOptionsClick;
1985
1994
  var classes = useDishModifierCardStyles();
1986
1995
  return (React__default['default'].createElement(core.Box, { className: classes.root },
1987
1996
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
@@ -1989,7 +1998,7 @@ var DishModifierCard = function (props) {
1989
1998
  !isOutOfStock && (React__default['default'].createElement(Typography, { variant: "subtitle1", className: error ? classes.error : undefined }, messages.helperText))),
1990
1999
  React__default['default'].createElement(Typography, { className: classes.name }, name),
1991
2000
  React__default['default'].createElement(core.Box, null,
1992
- React__default['default'].createElement(ModifierControls, { value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick }))));
2001
+ React__default['default'].createElement(ModifierControls, { value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice }))));
1993
2002
  };
1994
2003
  DishModifierCard.displayName = 'DishModifierCard';
1995
2004