@popmenu/ordering-ui 0.84.0 → 0.84.2

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
@@ -1340,11 +1340,14 @@ var OrderingAppContextProvider = function (props) {
1340
1340
 
1341
1341
  var DishCheckoutCard = function (props) {
1342
1342
  var _a;
1343
- var id = props.id, name = props.name, quantity = props.quantity, modifiers = props.modifiers, onDelete = props.onDelete, onEdit = props.onEdit, onChange = props.onChange, price = props.price, specialInstructions = props.specialInstructions, disabled = props.disabled;
1343
+ var id = props.id, name = props.name, quantity = props.quantity, modifiers = props.modifiers, onDelete = props.onDelete, onEdit = props.onEdit, onQuantityChange = props.onQuantityChange, price = props.price, specialInstructions = props.specialInstructions, disabled = props.disabled;
1344
1344
  var classes = useDishCheckoutCardStyles(props);
1345
1345
  var appContext = useOrderingAppContext()[0];
1346
1346
  var _b = React.useState(false), open = _b[0], setOpen = _b[1];
1347
1347
  var formattedPrice = typeof price === 'number' ? "" + ((_a = appContext.currencySymbol) !== null && _a !== void 0 ? _a : '') + price.toFixed(2) : price;
1348
+ var handleQuantityChange = function (event) {
1349
+ return onQuantityChange(id, parseInt(event.target.value, 10));
1350
+ };
1348
1351
  return (React__default['default'].createElement(core.Box, { className: classes.root },
1349
1352
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", gridGap: 3 },
1350
1353
  React__default['default'].createElement(core.Box, null,
@@ -1364,7 +1367,7 @@ var DishCheckoutCard = function (props) {
1364
1367
  React__default['default'].createElement(Icon, { icon: SvgTrash, size: "large" })))),
1365
1368
  React__default['default'].createElement(core.Box, { display: "flex", gridGap: 16, alignItems: "center" },
1366
1369
  React__default['default'].createElement(core.FormControl, { variant: "outlined", hiddenLabel: true },
1367
- React__default['default'].createElement(core.Select, { disabled: disabled, open: open, value: quantity, labelId: "select-label-" + id, onClick: function () { return setOpen(!open); }, disableUnderline: true, onChange: function (event) { return onChange(id, event.target.value); }, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
1370
+ React__default['default'].createElement(core.Select, { disabled: disabled, open: open, value: quantity, labelId: "select-label-" + id, onClick: function () { return setOpen(!open); }, disableUnderline: true, onChange: handleQuantityChange, fullWidth: true, startAdornment: React__default['default'].createElement(core.InputAdornment, { position: "start" },
1368
1371
  React__default['default'].createElement(Icon, { icon: open ? SvgChevronUp : SvgChevronDown, size: "large" })), inputProps: { shrink: false }, MenuProps: {
1369
1372
  disablePortal: true,
1370
1373
  anchorOrigin: {
@@ -1419,14 +1422,6 @@ var useDishModifierCardStyles = styles.makeStyles(function (theme) { return ({
1419
1422
  },
1420
1423
  }); });
1421
1424
  var useRadioModifierFormStyles = styles.makeStyles(function (theme) { return ({
1422
- root: {
1423
- '& .MuiFormControlLabel-label': {
1424
- margin: theme.spacing(0.5, 0),
1425
- '& div p:nth-child(2)': {
1426
- color: theme.palette.grey[700],
1427
- },
1428
- },
1429
- },
1430
1425
  radio: {
1431
1426
  fontSize: theme.spacing(2),
1432
1427
  padding: 'unset',
@@ -1437,14 +1432,6 @@ var useRadioModifierFormStyles = styles.makeStyles(function (theme) { return ({
1437
1432
  },
1438
1433
  }); });
1439
1434
  var useCheckboxModifierFormStyles = styles.makeStyles(function (theme) { return ({
1440
- root: {
1441
- '& .MuiFormControlLabel-label': {
1442
- margin: theme.spacing(0.5, 0),
1443
- },
1444
- '&:not(.Mui-disabled) div p:nth-child(2)': {
1445
- color: theme.palette.grey[700],
1446
- },
1447
- },
1448
1435
  radio: {
1449
1436
  color: '#616161',
1450
1437
  fontSize: theme.spacing(2),
@@ -1454,6 +1441,14 @@ var useCheckboxModifierFormStyles = styles.makeStyles(function (theme) { return
1454
1441
  color: theme.palette.info.main,
1455
1442
  },
1456
1443
  },
1444
+ }); });
1445
+ var useLabelStyles = styles.makeStyles(function (theme) { return ({
1446
+ label: {
1447
+ margin: theme.spacing(0.5, 0),
1448
+ },
1449
+ price: {
1450
+ color: theme.palette.grey[700],
1451
+ },
1457
1452
  }); });
1458
1453
 
1459
1454
  var useStatusTagStyles = styles.makeStyles(function (theme) { return ({
@@ -1558,15 +1553,16 @@ StatusTag.defaultProps = {
1558
1553
  StatusTag.displayName = 'StatusTag';
1559
1554
 
1560
1555
  var Label = function (props) {
1561
- var name = props.name, price = props.price;
1562
- return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column" },
1556
+ var name = props.name, price = props.price, disabled = props.disabled;
1557
+ var classes = useLabelStyles();
1558
+ return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column", className: classes.label },
1563
1559
  React__default['default'].createElement(core.Typography, null, name),
1564
- price && React__default['default'].createElement(core.Typography, null,
1560
+ price && React__default['default'].createElement(core.Typography, { className: !disabled ? classes.price : '' },
1565
1561
  "+ ",
1566
1562
  price)));
1567
1563
  };
1568
1564
  var CheckboxGroup = function (props) {
1569
- var value = props.value, modifiers = props.modifiers, onChange = props.onChange, disableNewSelections = props.disableNewSelections;
1565
+ var value = props.value, modifiers = props.modifiers, onChange = props.onChange, disableNewSelections = props.disableNewSelections, isOutOfStock = props.isOutOfStock;
1570
1566
  var classes = useCheckboxModifierFormStyles();
1571
1567
  var appContext = useOrderingAppContext()[0];
1572
1568
  var handleChange = function (event) {
@@ -1582,13 +1578,13 @@ var CheckboxGroup = function (props) {
1582
1578
  };
1583
1579
  return (React__default['default'].createElement(core.Box, { display: "flex", flexDirection: "column" }, modifiers.map(function (modifier, index) {
1584
1580
  var targetValue = value === null || value === void 0 ? void 0 : value.find(function (v) { return v.id == modifier.id; });
1585
- 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
1581
+ 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) || isOutOfStock }), label: React__default['default'].createElement(Label, { name: modifier.name, price: modifier.price
1586
1582
  ? "" + (appContext && appContext.currencySymbol) + Number(modifier.price).toFixed(2)
1587
- : null }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1583
+ : null, disabled: isOutOfStock }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1588
1584
  })));
1589
1585
  };
1590
1586
  var RadioGroup = function (props) {
1591
- var value = props.value, modifiers = props.modifiers, onChange = props.onChange;
1587
+ var value = props.value, modifiers = props.modifiers, onChange = props.onChange, isOutOfStock = props.isOutOfStock;
1592
1588
  var classes = useRadioModifierFormStyles();
1593
1589
  var appContext = useOrderingAppContext()[0];
1594
1590
  var handleChange = function (event) {
@@ -1602,16 +1598,16 @@ var RadioGroup = function (props) {
1602
1598
  },
1603
1599
  ]);
1604
1600
  };
1605
- 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 ? "" + (appContext && appContext.currencySymbol) + Number(modifier.price).toFixed(2) : null }), className: classes.root })); })));
1601
+ 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, disabled: isOutOfStock }), label: React__default['default'].createElement(Label, { name: modifier.name, price: modifier.price ? "" + (appContext && appContext.currencySymbol) + Number(modifier.price).toFixed(2) : null, disabled: isOutOfStock }) })); })));
1606
1602
  };
