@popmenu/ordering-ui 0.80.0 → 0.82.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
@@ -1542,32 +1542,63 @@ StatusTag.defaultProps = {
1542
1542
  };
1543
1543
  StatusTag.displayName = 'StatusTag';
1544
1544
 
1545
+ var OrderingAppContext = React.createContext(null);
1546
+ var useOrderingAppContext = function () {
1547
+ var context = React.useContext(OrderingAppContext);
1548
+ if (!context) {
1549
+ throw new Error('useOrderingAppContext has to be used within <OrderingAppContext.Provider>');
1550
+ }
1551
+ return context;
1552
+ };
1553
+
1545
1554
  var Label = function (props) {
1546
1555
  var name = props.name, price = props.price;
1547
- return (React__namespace.createElement(core.Box, { display: "flex", flexDirection: "column" },
1548
- React__namespace.createElement(core.Typography, null, name),
1549
- price && React__namespace.createElement(core.Typography, null,
1556
+ return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column" },
1557
+ React__default['default'].createElement(core.Typography, null, name),
1558
+ price && React__default['default'].createElement(core.Typography, null,
1550
1559
  "+ ",
1551
1560
  price)));
1552
1561
  };
1553
1562
  var CheckboxGroup = function (props) {
1554
1563
  var value = props.value, modifiers = props.modifiers, onChange = props.onChange, disableNewSelections = props.disableNewSelections;
1555
1564
  var classes = useCheckboxModifierFormStyles();
1565
+ var orderingContext = useOrderingAppContext();
1556
1566
  var handleChange = function (event) {
1557
- onChange([{ id: parseInt(event.target.value), quantity: 1 }], event.target.checked);
1567
+ var _a;
1568
+ var price = (_a = modifiers.find(function (modifier) { return modifier.id === parseInt(event.target.value); })) === null || _a === void 0 ? void 0 : _a.price;
1569
+ onChange([
1570
+ {
1571
+ id: parseInt(event.target.value),
1572
+ price: (price && parseInt(price)) || 0,
1573
+ quantity: 1,
1574
+ },
1575
+ ], event.target.checked);
1558
1576
  };
1559
- return (React__namespace.createElement(core.Box, { display: "flex", flexDirection: "column" }, modifiers.map(function (modifier, index) {
1577
+ return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column" }, modifiers.map(function (modifier, index) {
1560
1578
  var targetValue = value === null || value === void 0 ? void 0 : value.find(function (v) { return v.id == modifier.id; });
1561
- return (React__namespace.createElement(core.FormControlLabel, { key: index, value: modifier.id, control: React__namespace.createElement(core.Checkbox, { className: classes.radio, disabled: !targetValue && disableNewSelections }), label: React__namespace.createElement(Label, { name: modifier.name, price: modifier.price }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1579
+ return (React__default['default'].createElement(core.FormControlLabel, { key: index, value: modifier.id, control: React__default['default'].createElement(core.Checkbox, { className: classes.radio, disabled: !targetValue && disableNewSelections }), label: React__default['default'].createElement(Label, { name: modifier.name, price: modifier.price
1580
+ ? "" + (orderingContext && orderingContext.currencySymbol) + Number(modifier.price).toFixed(2)
1581
+ : null }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1562
1582
  })));
1563
1583
  };
1564
1584
  var RadioGroup = function (props) {
1565
1585
  var value = props.value, modifiers = props.modifiers, onChange = props.onChange;
1566
1586
  var classes = useRadioModifierFormStyles();
1587
+ var orderingContext = useOrderingAppContext();
1567
1588
  var handleChange = function (event) {
1568
- onChange([{ id: parseInt(event.target.value), quantity: 1 }]);
1589
+ var _a;
1590
+ var price = (_a = modifiers.find(function (modifier) { return modifier.id === parseInt(event.target.value); })) === null || _a === void 0 ? void 0 : _a.price;
1591
+ onChange([
1592
+ {
1593
+ id: parseInt(event.target.value),
1594
+ price: (price && parseInt(price)) || 0,
1595
+ quantity: 1,
1596
+ },
1597
+ ]);
1569
1598
  };
1570
- return (React__namespace.createElement(MuiRadioGroup__default['default'], { name: "selectedModifiers", value: value ? value[0].id : '', onChange: handleChange }, modifiers.map(function (modifier, index) { return (React__namespace.createElement(core.FormControlLabel, { key: index, value: modifier.id, control: React__namespace.createElement(core.Radio, { className: classes.radio }), label: React__namespace.createElement(Label, { name: modifier.name, price: modifier.price }), className: classes.root })); })));
1599
+ return (React__default['default'].createElement(MuiRadioGroup__default['default'], { name: "selectedModifiers", value: value ? value[0].id : '', onChange: handleChange }, modifiers.map(function (modifier, index) { return (React__default['default'].createElement(core.FormControlLabel, { key: index, value: modifier.id, control: React__default['default'].createElement(core.Radio, { className: classes.radio }), label: React__default['default'].createElement(Label, { name: modifier.name, price: modifier.price
1600
+ ? "" + (orderingContext && orderingContext.currencySymbol) + Number(modifier.price).toFixed(2)
1601
+ : null }), className: classes.root })); })));
1571
1602
  };
1572
1603
 
1573
1604
  var ModifierOptionsControl = function (props) {
@@ -2111,6 +2142,7 @@ exports.MenuItem = MenuItem;
2111
2142
  exports.MenuItemGroup = MenuItemGroup;
2112
2143
  exports.MenuSection = MenuSection;
2113
2144
  exports.MenuSectionGroup = MenuSectionGroup;
2145
+ exports.OrderingAppContext = OrderingAppContext;
2114
2146
  exports.QuantityPicker = QuantityPicker;
2115
2147
  exports.ReactionCounter = ReactionCounter;
2116
2148
  exports.ReactionCounterGroup = ReactionCounterGroup;
@@ -2119,6 +2151,7 @@ exports.SelectableChipGroup = SelectableChipGroup;
2119
2151
  exports.SelectedMenuFiltersList = SelectedMenuFiltersList;
2120
2152
  exports.StatusTag = StatusTag;
2121
2153
  exports.orderingTheme = orderingTheme;
2154
+ exports.useOrderingAppContext = useOrderingAppContext;
2122
2155
  Object.keys(core).forEach(function (k) {
2123
2156
  if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
2124
2157
  enumerable: true,