@open-tender/store 1.1.18 → 1.1.19

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.
Files changed (77) hide show
  1. package/dist/cjs/components/Cart.d.ts +6 -2
  2. package/dist/cjs/components/Cart.js +3 -4
  3. package/dist/cjs/components/CartItem.d.ts +3 -2
  4. package/dist/cjs/components/CartItem.js +5 -6
  5. package/dist/cjs/components/CartUpsells.d.ts +3 -2
  6. package/dist/cjs/components/CartUpsells.js +2 -3
  7. package/dist/cjs/components/CategoryNav.d.ts +4 -2
  8. package/dist/cjs/components/CategoryNav.js +4 -5
  9. package/dist/cjs/components/Header.d.ts +3 -2
  10. package/dist/cjs/components/Header.js +3 -4
  11. package/dist/cjs/components/ItemGroup.d.ts +4 -2
  12. package/dist/cjs/components/ItemGroup.js +4 -5
  13. package/dist/cjs/components/ItemGroups.d.ts +7 -3
  14. package/dist/cjs/components/ItemGroups.js +4 -5
  15. package/dist/cjs/components/ItemSelections.d.ts +5 -3
  16. package/dist/cjs/components/ItemSelections.js +4 -5
  17. package/dist/cjs/components/MadeForNotes.d.ts +4 -2
  18. package/dist/cjs/components/MadeForNotes.js +4 -5
  19. package/dist/cjs/components/Option.d.ts +7 -2
  20. package/dist/cjs/components/Option.js +18 -5
  21. package/dist/cjs/components/OrderCard.d.ts +3 -2
  22. package/dist/cjs/components/OrderCard.js +3 -4
  23. package/dist/cjs/components/PointsReward.d.ts +3 -2
  24. package/dist/cjs/components/PointsReward.js +2 -3
  25. package/dist/cjs/components/PointsRewards.d.ts +4 -2
  26. package/dist/cjs/components/PointsRewards.js +3 -4
  27. package/dist/cjs/components/PromoCode.d.ts +4 -2
  28. package/dist/cjs/components/PromoCode.js +3 -7
  29. package/dist/cjs/components/Reward.d.ts +3 -2
  30. package/dist/cjs/components/Reward.js +3 -4
  31. package/dist/cjs/components/Rewards.d.ts +4 -2
  32. package/dist/cjs/components/Rewards.js +3 -4
  33. package/dist/cjs/components/SignInOptions.d.ts +6 -2
  34. package/dist/cjs/components/SignInOptions.js +3 -4
  35. package/dist/cjs/components/SignInPhone.d.ts +4 -2
  36. package/dist/cjs/components/SignInPhone.js +3 -7
  37. package/dist/cjs/components/Upsells.d.ts +3 -2
  38. package/dist/cjs/components/Upsells.js +2 -3
  39. package/dist/esm/components/Cart.d.ts +6 -2
  40. package/dist/esm/components/Cart.js +4 -5
  41. package/dist/esm/components/CartItem.d.ts +3 -2
  42. package/dist/esm/components/CartItem.js +5 -6
  43. package/dist/esm/components/CartUpsells.d.ts +3 -2
  44. package/dist/esm/components/CartUpsells.js +3 -4
  45. package/dist/esm/components/CategoryNav.d.ts +4 -2
  46. package/dist/esm/components/CategoryNav.js +4 -5
  47. package/dist/esm/components/Header.d.ts +3 -2
  48. package/dist/esm/components/Header.js +3 -4
  49. package/dist/esm/components/ItemGroup.d.ts +4 -2
  50. package/dist/esm/components/ItemGroup.js +4 -5
  51. package/dist/esm/components/ItemGroups.d.ts +7 -3
  52. package/dist/esm/components/ItemGroups.js +4 -5
  53. package/dist/esm/components/ItemSelections.d.ts +5 -3
  54. package/dist/esm/components/ItemSelections.js +4 -5
  55. package/dist/esm/components/MadeForNotes.d.ts +4 -2
  56. package/dist/esm/components/MadeForNotes.js +4 -5
  57. package/dist/esm/components/Option.d.ts +7 -2
  58. package/dist/esm/components/Option.js +18 -5
  59. package/dist/esm/components/OrderCard.d.ts +3 -2
  60. package/dist/esm/components/OrderCard.js +5 -6
  61. package/dist/esm/components/PointsReward.d.ts +3 -2
  62. package/dist/esm/components/PointsReward.js +2 -3
  63. package/dist/esm/components/PointsRewards.d.ts +4 -2
  64. package/dist/esm/components/PointsRewards.js +3 -4
  65. package/dist/esm/components/PromoCode.d.ts +4 -2
  66. package/dist/esm/components/PromoCode.js +4 -8
  67. package/dist/esm/components/Reward.d.ts +3 -2
  68. package/dist/esm/components/Reward.js +3 -4
  69. package/dist/esm/components/Rewards.d.ts +4 -2
  70. package/dist/esm/components/Rewards.js +3 -4
  71. package/dist/esm/components/SignInOptions.d.ts +6 -2
  72. package/dist/esm/components/SignInOptions.js +4 -5
  73. package/dist/esm/components/SignInPhone.d.ts +4 -2
  74. package/dist/esm/components/SignInPhone.js +4 -8
  75. package/dist/esm/components/Upsells.d.ts +3 -2
  76. package/dist/esm/components/Upsells.js +3 -4
  77. package/package.json +1 -1
