@popmenu/ordering-ui 0.119.0 → 0.120.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
|
@@ -1629,6 +1629,10 @@ var useDishCheckoutCardStyles = styles.makeStyles(function (theme) { return ({
|
|
|
1629
1629
|
selectPaper: {
|
|
1630
1630
|
maxHeight: theme.spacing(37),
|
|
1631
1631
|
},
|
|
1632
|
+
ul: {
|
|
1633
|
+
margin: 0,
|
|
1634
|
+
paddingLeft: theme.spacing(3),
|
|
1635
|
+
},
|
|
1632
1636
|
warning: {
|
|
1633
1637
|
color: theme.palette.error.main,
|
|
1634
1638
|
display: 'flex',
|
|
@@ -1651,7 +1655,7 @@ var OrderingAppContextProvider = function (props) {
|
|
|
1651
1655
|
|
|
1652
1656
|
var DishCheckoutCard = function (props) {
|
|
1653
1657
|
var _a;
|
|
1654
|
-
var id = props.id, name = props.name, quantity = props.quantity,
|
|
1658
|
+
var id = props.id, name = props.name, quantity = props.quantity, modifierGroups = props.modifierGroups, onDelete = props.onDelete, onEdit = props.onEdit, onQuantityChange = props.onQuantityChange, price = props.price, specialInstructions = props.specialInstructions, disabled = props.disabled, warningMessage = props.warningMessage, _b = props.image, image = _b === void 0 ? {} : _b;
|
|
1655
1659
|
var src = image.src, alt = image.alt;
|
|
1656
1660
|
var classes = useDishCheckoutCardStyles(props);
|
|
1657
1661
|
var appContext = useOrderingAppContext()[0];
|
|
@@ -1663,16 +1667,41 @@ var DishCheckoutCard = function (props) {
|
|
|
1663
1667
|
var labelString = function (label) {
|
|
1664
1668
|
return label.replace(/[^a-zA-Z\s]/g, '').toLowerCase();
|
|
1665
1669
|
};
|
|
1670
|
+
var formatModifiers = function (groups, nested) {
|
|
1671
|
+
if (nested === void 0) { nested = false; }
|
|
1672
|
+
return groups.map(function (group) {
|
|
1673
|
+
// Get all selected modifiers for this group
|
|
1674
|
+
var modifiers = group.selectedModifiers.map(function (modifier) { return modifier.modifierName; }).join(', ');
|
|
1675
|
+
// Render nested groups recursively
|
|
1676
|
+
var nestedGroups = group.selectedModifiers.flatMap(function (modifier) {
|
|
1677
|
+
var _a;
|
|
1678
|
+
return (modifier === null || modifier === void 0 ? void 0 : modifier.selectedModifierGroups) && ((_a = modifier === null || modifier === void 0 ? void 0 : modifier.selectedModifierGroups) === null || _a === void 0 ? void 0 : _a.length) > 0
|
|
1679
|
+
? formatModifiers(modifier.selectedModifierGroups, true)
|
|
1680
|
+
: [];
|
|
1681
|
+
});
|
|
1682
|
+
// For top-level groups, we render without the list
|
|
1683
|
+
if (!nested) {
|
|
1684
|
+
return (React__default['default'].createElement(Typography, { key: group.id, variant: "body2" },
|
|
1685
|
+
group.menuItemModifierGroupName,
|
|
1686
|
+
": ",
|
|
1687
|
+
modifiers,
|
|
1688
|
+
(nestedGroups === null || nestedGroups === void 0 ? void 0 : nestedGroups.length) > 0 && React__default['default'].createElement("ul", { className: classes.ul }, nestedGroups)));
|
|
1689
|
+
}
|
|
1690
|
+
// For nested groups, we use list items
|
|
1691
|
+
return (React__default['default'].createElement("li", { key: group.id, className: classes.li },
|
|
1692
|
+
React__default['default'].createElement(Typography, { variant: "body2" },
|
|
1693
|
+
group.menuItemModifierGroupName,
|
|
1694
|
+
": ",
|
|
1695
|
+
modifiers,
|
|
1696
|
+
nestedGroups && nestedGroups.length > 0 && React__default['default'].createElement("ul", { className: classes.ul }, nestedGroups))));
|
|
1697
|
+
});
|
|
1698
|
+
};
|
|
1666
1699
|
return (React__default['default'].createElement(core.Box, { className: classes.root },
|
|
1667
1700
|
React__default['default'].createElement(core.Box, { display: "flex", gridGap: 3 },
|
|
1668
1701
|
src && alt && React__default['default'].createElement("img", { src: src, alt: alt, className: classes.img }),
|
|
1669
1702
|
React__default['default'].createElement(core.Box, { flexGrow: 1 },
|
|
1670
1703
|
React__default['default'].createElement(Typography, { variant: "h2", className: classes.name }, name),
|
|
1671
|
-
|
|
1672
|
-
modifiers.map(function (modifier, i) { return (React__default['default'].createElement(Typography, { key: i, variant: "body2" },
|
|
1673
|
-
modifier[0],
|
|
1674
|
-
": ",
|
|
1675
|
-
modifier[1])); }),
|
|
1704
|
+
modifierGroups && formatModifiers(modifierGroups),
|
|
1676
1705
|
specialInstructions && React__default['default'].createElement(Typography, { variant: "body2" },
|
|
1677
1706
|
"\"",
|
|
1678
1707
|
specialInstructions,
|