@popmenu/ordering-ui 0.81.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.
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ interface OrderingAppContextValue {
3
+ currencySymbol: string;
4
+ }
5
+ export declare const OrderingAppContext: import("react").Context<OrderingAppContextValue | null>;
6
+ export declare const useOrderingAppContext: () => OrderingAppContextValue;
7
+ export {};
@@ -0,0 +1 @@
1
+ export { OrderingAppContext, useOrderingAppContext } from './OrderingAppContext';
@@ -9,6 +9,7 @@ export { default as ItemTagGroup } from './ItemTagGroup';
9
9
  export { default as LocationCard, LocationCardProps } from './LocationCard';
10
10
  export { default as MenuDropdown, MenuDropdownProps, MenuDropdownOption } from './MenuDropdown';
11
11
  export { default as MenuFilter, MenuFilterProps, MenuFilterOption, MenuFilterChangeHandler } from './MenuFilter';
12
+ export { OrderingAppContext, useOrderingAppContext } from './OrderingAppContext';
12
13
  export { default as ReactionCounter, ReactionCounterProps } from './ReactionCounter';
13
14
  export { default as ReactionCounterGroup } from './ReactionCounterGroup';
14
15
  export { default as QuantityPicker, QuantityPickerProps, QuantityChangeEvent } from './QuantityPicker';
package/build/index.es.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Button as Button$2, makeStyles as makeStyles$1, Box, Typography as Typography$1, Link as Link$1, Paper as Paper$1, Avatar as Avatar$1, Card, CardActionArea, FormControl, Select, InputAdornment, MenuItem as MenuItem$1, FormControlLabel as FormControlLabel$1, Checkbox as Checkbox$1, Radio as Radio$1, Menu, TextField, Tabs, Chip } from '@material-ui/core';
2
2
  export * from '@material-ui/core';
3
3
  import * as React from 'react';
4
- import React__default, { forwardRef, createElement, useState } from 'react';
4
+ import React__default, { forwardRef, createElement, useState, createContext, useContext } from 'react';
5
5
  import { makeStyles, useTheme, lighten } from '@material-ui/core/styles';
6
6
  import '@material-ui/lab/Alert';
7
7
  import '@material-ui/core/AppBar';
@@ -1499,17 +1499,27 @@ StatusTag.defaultProps = {
1499
1499
  };
1500
1500
  StatusTag.displayName = 'StatusTag';
1501
1501
 
