@popmenu/ordering-ui 0.113.6 → 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.
|
@@ -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
|
@@ -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
|
|