@@ -1,8 +1,12 @@
1
- import { CartProps } from '@open-tender/ui';
1
+ import { CartProps, CartUpsellsProps, CartItemProps, QuantityProps, CartUpsellItemProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const Cart: ({ navigate, children, apiUrl }: {
3
+ declare const Cart: ({ navigate, children, apiUrl, CartUpsellsView, CartItemView, QuantityView, CartUpsellItemView }: {
4
4
  navigate: (route: string) => void;
5
5
  children: (props: CartProps) => ReactNode;
6
6
  apiUrl: string;
7
+ CartUpsellsView: (props: CartUpsellsProps) => ReactNode;
8
+ CartItemView: (props: CartItemProps) => ReactNode;
9
+ QuantityView: (props: QuantityProps) => ReactNode;
10
+ CartUpsellItemView: (props: CartUpsellItemProps) => ReactNode;
7
11
  }) => React.ReactNode;
8
12
  export default Cart;
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var CartItem_1 = tslib_1.__importDefault(require("./CartItem"));
9
8
  var CartUpsells_1 = tslib_1.__importDefault(require("./CartUpsells"));
10
9
  var Cart = function (_a) {
11
- var navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl;
10
+ var navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl, CartUpsellsView = _a.CartUpsellsView, CartItemView = _a.CartItemView, QuantityView = _a.QuantityView, CartUpsellItemView = _a.CartUpsellItemView;
12
11
  var dispatch = (0, hooks_1.useAppDispatch)();
13
12
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).cart;
14
13
  var cart = (0, hooks_1.useAppSelector)(slices_1.selectOrder).cart;
@@ -23,8 +22,8 @@ var Cart = function (_a) {
23
22
  return;
24
23
  dispatch((0, slices_1.closeCartSummary)());
25
24
  }, [dispatch, isOpen, isEmpty]);
26
- var renderCartItem = function (item, isLast) { return (react_1.default.createElement(CartItem_1.default, { navigate: navigate, item: item, isLast: isLast, children: ui_1.CartItem, apiUrl: apiUrl })); };
27
- var renderCartUpsells = function () { return (react_1.default.createElement(CartUpsells_1.default, { apiUrl: apiUrl, children: ui_1.CartUpsells })); };
25
+ var renderCartItem = (0, react_1.useCallback)(function (item, isLast) { return (react_1.default.createElement(CartItem_1.default, { navigate: navigate, item: item, isLast: isLast, apiUrl: apiUrl, children: CartItemView, QuantityView: QuantityView })); }, [navigate, apiUrl, CartItemView, QuantityView]);
26
+ var renderCartUpsells = (0, react_1.useCallback)(function () { return (react_1.default.createElement(CartUpsells_1.default, { CartUpsellItemView: CartUpsellItemView, apiUrl: apiUrl, children: CartUpsellsView })); }, [apiUrl, CartUpsellsView, CartUpsellItemView]);
28
27
  if (!config)
29
28
  return null;
30
29
  return children({
@@ -1,12 +1,13 @@
1
1
  import { CartItem as CartItemType } from '@open-tender/types';
2
- import { CartItemProps } from '@open-tender/ui';
2
+ import { CartItemProps, QuantityProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const CartItem: ({ item, isLast, isEditable, navigate, children, apiUrl }: {
4
+ declare const CartItem: ({ item, isLast, isEditable, navigate, children, apiUrl, QuantityView }: {
5
5
  item: CartItemType;
6
6
  isLast?: boolean;
7
7
  isEditable?: boolean;
8
8
  navigate: (route: string) => void;
9
9
  children: (props: CartItemProps) => ReactNode;
10
10
  apiUrl: string;
11
+ QuantityView: (props: QuantityProps) => ReactNode;
11
12
  }) => React.ReactNode;
12
13
  export default CartItem;
@@ -1,24 +1,23 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var Quantity_1 = tslib_1.__importDefault(require("./Quantity"));
9
8
  var CartItem = function (_a) {
10
- var item = _a.item, _b = _a.isLast, isLast = _b === void 0 ? false : _b, _c = _a.isEditable, isEditable = _c === void 0 ? true : _c, navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl;
9
+ var item = _a.item, _b = _a.isLast, isLast = _b === void 0 ? false : _b, _c = _a.isEditable, isEditable = _c === void 0 ? true : _c, navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl, QuantityView = _a.QuantityView;
11
10
  var dispatch = (0, hooks_1.useAppDispatch)();
12
11
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).cartItem;
13
- var increment = function () { return dispatch((0, slices_1.incrementItemInCart)(item)); };
14
- var decrement = function () { return dispatch((0, slices_1.decrementItemInCart)(item)); };
12
+ var increment = (0, react_1.useCallback)(function () { return dispatch((0, slices_1.incrementItemInCart)(item)); }, [item, dispatch]);
13
+ var decrement = (0, react_1.useCallback)(function () { return dispatch((0, slices_1.decrementItemInCart)(item)); }, [dispatch, item]);
15
14
  var remove = function () { return dispatch((0, slices_1.removeItemFromCart)(item)); };
16
15
  var edit = function () {
17
16
  dispatch((0, slices_1.setCurrentItem)(item));
18
17
  navigate('/menu/item');
19
18
  };
20
19
  var handlers = { increment: increment, decrement: decrement, edit: edit, remove: remove };
21
- var renderQuantity = function (quantity) { return (react_1.default.createElement(Quantity_1.default, { fontSize: 24, iconSize: 28, quantity: quantity, increment: increment, decrement: decrement, children: ui_1.Quantity })); };
20
+ var renderQuantity = (0, react_1.useCallback)(function (quantity) { return (react_1.default.createElement(Quantity_1.default, { fontSize: 24, iconSize: 28, quantity: quantity, increment: increment, decrement: decrement, children: QuantityView })); }, [increment, decrement, QuantityView]);
22
21
  return children({
23
22
  item: item,
24
23
  config: config,
@@ -1,7 +1,8 @@
1
- import { CartUpsellsProps } from '@open-tender/ui';
1
+ import { CartUpsellItemProps, CartUpsellsProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const CartUpsells: ({ children, apiUrl }: {
3
+ declare const CartUpsells: ({ children, apiUrl, CartUpsellItemView }: {
4
4
  children: (props: CartUpsellsProps) => ReactNode;
5
5
  apiUrl: string;
6
+ CartUpsellItemView: (props: CartUpsellItemProps) => ReactNode;
6
7
  }) => React.ReactNode;
7
8
  export default CartUpsells;
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var utils_1 = require("@open-tender/utils");
6
5
  var react_1 = tslib_1.__importStar(require("react"));
7
6
  var hooks_1 = require("../app/hooks");
8
7
  var slices_1 = require("../slices");
9
8
  var CartUpsellItem_1 = tslib_1.__importDefault(require("./CartUpsellItem"));
10
9
  var CartUpsells = function (_a) {
11
- var children = _a.children, apiUrl = _a.apiUrl;
10
+ var children = _a.children, apiUrl = _a.apiUrl, CartUpsellItemView = _a.CartUpsellItemView;
12
11
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).cartUpsells;
13
12
  var cartIds = (0, hooks_1.useAppSelector)(slices_1.selectCartIds);
14
13
  var _b = (0, hooks_1.useAppSelector)(slices_1.selectMenu), categories = _b.categories, soldOut = _b.soldOut;
15
14
  var upsellItems = (0, react_1.useMemo)(function () { return (0, utils_1.makeUpsellItemsForCart)(categories, cartIds, soldOut); }, [categories, cartIds, soldOut]);
16
- var renderCartUpsellItem = function (item, isLast) { return (react_1.default.createElement(CartUpsellItem_1.default, { item: item, isLast: isLast, children: ui_1.CartUpsellItem, apiUrl: apiUrl })); };
15
+ var renderCartUpsellItem = (0, react_1.useCallback)(function (item, isLast) { return (react_1.default.createElement(CartUpsellItem_1.default, { item: item, isLast: isLast, apiUrl: apiUrl, children: CartUpsellItemView })); }, [apiUrl, CartUpsellItemView]);
17
16
  if (!upsellItems.length)
18
17
  return null;
19
18
  return children({
@@ -1,8 +1,10 @@
1
- import { CategoryNavProps } from '@open-tender/ui';
1
+ import { CategoryNavProps, CategoryNavOtherProps, CategoryNavItemProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const CategoryNav: ({ children, navigate, apiUrl }: {
3
+ declare const CategoryNav: ({ children, navigate, apiUrl, CategoryNavOtherView, CategoryNavItemView }: {
4
4
  children: (props: CategoryNavProps) => ReactNode;
5
5
  navigate: (route: string) => void;
6
6
  apiUrl: string;
7
+ CategoryNavOtherView: (props: CategoryNavOtherProps) => ReactNode;
8
+ CategoryNavItemView: (props: CategoryNavItemProps) => ReactNode;
7
9
  }) => React.ReactNode;
8
10
  export default CategoryNav;
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var CategoryNavItem_1 = tslib_1.__importDefault(require("./CategoryNavItem"));
9
8
  var CategoryNavOther_1 = tslib_1.__importDefault(require("./CategoryNavOther"));
10
9
  var CategoryNav = function (_a) {
11
- var children = _a.children, navigate = _a.navigate, apiUrl = _a.apiUrl;
10
+ var children = _a.children, navigate = _a.navigate, apiUrl = _a.apiUrl, CategoryNavOtherView = _a.CategoryNavOtherView, CategoryNavItemView = _a.CategoryNavItemView;
12
11
  var categoryNav = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).categoryNav;
13
12
  var _b = (0, hooks_1.useAppSelector)(slices_1.selectMenu), categories = _b.categories, featured = _b.featured, favorites = _b.favorites, recents = _b.recents;
14
- var renderCategoryNavOther = function (title, path) { return (react_1.default.createElement(CategoryNavOther_1.default, { apiUrl: apiUrl, navigate: navigate, title: title, path: path, children: ui_1.CategoryNavOther })); };
15
- var renderCategoryNavItem = function (item) { return (react_1.default.createElement(CategoryNavItem_1.default, { apiUrl: apiUrl, navigate: navigate, category: item, children: ui_1.CategoryNavItem })); };
13
+ var renderCategoryNavOther = (0, react_1.useCallback)(function (title, path) { return (react_1.default.createElement(CategoryNavOther_1.default, { apiUrl: apiUrl, navigate: navigate, title: title, path: path, children: CategoryNavOtherView })); }, [apiUrl, navigate, CategoryNavOtherView]);
14
+ var renderCategoryNavItem = (0, react_1.useCallback)(function (item) { return (react_1.default.createElement(CategoryNavItem_1.default, { apiUrl: apiUrl, navigate: navigate, category: item, children: CategoryNavItemView })); }, [apiUrl, navigate, CategoryNavItemView]);
16
15
  return children({
17
16
  config: categoryNav,
18
17
  categories: categories,
@@ -1,9 +1,10 @@
1
- import { HeaderProps } from '@open-tender/ui';
1
+ import { HeaderProps, SignInButtonProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const Header: ({ to, pathname, navigate, children }: {
3
+ declare const Header: ({ to, pathname, navigate, children, SignInButtonView }: {
4
4
  to?: string;
5
5
  pathname: string;
6
6
  navigate: (route: string) => void;
7
7
  children: (props: HeaderProps) => ReactNode;
8
+ SignInButtonView: (props: SignInButtonProps) => ReactNode;
8
9
  }) => React.ReactNode;
9
10
  export default Header;
@@ -1,13 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var SignInButton_1 = tslib_1.__importDefault(require("./SignInButton"));
9
8
  var Header = function (_a) {
10
- var to = _a.to, pathname = _a.pathname, navigate = _a.navigate, children = _a.children;
9
+ var to = _a.to, pathname = _a.pathname, navigate = _a.navigate, children = _a.children, SignInButtonView = _a.SignInButtonView;
11
10
  var dispatch = (0, hooks_1.useAppDispatch)();
12
11
  var header = ((0, hooks_1.useAppSelector)(slices_1.selectKioskConfig) || {}).header;
13
12
  var back = function () {
@@ -18,7 +17,7 @@ var Header = function (_a) {
18
17
  dispatch((0, slices_1.toggleSidebar)());
19
18
  };
20
19
  var handlers = to ? { back: back, open: open } : null;
21
- var renderSignInButton = function () { return (react_1.default.createElement(SignInButton_1.default, { pathname: pathname, navigate: navigate, children: ui_1.SignInButton })); };
20
+ var renderSignInButton = (0, react_1.useCallback)(function () { return (react_1.default.createElement(SignInButton_1.default, { pathname: pathname, navigate: navigate, children: SignInButtonView })); }, [pathname, navigate, SignInButtonView]);
22
21
  if (!header)
23
22
  return null;
24
23
  return children({ config: header, handlers: handlers, renderSignInButton: renderSignInButton });
@@ -1,9 +1,11 @@
1
1
  import { CartItemGroup } from '@open-tender/types';
2
- import { ItemGroupProps } from '@open-tender/ui';
2
+ import { ErrorMessageProps, ItemGroupProps, SuccessMessageProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const ItemGroup: ({ group, content, children }: {
4
+ declare const ItemGroup: ({ group, content, children, ErrorMessageView, SuccessMessageView }: {
5
5
  group: CartItemGroup;
6
6
  content: ReactNode;
7
7
  children: (props: ItemGroupProps) => ReactNode;
8
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
9
+ SuccessMessageView: (props: SuccessMessageProps) => ReactNode;
8
10
  }) => React.ReactNode;
9
11
  export default ItemGroup;
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var utils_1 = require("@open-tender/utils");
6
- var react_1 = tslib_1.__importDefault(require("react"));
5
+ var react_1 = tslib_1.__importStar(require("react"));
7
6
  var hooks_1 = require("../app/hooks");
8
7
  var slices_1 = require("../slices");
9
8
  var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
10
9
  var SuccessMessage_1 = tslib_1.__importDefault(require("./SuccessMessage"));
11
10
  var ItemGroup = function (_a) {
12
- var group = _a.group, content = _a.content, children = _a.children;
11
+ var group = _a.group, content = _a.content, children = _a.children, ErrorMessageView = _a.ErrorMessageView, SuccessMessageView = _a.SuccessMessageView;
13
12
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).itemGroup;
14
13
  var modifierGroup = (0, utils_1.useModifierGroup)(group);
15
- var renderErrorMessage = function (icon, children) { return (react_1.default.createElement(ErrorMessage_1.default, { icon: icon, content: children, children: ui_1.ErrorMessage })); };
16
- var renderSuccessMessage = function (icon, children) { return (react_1.default.createElement(SuccessMessage_1.default, { icon: icon, content: children, children: ui_1.SuccessMessage })); };
14
+ var renderErrorMessage = (0, react_1.useCallback)(function (icon, children) { return (react_1.default.createElement(ErrorMessage_1.default, { icon: icon, content: children, children: ErrorMessageView })); }, [ErrorMessageView]);
15
+ var renderSuccessMessage = (0, react_1.useCallback)(function (icon, children) { return (react_1.default.createElement(SuccessMessage_1.default, { icon: icon, content: children, children: SuccessMessageView })); }, [SuccessMessageView]);
17
16
  return children({
18
17
  config: config,
19
18
  group: modifierGroup,
@@ -1,12 +1,16 @@
1
1
  import { CartItemGroups, CartLevels } from '@open-tender/types';
2
- import { Handlers, ItemGroupsProps } from '@open-tender/ui';
2
+ import { Handlers, ItemGroupsProps, ItemOptionProps, ErrorMessageProps, SuccessMessageProps, ItemGroupProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const ItemGroups: ({ handlers, groups, levels, excludeSize, children, apiUrl }: {
4
+ declare const ItemGroups: ({ handlers, groups, levels, excludeSize, children, apiUrl, ItemGroupView, ItemOptionView, ErrorMessageView, SuccessMessageView }: {
5
5
  handlers: Handlers;
6
6
  groups: CartItemGroups;
7
7
  levels: CartLevels;
8
8
  excludeSize?: boolean;
9
- children: (props: ItemGroupsProps) => ReactNode;
10
9
  apiUrl: string;
10
+ children: (props: ItemGroupsProps) => ReactNode;
11
+ ItemOptionView: (props: ItemOptionProps) => ReactNode;
12
+ ItemGroupView: (props: ItemGroupProps) => ReactNode;
13
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
14
+ SuccessMessageView: (props: SuccessMessageProps) => ReactNode;
11
15
  }) => React.ReactNode;
12
16
  export default ItemGroups;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var ItemGroup_1 = tslib_1.__importDefault(require("./ItemGroup"));
9
8
  var ItemOption_1 = tslib_1.__importDefault(require("./ItemOption"));
10
9
  var ItemGroups = function (_a) {
11
- var handlers = _a.handlers, groups = _a.groups, levels = _a.levels, _b = _a.excludeSize, excludeSize = _b === void 0 ? true : _b, children = _a.children, apiUrl = _a.apiUrl;
10
+ var handlers = _a.handlers, groups = _a.groups, levels = _a.levels, _b = _a.excludeSize, excludeSize = _b === void 0 ? true : _b, children = _a.children, apiUrl = _a.apiUrl, ItemGroupView = _a.ItemGroupView, ItemOptionView = _a.ItemOptionView, ErrorMessageView = _a.ErrorMessageView, SuccessMessageView = _a.SuccessMessageView;
12
11
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).itemGroups;
13
- var renderItemOption = function (group, option) { return (react_1.default.createElement(ItemOption_1.default, { apiUrl: apiUrl, levels: levels, handlers: handlers, group: group, option: option, children: ui_1.ItemOption })); };
14
- var renderItemGroup = function (group, content) { return (react_1.default.createElement(ItemGroup_1.default, { group: group, content: content, children: ui_1.ItemGroup })); };
12
+ var renderItemOption = (0, react_1.useCallback)(function (group, option) { return (react_1.default.createElement(ItemOption_1.default, { apiUrl: apiUrl, levels: levels, handlers: handlers, group: group, option: option, children: ItemOptionView })); }, [apiUrl, levels, handlers, ItemOptionView]);
13
+ var renderItemGroup = (0, react_1.useCallback)(function (group, content) { return (react_1.default.createElement(ItemGroup_1.default, { SuccessMessageView: SuccessMessageView, ErrorMessageView: ErrorMessageView, group: group, content: content, children: ItemGroupView })); }, [ItemGroupView, ErrorMessageView, SuccessMessageView]);
15
14
  if (!config)
16
15
  return null;
17
16
  return children({
@@ -1,12 +1,14 @@
1
1
  import { CartItemGroups, CartLevels } from '@open-tender/types';
2
- import { Handlers, ItemSelectionsProps } from '@open-tender/ui';
2
+ import { Handlers, ItemSelectionsProps, ItemOptionProps, ErrorMessageProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const ItemSelections: ({ handlers, groups, levels, isIncomplete, children, apiUrl }: {
4
+ declare const ItemSelections: ({ handlers, groups, levels, isIncomplete, children, apiUrl, ItemOptionView, ErrorMessageView }: {
5
5
  handlers: Handlers;
6
6
  groups: CartItemGroups;
7
7
  levels: CartLevels;
8
8
  isIncomplete: boolean;
9
- children: (props: ItemSelectionsProps) => ReactNode;
10
9
  apiUrl: string;
10
+ children: (props: ItemSelectionsProps) => ReactNode;
11
+ ItemOptionView: (props: ItemOptionProps) => ReactNode;
12
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
11
13
  }) => React.ReactNode;
12
14
  export default ItemSelections;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
9
8
  var ItemOption_1 = tslib_1.__importDefault(require("./ItemOption"));
10
9
  var ItemSelections = function (_a) {
11
- var handlers = _a.handlers, groups = _a.groups, levels = _a.levels, isIncomplete = _a.isIncomplete, children = _a.children, apiUrl = _a.apiUrl;
10
+ var handlers = _a.handlers, groups = _a.groups, levels = _a.levels, isIncomplete = _a.isIncomplete, children = _a.children, apiUrl = _a.apiUrl, ItemOptionView = _a.ItemOptionView, ErrorMessageView = _a.ErrorMessageView;
12
11
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).itemSelections;
13
- var renderErrorMessage = function (icon, children) { return (react_1.default.createElement(ErrorMessage_1.default, { icon: icon, content: children, children: ui_1.ErrorMessage })); };
14
- var renderItemOption = function (group, option) { return (react_1.default.createElement(ItemOption_1.default, { levels: levels, handlers: handlers, group: group, option: option, children: ui_1.ItemOption, apiUrl: apiUrl })); };
12
+ var renderErrorMessage = (0, react_1.useCallback)(function (icon, children) { return (react_1.default.createElement(ErrorMessage_1.default, { icon: icon, content: children, children: ErrorMessageView })); }, [ErrorMessageView]);
13
+ var renderItemOption = (0, react_1.useCallback)(function (group, option) { return (react_1.default.createElement(ItemOption_1.default, { levels: levels, handlers: handlers, group: group, option: option, apiUrl: apiUrl, children: ItemOptionView })); }, [levels, handlers, apiUrl, ItemOptionView]);
15
14
  return children({
16
15
  config: config,
17
16
  groups: groups,
@@ -1,6 +1,6 @@
1
- import { MadeForNotesProps } from '@open-tender/ui';
1
+ import { InputProps, MadeForNotesProps, TextAreaProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, hasNotes, notes, setNotes, close, children }: {
3
+ declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, hasNotes, notes, setNotes, close, children, InputView, TextAreaView }: {
4
4
  subtitle: string;
5
5
  hasMadeFor: boolean;
6
6
  madeFor: string | null;
@@ -10,5 +10,7 @@ declare const MadeForNotes: ({ subtitle, hasMadeFor, madeFor, setMadeFor, hasNot
10
10
  setNotes: (notes: string) => void;
11
11
  close: () => void;
12
12
  children: (props: MadeForNotesProps) => ReactNode;
13
+ InputView: (props: InputProps) => ReactNode;
14
+ TextAreaView: (props: TextAreaProps) => ReactNode;
13
15
  }) => React.ReactNode;
14
16
  export default MadeForNotes;
@@ -1,18 +1,17 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var Input_1 = tslib_1.__importDefault(require("./Input"));
9
8
  var TextArea_1 = tslib_1.__importDefault(require("./TextArea"));
10
9
  var MadeForNotes = function (_a) {
11
- var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, hasNotes = _a.hasNotes, notes = _a.notes, setNotes = _a.setNotes, close = _a.close, children = _a.children;
10
+ var subtitle = _a.subtitle, hasMadeFor = _a.hasMadeFor, madeFor = _a.madeFor, setMadeFor = _a.setMadeFor, hasNotes = _a.hasNotes, notes = _a.notes, setNotes = _a.setNotes, close = _a.close, children = _a.children, InputView = _a.InputView, TextAreaView = _a.TextAreaView;
12
11
  var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.madeForNotes, modalContentConfig = _b.modalContent;
13
12
  var handlers = { submit: close };
14
- var renderInput = function (label, value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { label: label, setValue: setMadeFor, value: value, isRequired: isRequired, style: style, children: ui_1.Input })); };
15
- var renderTextArea = function (label, value, isRequired, style) { return (react_1.default.createElement(TextArea_1.default, { label: label, setValue: setNotes, value: value, isRequired: isRequired, style: style, children: ui_1.Input })); };
13
+ var renderInput = (0, react_1.useCallback)(function (label, value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { label: label, setValue: setMadeFor, value: value, isRequired: isRequired, style: style, children: InputView })); }, [setMadeFor, InputView]);
14
+ var renderTextArea = (0, react_1.useCallback)(function (label, value, isRequired, style) { return (react_1.default.createElement(TextArea_1.default, { label: label, setValue: setNotes, value: value, isRequired: isRequired, style: style, children: TextAreaView })); }, [TextAreaView, setNotes]);
16
15
  return children({
17
16
  config: config,
18
17
  handlers: handlers,
@@ -1,12 +1,17 @@
1
1
  import { CartItemOption, CartLevels } from '@open-tender/types';
2
- import { Handlers, OptionProps } from '@open-tender/ui';
2
+ import { Handlers, OptionProps, ItemGroupsProps, ItemGroupProps, ItemOptionProps, SuccessMessageProps, ErrorMessageProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const Option: ({ option, levels, handlers, close, children, apiUrl }: {
4
+ declare const Option: ({ option, levels, handlers, close, children, apiUrl, ItemGroupsView, ItemGroupView, ItemOptionView, SuccessMessageView, ErrorMessageView }: {
5
5
  option: CartItemOption | null;
6
6
  levels: CartLevels | null;
7
7
  handlers: Handlers;
8
8
  close: () => void;
9
9
  children: (props: OptionProps) => ReactNode;
10
10
  apiUrl: string;
11
+ ItemGroupsView: (props: ItemGroupsProps) => ReactNode;
12
+ ItemGroupView: (props: ItemGroupProps) => ReactNode;
13
+ ItemOptionView: (props: ItemOptionProps) => ReactNode;
14
+ SuccessMessageView: (props: SuccessMessageProps) => ReactNode;
15
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
11
16
  }) => React.ReactNode;
12
17
  export default Option;
@@ -1,18 +1,31 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var slices_1 = require("../slices");
8
7
  var ItemGroups_1 = tslib_1.__importDefault(require("./ItemGroups"));
9
8
  var Option = function (_a) {
10
- var option = _a.option, levels = _a.levels, handlers = _a.handlers, close = _a.close, children = _a.children, apiUrl = _a.apiUrl;
9
+ var option = _a.option, levels = _a.levels, handlers = _a.handlers, close = _a.close, children = _a.children, apiUrl = _a.apiUrl, ItemGroupsView = _a.ItemGroupsView, ItemGroupView = _a.ItemGroupView, ItemOptionView = _a.ItemOptionView, SuccessMessageView = _a.SuccessMessageView, ErrorMessageView = _a.ErrorMessageView;
11
10
  var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.option, modalContentConfig = _b.modalContent;
12
- var handlersOption = tslib_1.__assign(tslib_1.__assign({}, handlers), { close: close });
11
+ var handlersOption = (0, react_1.useMemo)(function () { return (tslib_1.__assign(tslib_1.__assign({}, handlers), { close: close })); }, [handlers, close]);
12
+ var renderItemGroups = (0, react_1.useCallback)(function (excludeSize) {
13
+ if (!option || !levels)
14
+ return react_1.default.createElement(react_1.default.Fragment, null);
15
+ return (react_1.default.createElement(ItemGroups_1.default, { levels: levels, handlers: handlersOption, groups: option.groups, excludeSize: excludeSize, apiUrl: apiUrl, children: ItemGroupsView, ItemGroupView: ItemGroupView, ItemOptionView: ItemOptionView, SuccessMessageView: SuccessMessageView, ErrorMessageView: ErrorMessageView }));
16
+ }, [
17
+ levels,
18
+ option,
19
+ handlersOption,
20
+ ItemGroupsView,
21
+ ItemGroupView,
22
+ ItemOptionView,
23
+ SuccessMessageView,
24
+ ErrorMessageView,
25
+ apiUrl
26
+ ]);
13
27
  if (!config || !option || !levels)
14
28
  return null;
15
- var renderItemGroups = function (excludeSize) { return (react_1.default.createElement(ItemGroups_1.default, { levels: levels, handlers: handlersOption, groups: option.groups, excludeSize: excludeSize, children: ui_1.ItemGroups, apiUrl: apiUrl })); };
16
29
  return children({
17
30
  config: config,
18
31
  handlers: handlersOption,
@@ -1,10 +1,11 @@
1
1
  import { Order } from '@open-tender/types';
2
- import { OrderCardProps } from '@open-tender/ui';
2
+ import { ErrorMessageProps, OrderCardProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const OrderCard: ({ order, navigate, children, apiUrl }: {
4
+ declare const OrderCard: ({ order, navigate, children, apiUrl, ErrorMessageView }: {
5
5
  order: Order;
6
6
  navigate: (route: string) => void;
7
7
  children: (props: OrderCardProps) => ReactNode;
8
8
  apiUrl: string;
9
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
9
10
  }) => React.ReactNode;
10
11
  export default OrderCard;
@@ -1,14 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var hooks_2 = require("../hooks");
8
7
  var slices_1 = require("../slices");
9
8
  var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
10
9
  var OrderCard = function (_a) {
11
- var order = _a.order, navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl;
10
+ var order = _a.order, navigate = _a.navigate, children = _a.children, apiUrl = _a.apiUrl, ErrorMessageView = _a.ErrorMessageView;
12
11
  var dispatch = (0, hooks_1.useAppDispatch)();
13
12
  var _b = (0, react_1.useState)(null), errMsg = _b[0], setErrMsg = _b[1];
14
13
  var _c = (0, react_1.useState)(false), isReordering = _c[0], setIsReordering = _c[1];
@@ -17,7 +16,7 @@ var OrderCard = function (_a) {
17
16
  var isLoading = loading === 'pending';
18
17
  var _f = (0, hooks_2.useOrder)(order), itemImages = _f.itemImages, itemNames = _f.itemNames, orderNo = _f.orderNo, title = _f.title, subtitle = _f.subtitle;
19
18
  var view = function () {
20
- dispatch((0, slices_1.openModal)({ type: 'ORDER_DETAILS', args: { order: order } }));
19
+ return;
21
20
  };
22
21
  var reorder = function () {
23
22
  setErrMsg(null);
@@ -36,7 +35,7 @@ var OrderCard = function (_a) {
36
35
  }
37
36
  }
38
37
  }, [isLoading, isReordering, error, navigate]);
39
- var renderErrorMessage = function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ui_1.ErrorMessage })); };
38
+ var renderErrorMessage = (0, react_1.useCallback)(function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ErrorMessageView })); }, [ErrorMessageView]);
40
39
  if (!config)
41
40
  return null;
42
41
  return children({
@@ -1,11 +1,12 @@
1
1
  import { OrderItem } from '@open-tender/types';
2
- import { PointsRewardProps } from '@open-tender/ui';
2
+ import { PointsRewardProps, QuantityProps } from '@open-tender/ui';
3
3
  import React, { ReactNode } from 'react';
4
- declare const PointsReward: ({ item, callback, children, apiUrl }: {
4
+ declare const PointsReward: ({ item, callback, children, apiUrl, QuantityView }: {
5
5
  item: OrderItem;
6
6
  callback?: () => void;
7
7
  isLast?: boolean;
8
8
  children: (props: PointsRewardProps) => ReactNode;
9
9
  apiUrl: string;
10
+ QuantityView: (props: QuantityProps) => ReactNode;
10
11
  }) => React.ReactNode;
11
12
  export default PointsReward;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var react_1 = tslib_1.__importDefault(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var hooks_2 = require("../hooks");
@@ -9,7 +8,7 @@ var slices_1 = require("../slices");
9
8
  var Quantity_1 = tslib_1.__importDefault(require("./Quantity"));
10
9
  var PointsReward = function (_a) {
11
10
  var _b;
12
- var item = _a.item, callback = _a.callback, children = _a.children, apiUrl = _a.apiUrl;
11
+ var item = _a.item, callback = _a.callback, children = _a.children, apiUrl = _a.apiUrl, QuantityView = _a.QuantityView;
13
12
  var dispatch = (0, hooks_1.useAppDispatch)();
14
13
  var _c = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _c.pointsReward, successMessageConfig = _c.successMessage, cardConfig = _c.card;
15
14
  var checkPoints = (0, hooks_1.useAppSelector)(slices_1.selectPosCheckout).points;
@@ -48,7 +47,7 @@ var PointsReward = function (_a) {
48
47
  if (callback)
49
48
  callback();
50
49
  };
51
- var renderQuantity = function (quantity, incrementDisabled) { return (react_1.default.createElement(Quantity_1.default, { quantity: quantity, increment: apply, incrementDisabled: incrementDisabled, decrement: remove, fontSize: 24, iconSize: 28, children: ui_1.Quantity })); };
50
+ var renderQuantity = function (quantity, incrementDisabled) { return (react_1.default.createElement(Quantity_1.default, { quantity: quantity, increment: apply, incrementDisabled: incrementDisabled, decrement: remove, fontSize: 24, iconSize: 28, children: QuantityView })); };
52
51
  return children({
53
52
  config: config,
54
53
  item: item,
@@ -1,7 +1,9 @@
1
- import { PointsRewardsProps } from '@open-tender/ui';
1
+ import { PointsRewardProps, PointsRewardsProps, QuantityProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const PointsRewards: ({ children, apiUrl }: {
3
+ declare const PointsRewards: ({ children, apiUrl, PointsRewardView, QuantityView }: {
4
4
  children: (props: PointsRewardsProps) => ReactNode;
5
5
  apiUrl: string;
6
+ PointsRewardView: (props: PointsRewardProps) => ReactNode;
7
+ QuantityView: (props: QuantityProps) => ReactNode;
6
8
  }) => React.ReactNode;
7
9
  export default PointsRewards;
@@ -1,17 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
- var react_1 = tslib_1.__importDefault(require("react"));
4
+ var react_1 = tslib_1.__importStar(require("react"));
6
5
  var hooks_1 = require("../app/hooks");
7
6
  var hooks_2 = require("../hooks");
8
7
  var slices_1 = require("../slices");
9
8
  var PointsReward_1 = tslib_1.__importDefault(require("./PointsReward"));
10
9
  var PointsRewards = function (_a) {
11
- var children = _a.children, apiUrl = _a.apiUrl;
10
+ var children = _a.children, apiUrl = _a.apiUrl, PointsRewardView = _a.PointsRewardView, QuantityView = _a.QuantityView;
12
11
  var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).pointsRewards;
13
12
  var _b = (0, hooks_2.useCustomerRewards)(), items = _b.items, points = _b.points, pointsApplied = _b.pointsApplied, pointsRemaining = _b.pointsRemaining;
14
- var renderPointReward = function (item) { return (react_1.default.createElement(PointsReward_1.default, { apiUrl: apiUrl, item: item, children: ui_1.PointsReward })); };
13
+ var renderPointReward = (0, react_1.useCallback)(function (item) { return (react_1.default.createElement(PointsReward_1.default, { apiUrl: apiUrl, item: item, children: PointsRewardView, QuantityView: QuantityView })); }, [apiUrl, PointsRewardView, QuantityView]);
15
14
  return children({
16
15
  config: config,
17
16
  items: items,
@@ -1,7 +1,9 @@
1
- import { PromoCodeProps } from '@open-tender/ui';
1
+ import { ErrorMessageProps, InputProps, PromoCodeProps } from '@open-tender/ui';
2
2
  import React, { ReactNode } from 'react';
3
- declare const PromoCode: ({ close, children }: {
3
+ declare const PromoCode: ({ close, children, InputView, ErrorMessageView }: {
4
4
  close: () => void;
5
5
  children: (props: PromoCodeProps) => ReactNode;
6
+ InputView: (props: InputProps) => ReactNode;
7
+ ErrorMessageView: (props: ErrorMessageProps) => ReactNode;
6
8
  }) => React.ReactNode;
7
9
  export default PromoCode;
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  var tslib_1 = require("tslib");
4
- var ui_1 = require("@open-tender/ui");
5
4
  var utils_1 = require("@open-tender/utils");
6
5
  var react_1 = tslib_1.__importStar(require("react"));
7
6
  var hooks_1 = require("../app/hooks");
@@ -9,7 +8,7 @@ var slices_1 = require("../slices");
9
8
  var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
10
9
  var Input_1 = tslib_1.__importDefault(require("./Input"));
11
10
  var PromoCode = function (_a) {
12
- var close = _a.close, children = _a.children;
11
+ var close = _a.close, children = _a.children, InputView = _a.InputView, ErrorMessageView = _a.ErrorMessageView;
13
12
  var dispatch = (0, hooks_1.useAppDispatch)();
14
13
  var _b = (0, react_1.useState)(''), promoCode = _b[0], setPromoCode = _b[1];
15
14
  var _c = (0, react_1.useState)(false), submitted = _c[0], setSubmitted = _c[1];
@@ -17,9 +16,6 @@ var PromoCode = function (_a) {
17
16
  var _e = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _e.promoCode, modalContentConfig = _e.modalContent;
18
17
  var _f = (0, hooks_1.useAppSelector)(slices_1.selectOrder), loading = _f.loading, error = _f.error;
19
18
  var isLoading = loading === 'pending';
20
- var update = function (value) {
21
- setPromoCode(value);
22
- };
23
19
  var submit = function () {
24
20
  setSubmitted(true);
25
21
  dispatch((0, slices_1.addPromoCode)(promoCode));
@@ -37,8 +33,8 @@ var PromoCode = function (_a) {
37
33
  }
38
34
  }
39
35
  }, [submitted, isLoading, error, close]);
40
- var renderErrorMessage = function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ui_1.ErrorMessage })); };
41
- var renderInput = function (value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { setValue: update, value: value, isRequired: isRequired, style: style, children: ui_1.Input })); };
36
+ var renderErrorMessage = (0, react_1.useCallback)(function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ErrorMessageView })); }, [ErrorMessageView]);
37
+ var renderInput = (0, react_1.useCallback)(function (value, isRequired, style) { return (react_1.default.createElement(Input_1.default, { setValue: function (value) { return setPromoCode(value); }, value: value, isRequired: isRequired, style: style, children: InputView })); }, [InputView]);
42
38
  return children({
43
39
  config: config,
44
40
  handlers: handlers,