@popmenu/ordering-ui 0.113.5 → 0.114.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/components/DishModifierCard/DishModifierCardProps.d.ts +3 -1
- package/build/components/ReactionCounter/ReactionCounterProps.d.ts +1 -0
- package/build/index.es.js +27 -16
- package/build/index.es.js.map +1 -1
- package/build/index.js +27 -16
- package/build/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -28,6 +28,8 @@ interface Base {
|
|
|
28
28
|
isOutOfStock: boolean;
|
|
29
29
|
}
|
|
30
30
|
export declare type DishModifierCardProps = {
|
|
31
|
+
/** Aggregate price of the modifier and its nested children modifiers */
|
|
32
|
+
aggregatePrice: Record<number, string>;
|
|
31
33
|
/** Modifier options */
|
|
32
34
|
modifiers: Array<Modifier>;
|
|
33
35
|
/** The values of the modifier form */
|
|
@@ -60,5 +62,5 @@ export declare type RadioModifierFormProps = Base;
|
|
|
60
62
|
export declare type CheckboxModifierFormProps = Base & {
|
|
61
63
|
disableNewSelections?: boolean;
|
|
62
64
|
};
|
|
63
|
-
export declare type ModifierOptionsControlProps = Pick<DishModifierCardProps, 'value' | 'modifiers' | 'isOutOfStock' | 'onChange' | 'disableNewSelections' | 'type' | 'messages' | 'handleOptionsClick'>;
|
|
65
|
+
export declare type ModifierOptionsControlProps = Pick<DishModifierCardProps, 'value' | 'modifiers' | 'isOutOfStock' | 'onChange' | 'disableNewSelections' | 'type' | 'messages' | 'handleOptionsClick' | 'aggregatePrice'>;
|
|
64
66
|
export {};
|
package/build/index.es.js
CHANGED
|
@@ -1309,9 +1309,9 @@ makeStyles$1(function () { return ({
|
|
|
1309
1309
|
}); });
|
|
1310
1310
|
|
|
1311
1311
|
var ReactionCounter = function (props) {
|
|
1312
|
-
var count = props.count, icon = props.icon;
|
|
1312
|
+
var count = props.count, icon = props.icon, label = props.label;
|
|
1313
1313
|
return (React__default.createElement(Box, { display: "flex", alignItems: "center", gridGap: 6, color: "grey.900" },
|
|
1314
|
-
React__default.createElement(Icon, { icon: icon, size: "large", color: "inherit" }),
|
|
1314
|
+
React__default.createElement(Icon, { icon: icon, size: "large", color: "inherit", "aria-label": label }),
|
|
1315
1315
|
React__default.createElement(Typography, { variant: "body2", color: "grey.900" }, count)));
|
|
1316
1316
|
};
|
|
1317
1317
|
|
|
@@ -1325,8 +1325,8 @@ var MenuItemReactions = function (props) {
|
|
|
1325
1325
|
var showLikes = likeCount ? likeCount > 0 : false;
|
|
1326
1326
|
var showReviews = reviewCount ? reviewCount > 0 : false;
|
|
1327
1327
|
return (React__default.createElement(ReactionCounterGroup, null,
|
|
1328
|
-
showLikes && React__default.createElement(ReactionCounter, { icon: SvgHeart, count: likeCount !== null && likeCount !== void 0 ? likeCount : 0 }),
|
|
1329
|
-
showReviews && React__default.createElement(ReactionCounter, { icon: SvgReviews, count: reviewCount !== null && reviewCount !== void 0 ? reviewCount : 0 })));
|
|
1328
|
+
showLikes && React__default.createElement(ReactionCounter, { icon: SvgHeart, count: likeCount !== null && likeCount !== void 0 ? likeCount : 0, label: "likes" }),
|
|
1329
|
+
showReviews && React__default.createElement(ReactionCounter, { icon: SvgReviews, count: reviewCount !== null && reviewCount !== void 0 ? reviewCount : 0, label: "reviews" })));
|
|
1330
1330
|
};
|
|
1331
1331
|
|
|
1332
1332
|
var useStyles$5 = makeStyles$1(function (_a) {
|
|
@@ -1744,6 +1744,8 @@ var useLabelStyles = makeStyles(function (theme) { return ({
|
|
|
1744
1744
|
var useOptionsStyles = makeStyles(function (theme) { return ({
|
|
1745
1745
|
options: {
|
|
1746
1746
|
color: theme.palette.info.main,
|
|
1747
|
+
marginBottom: theme.spacing(1.5),
|
|
1748
|
+
padding: 0,
|
|
1747
1749
|
},
|
|
1748
1750
|
}); });
|
|
1749
1751
|
|
|
@@ -1831,15 +1833,15 @@ var Label = function (props) {
|
|
|
1831
1833
|
price))));
|
|
1832
1834
|
};
|
|
1833
1835
|
var Options = function (props) {
|
|
1834
|
-
var handleOptionsClick = props.handleOptionsClick
|
|
1836
|
+
var handleOptionsClick = props.handleOptionsClick;
|
|
1835
1837
|
var classes = useOptionsStyles();
|
|
1836
|
-
return (React__default.createElement(Box,
|
|
1837
|
-
React__default.createElement(Button, { variation: "none", className: classes.options, onClick:
|
|
1838
|
+
return (React__default.createElement(Box, null,
|
|
1839
|
+
React__default.createElement(Button, { variation: "none", className: classes.options, onClick: handleOptionsClick },
|
|
1838
1840
|
React__default.createElement(Typography$1, { variant: "caption" }, "OPTIONS"),
|
|
1839
1841
|
React__default.createElement(Icon, { icon: SvgChevronRight }))));
|
|
1840
1842
|
};
|
|
1841
1843
|
var SingleSelectModifierControl = function (props) {
|
|
1842
|
-
var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick;
|
|
1844
|
+
var modifiers = props.modifiers, isOutOfStock = props.isOutOfStock, onChange = props.onChange, value = props.value, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
|
|
1843
1845
|
var radioClasses = useRadioModifierFormStyles();
|
|
1844
1846
|
var makeHandleChange = function (modifier) { return function (e) {
|
|
1845
1847
|
onChange({
|
|
@@ -1855,19 +1857,26 @@ var SingleSelectModifierControl = function (props) {
|
|
|
1855
1857
|
React__default.createElement(RadioGroup, null, modifiers.map(function (modifier) {
|
|
1856
1858
|
var _a, _b;
|
|
1857
1859
|
var _c;
|
|
1858
|
-
return (React__default.createElement(Box, { key: modifier.id
|
|
1860
|
+
return (React__default.createElement(Box, { key: modifier.id, onClick: function () {
|
|
1861
|
+
if (modifier.hasModifiers) {
|
|
1862
|
+
handleOptionsClick(modifier.id);
|
|
1863
|
+
}
|
|
1864
|
+
} },
|
|
1859
1865
|
React__default.createElement(FormControlLabel$1, { key: modifier.id, value: modifier.id, className: radioClasses.root, control: React__default.createElement(Radio$2, { 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.createElement(Box, { className: radioClasses.label },
|
|
1860
|
-
React__default.createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
|
|
1866
|
+
React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
|
|
1861
1867
|
modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
|
|
1862
1868
|
React__default.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
|
|
1863
|
-
modifier.hasModifiers && React__default.createElement(Options, { handleOptionsClick:
|
|
1869
|
+
modifier.hasModifiers && !modifier.outOfStock && (React__default.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
|
|
1864
1870
|
}))));
|
|
1865
1871
|
};
|
|
1866
1872
|
var MultipleSelectControl = function (props) {
|
|
1867
|
-
var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick;
|
|
1873
|
+
var modifiers = props.modifiers, value = props.value, isOutOfStock = props.isOutOfStock, onChange = props.onChange, disableNewSelections = props.disableNewSelections, handleOptionsClick = props.handleOptionsClick, aggregatePrice = props.aggregatePrice;
|
|
1868
1874
|
var classes = useCheckboxModifierFormStyles();
|
|
1869
1875
|
var makeHandleChange = function (modifier) { return function () {
|
|
1870
1876
|
var isModifierInValue = Boolean(value.find(function (v) { return v.modifierId === modifier.id; }));
|
|
1877
|
+
if (!isModifierInValue && modifier.hasModifiers) {
|
|
1878
|
+
handleOptionsClick(modifier.id);
|
|
1879
|
+
}
|
|
1871
1880
|
onChange({
|
|
1872
1881
|
isRadio: false,
|
|
1873
1882
|
modifierId: modifier.id,
|
|
@@ -1882,10 +1891,10 @@ var MultipleSelectControl = function (props) {
|
|
|
1882
1891
|
var _a, _b;
|
|
1883
1892
|
return (React__default.createElement(Box, { key: modifier.id },
|
|
1884
1893
|
React__default.createElement(FormControlLabel$1, { 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.createElement(Checkbox$2, { 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.createElement(Box, { className: classes.label },
|
|
1885
|
-
React__default.createElement(Label, { name: modifier.name, price: modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
|
|
1894
|
+
React__default.createElement(Label, { name: modifier.name, price: aggregatePrice[modifier.id] || modifier.formattedPrice, disabled: isOutOfStock || modifier.outOfStock }),
|
|
1886
1895
|
modifier.outOfStock && (React__default.createElement(Box, { minWidth: "90px", marginLeft: 2 },
|
|
1887
1896
|
React__default.createElement(StatusTag, { color: "warning", label: "Out of stock", variant: "outlined", size: "md" })))), labelPlacement: "start" }),
|
|
1888
|
-
modifier.hasModifiers && React__default.createElement(Options, { handleOptionsClick:
|
|
1897
|
+
modifier.hasModifiers && !modifier.outOfStock && (React__default.createElement(Options, { handleOptionsClick: function () { return handleOptionsClick(modifier.id); } }))));
|
|
1889
1898
|
}))));
|
|
1890
1899
|
};
|
|
1891
1900
|
var MultipleQuantitySelectControl = function (props) {
|
|
@@ -1944,7 +1953,7 @@ var getStatusTagProps = function (props) {
|
|
|
1944
1953
|
return { color: color, label: label, variant: variant };
|
|
1945
1954
|
};
|
|
1946
1955
|
var DishModifierCard = function (props) {
|
|
1947
|
-
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;
|
|
1956
|
+
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;
|
|
1948
1957
|
var classes = useDishModifierCardStyles();
|
|
1949
1958
|
return (React__default.createElement(Box, { className: classes.root },
|
|
1950
1959
|
React__default.createElement(Box, { display: "flex", justifyContent: "space-between", width: "100%", alignItems: "center", height: "fit-content", marginBottom: 2 },
|
|
@@ -1952,7 +1961,7 @@ var DishModifierCard = function (props) {
|
|
|
1952
1961
|
!isOutOfStock && (React__default.createElement(Typography, { variant: "subtitle1", className: error ? classes.error : undefined }, messages.helperText))),
|
|
1953
1962
|
React__default.createElement(Typography, { className: classes.name }, name),
|
|
1954
1963
|
React__default.createElement(Box, null,
|
|
1955
|
-
React__default.createElement(ModifierControls, { value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick }))));
|
|
1964
|
+
React__default.createElement(ModifierControls, { value: value, modifiers: modifiers, isOutOfStock: isOutOfStock, onChange: onChange, disableNewSelections: disableNewSelections, type: type, messages: messages, handleOptionsClick: handleOptionsClick, aggregatePrice: aggregatePrice }))));
|
|
1956
1965
|
};
|
|
1957
1966
|
DishModifierCard.displayName = 'DishModifierCard';
|
|
1958
1967
|
|
|
@@ -2175,6 +2184,7 @@ var useSelectableChipStyles = makeStyles(function (theme) { return ({
|
|
|
2175
2184
|
color: theme.palette.grey[900],
|
|
2176
2185
|
padding: theme.spacing(1, 2),
|
|
2177
2186
|
fontSize: '0.875rem',
|
|
2187
|
+
fontWeight: 400,
|
|
2178
2188
|
minWidth: 'unset',
|
|
2179
2189
|
minHeight: 'unset',
|
|
2180
2190
|
opacity: 'unset',
|
|
@@ -2187,6 +2197,7 @@ var useSelectableChipStyles = makeStyles(function (theme) { return ({
|
|
|
2187
2197
|
backgroundColor: theme.palette.grey[100],
|
|
2188
2198
|
borderColor: '#0A202F',
|
|
2189
2199
|
color: theme.palette.grey[900],
|
|
2200
|
+
fontWeight: 400,
|
|
2190
2201
|
'&:hover': {
|
|
2191
2202
|
background: theme.palette.grey[100],
|
|
2192
2203
|
},
|