1607
1603
 
1608
1604
  var ModifierOptionsControl = function (props) {
1609
- var type = props.type, modifiers = props.modifiers, value = props.value, onChange = props.onChange, disableNewSelections = props.disableNewSelections;
1605
+ var type = props.type, modifiers = props.modifiers, value = props.value, onChange = props.onChange, disableNewSelections = props.disableNewSelections, isOutOfStock = props.isOutOfStock;
1610
1606
  switch (type) {
1611
1607
  case 'singleSelect':
1612
- return React__default['default'].createElement(RadioGroup, { modifiers: modifiers, value: value, onChange: onChange });
1608
+ return React__default['default'].createElement(RadioGroup, { modifiers: modifiers, value: value, onChange: onChange, isOutOfStock: isOutOfStock });
1613
1609
  case 'multipleSelect':
1614
- return (React__default['default'].createElement(CheckboxGroup, { modifiers: modifiers, value: value, onChange: onChange, disableNewSelections: disableNewSelections }));
1610
+ return (React__default['default'].createElement(CheckboxGroup, { modifiers: modifiers, value: value, onChange: onChange, disableNewSelections: disableNewSelections, isOutOfStock: isOutOfStock }));
1615
1611
  default:
1616
1612
  return null;
1617
1613
  }
@@ -1630,10 +1626,12 @@ var DishModifierCard = function (props) {
1630
1626
  }
1631
1627
  var label = optionalText;
1632
1628
  switch (true) {
1633
- case isRequired:
1634
- label = requiredText;
1635
1629
  case isOutOfStock:
1636
1630
  label = outOfStockText;
1631
+ break;
1632
+ case isRequired:
1633
+ label = requiredText;
1634
+ break;
1637
1635
  }
1638
1636
  return (React__default['default'].createElement(core.Box, { className: classes.root },
1639
1637
  React__default['default'].createElement(core.Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content" },
@@ -1644,7 +1642,7 @@ var DishModifierCard = function (props) {
1644
1642
  React__default['default'].createElement(Typography, { variant: "subtitle1", className: error ? classes.error : undefined }, helperText)),
1645
1643
  React__default['default'].createElement(core.Box, null,
1646
1644
  React__default['default'].createElement(core.FormControl, null,
1647
- React__default['default'].createElement(ModifierOptionsControl, { type: type, modifiers: modifiers, value: value, onChange: onChange, disableNewSelections: disableNewSelections })))));
1645
+ React__default['default'].createElement(ModifierOptionsControl, { type: type, modifiers: modifiers, value: value, onChange: onChange, disableNewSelections: disableNewSelections, isOutOfStock: isOutOfStock })))));
1648
1646
  };
1649
1647
  DishModifierCard.displayName = 'DishModifierCard';
1650
1648