1502
+ var OrderingAppContext = createContext(null);
1503
+ var useOrderingAppContext = function () {
1504
+ var context = useContext(OrderingAppContext);
1505
+ if (!context) {
1506
+ throw new Error('useOrderingAppContext has to be used within <OrderingAppContext.Provider>');
1507
+ }
1508
+ return context;
1509
+ };
1510
+
1502
1511
  var Label = function (props) {
1503
1512
  var name = props.name, price = props.price;
1504
- return (React.createElement(Box, { display: "flex", flexDirection: "column" },
1505
- React.createElement(Typography$1, null, name),
1506
- price && React.createElement(Typography$1, null,
1513
+ return (React__default.createElement(Box, { display: "flex", flexDirection: "column" },
1514
+ React__default.createElement(Typography$1, null, name),
1515
+ price && React__default.createElement(Typography$1, null,
1507
1516
  "+ ",
1508
1517
  price)));
1509
1518
  };
1510
1519
  var CheckboxGroup = function (props) {
1511
1520
  var value = props.value, modifiers = props.modifiers, onChange = props.onChange, disableNewSelections = props.disableNewSelections;
1512
1521
  var classes = useCheckboxModifierFormStyles();
1522
+ var orderingContext = useOrderingAppContext();
1513
1523
  var handleChange = function (event) {
1514
1524
  var _a;
1515
1525
  var price = (_a = modifiers.find(function (modifier) { return modifier.id === parseInt(event.target.value); })) === null || _a === void 0 ? void 0 : _a.price;
@@ -1521,14 +1531,17 @@ var CheckboxGroup = function (props) {
1521
1531
  },
1522
1532
  ], event.target.checked);
1523
1533
  };
1524
- return (React.createElement(Box, { display: "flex", flexDirection: "column" }, modifiers.map(function (modifier, index) {
1534
+ return (React__default.createElement(Box, { display: "flex", flexDirection: "column" }, modifiers.map(function (modifier, index) {
1525
1535
  var targetValue = value === null || value === void 0 ? void 0 : value.find(function (v) { return v.id == modifier.id; });
1526
- return (React.createElement(FormControlLabel$1, { key: index, value: modifier.id, control: React.createElement(Checkbox$1, { className: classes.radio, disabled: !targetValue && disableNewSelections }), label: React.createElement(Label, { name: modifier.name, price: modifier.price }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1536
+ return (React__default.createElement(FormControlLabel$1, { key: index, value: modifier.id, control: React__default.createElement(Checkbox$1, { className: classes.radio, disabled: !targetValue && disableNewSelections }), label: React__default.createElement(Label, { name: modifier.name, price: modifier.price
1537
+ ? "" + (orderingContext && orderingContext.currencySymbol) + Number(modifier.price).toFixed(2)
1538
+ : null }), className: classes.root, checked: !!targetValue, onChange: handleChange }));
1527
1539
  })));
1528
1540
  };
1529
1541
  var RadioGroup = function (props) {
1530
1542
  var value = props.value, modifiers = props.modifiers, onChange = props.onChange;
1531
1543
  var classes = useRadioModifierFormStyles();
1544
+ var orderingContext = useOrderingAppContext();
1532
1545
  var handleChange = function (event) {
1533
1546
  var _a;
1534
1547
  var price = (_a = modifiers.find(function (modifier) { return modifier.id === parseInt(event.target.value); })) === null || _a === void 0 ? void 0 : _a.price;
@@ -1540,7 +1553,9 @@ var RadioGroup = function (props) {
1540
1553
  },
1541
1554
  ]);
1542
1555
  };
1543
- return (React.createElement(MuiRadioGroup, { name: "selectedModifiers", value: value ? value[0].id : '', onChange: handleChange }, modifiers.map(function (modifier, index) { return (React.createElement(FormControlLabel$1, { key: index, value: modifier.id, control: React.createElement(Radio$1, { className: classes.radio }), label: React.createElement(Label, { name: modifier.name, price: modifier.price }), className: classes.root })); })));
1556
+ return (React__default.createElement(MuiRadioGroup, { name: "selectedModifiers", value: value ? value[0].id : '', onChange: handleChange }, modifiers.map(function (modifier, index) { return (React__default.createElement(FormControlLabel$1, { key: index, value: modifier.id, control: React__default.createElement(Radio$1, { className: classes.radio }), label: React__default.createElement(Label, { name: modifier.name, price: modifier.price
1557
+ ? "" + (orderingContext && orderingContext.currencySymbol) + Number(modifier.price).toFixed(2)
1558
+ : null }), className: classes.root })); })));
1544
1559
  };
1545
1560
 
1546
1561
  var ModifierOptionsControl = function (props) {
@@ -2071,5 +2086,5 @@ var orderingTheme = {
2071
2086
  props: props,
2072
2087
  };
2073
2088
 
2074
- export { Button$1 as Button, DishCheckoutCard, DishDetailsReview, DishModifierCard, ItemTag, ItemTagGroup, LocationCard, MenuDropdown, MenuFilter, MenuItem, MenuItemGroup, MenuSection, MenuSectionGroup, QuantityPicker, ReactionCounter, ReactionCounterGroup, SelectableChip, SelectableChipGroup, SelectedMenuFiltersList, StatusTag, orderingTheme };
2089
+ export { Button$1 as Button, DishCheckoutCard, DishDetailsReview, DishModifierCard, ItemTag, ItemTagGroup, LocationCard, MenuDropdown, MenuFilter, MenuItem, MenuItemGroup, MenuSection, MenuSectionGroup, OrderingAppContext, QuantityPicker, ReactionCounter, ReactionCounterGroup, SelectableChip, SelectableChipGroup, SelectedMenuFiltersList, StatusTag, orderingTheme, useOrderingAppContext };
2075
2090
  //# sourceMappingURL=index.es.js.map