@open-tender/store 1.1.4 → 1.1.6

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 (276) hide show
  1. package/LICENSE.md +21 -21
  2. package/README.md +3 -3
  3. package/dist/cjs/components/Allergen.d.ts +8 -0
  4. package/dist/cjs/components/Allergen.js +11 -0
  5. package/dist/cjs/components/Applied.d.ts +6 -0
  6. package/dist/cjs/components/Applied.js +11 -0
  7. package/dist/cjs/components/ButtonLink.d.ts +9 -0
  8. package/dist/cjs/components/ButtonLink.js +11 -0
  9. package/dist/cjs/components/Card.d.ts +7 -0
  10. package/dist/cjs/components/Card.js +11 -0
  11. package/dist/cjs/components/Cart.d.ts +7 -0
  12. package/dist/cjs/components/Cart.js +41 -0
  13. package/dist/cjs/components/CartItem.d.ts +11 -0
  14. package/dist/cjs/components/CartItem.js +31 -0
  15. package/dist/cjs/components/CartUpsellItem.d.ts +10 -0
  16. package/dist/cjs/components/CartUpsellItem.js +25 -0
  17. package/dist/cjs/components/CartUpsells.d.ts +6 -0
  18. package/dist/cjs/components/CartUpsells.js +25 -0
  19. package/dist/cjs/components/CategoryItem.d.ts +11 -0
  20. package/dist/cjs/components/CategoryItem.js +28 -0
  21. package/dist/cjs/components/CategoryNav.d.ts +7 -0
  22. package/dist/cjs/components/CategoryNav.js +26 -0
  23. package/dist/cjs/components/CategoryNavItem.d.ts +9 -0
  24. package/dist/cjs/components/CategoryNavItem.js +27 -0
  25. package/dist/cjs/components/CategoryNavOther.d.ts +9 -0
  26. package/dist/cjs/components/CategoryNavOther.js +20 -0
  27. package/dist/cjs/components/CheckTotals.d.ts +8 -0
  28. package/dist/cjs/components/CheckTotals.js +11 -0
  29. package/dist/cjs/components/Discount.d.ts +8 -0
  30. package/dist/cjs/components/Discount.js +13 -0
  31. package/dist/cjs/components/ErrorMessage.d.ts +9 -0
  32. package/dist/cjs/components/ErrorMessage.js +11 -0
  33. package/dist/cjs/components/Header.d.ts +9 -0
  34. package/dist/cjs/components/Header.js +26 -0
  35. package/dist/cjs/components/Ingredients.d.ts +10 -0
  36. package/dist/cjs/components/Ingredients.js +12 -0
  37. package/dist/cjs/components/Input.d.ts +11 -0
  38. package/dist/cjs/components/Input.js +23 -0
  39. package/dist/cjs/components/ItemGroup.d.ts +9 -0
  40. package/dist/cjs/components/ItemGroup.js +19 -0
  41. package/dist/cjs/components/ItemGroups.d.ts +11 -0
  42. package/dist/cjs/components/ItemGroups.js +25 -0
  43. package/dist/cjs/components/ItemOption.d.ts +11 -0
  44. package/dist/cjs/components/ItemOption.js +31 -0
  45. package/dist/cjs/components/ItemSelections.d.ts +11 -0
  46. package/dist/cjs/components/ItemSelections.js +23 -0
  47. package/dist/cjs/components/Label.d.ts +10 -0
  48. package/dist/cjs/components/Label.js +11 -0
  49. package/dist/cjs/components/Loader.d.ts +8 -0
  50. package/dist/cjs/components/Loader.js +11 -0
  51. package/dist/cjs/components/MadeForNotes.d.ts +14 -0
  52. package/dist/cjs/components/MadeForNotes.js +29 -0
  53. package/dist/cjs/components/MenuCategory.d.ts +3 -3
  54. package/dist/cjs/components/MenuCategory.js +7 -6
  55. package/dist/cjs/components/MenuOther.d.ts +12 -0
  56. package/dist/cjs/components/MenuOther.js +17 -0
  57. package/dist/cjs/components/Modal.d.ts +9 -0
  58. package/dist/cjs/components/Modal.js +17 -0
  59. package/dist/cjs/components/ModalContent.d.ts +14 -0
  60. package/dist/cjs/components/ModalContent.js +21 -0
  61. package/dist/cjs/components/ModalHeader.d.ts +8 -0
  62. package/dist/cjs/components/ModalHeader.js +11 -0
  63. package/dist/cjs/components/NutritionalInfo.d.ts +11 -0
  64. package/dist/cjs/components/NutritionalInfo.js +19 -0
  65. package/dist/cjs/components/Option.d.ts +11 -0
  66. package/dist/cjs/components/Option.js +24 -0
  67. package/dist/cjs/components/OrderCard.d.ts +9 -0
  68. package/dist/cjs/components/OrderCard.js +56 -0
  69. package/dist/cjs/components/PointsReward.d.ts +10 -0
  70. package/dist/cjs/components/PointsReward.js +62 -0
  71. package/dist/cjs/components/PointsRewards.d.ts +6 -0
  72. package/dist/cjs/components/PointsRewards.js +24 -0
  73. package/dist/cjs/components/PromoCode.d.ts +7 -0
  74. package/dist/cjs/components/PromoCode.js +52 -0
  75. package/dist/cjs/components/Quantity.d.ts +13 -0
  76. package/dist/cjs/components/Quantity.js +19 -0
  77. package/dist/cjs/components/Reward.d.ts +10 -0
  78. package/dist/cjs/components/Reward.js +39 -0
  79. package/dist/cjs/components/Rewards.d.ts +10 -0
  80. package/dist/cjs/components/Rewards.js +15 -0
  81. package/dist/cjs/components/SignIn.d.ts +11 -0
  82. package/dist/cjs/components/SignIn.js +37 -0
  83. package/dist/cjs/components/SignInButton.d.ts +8 -0
  84. package/dist/cjs/components/SignInButton.js +41 -0
  85. package/dist/cjs/components/SignInCheckout.d.ts +9 -0
  86. package/dist/cjs/components/SignInCheckout.js +38 -0
  87. package/dist/cjs/components/SignInOptions.d.ts +7 -0
  88. package/dist/cjs/components/SignInOptions.js +28 -0
  89. package/dist/cjs/components/SignInPhone.d.ts +7 -0
  90. package/dist/cjs/components/SignInPhone.js +59 -0
  91. package/dist/cjs/components/SignInQr.d.ts +7 -0
  92. package/dist/cjs/components/SignInQr.js +61 -0
  93. package/dist/cjs/components/SuccessMessage.d.ts +9 -0
  94. package/dist/cjs/components/SuccessMessage.js +10 -0
  95. package/dist/cjs/components/Tag.d.ts +8 -0
  96. package/dist/cjs/components/Tag.js +10 -0
  97. package/dist/cjs/components/TextArea.d.ts +11 -0
  98. package/dist/cjs/components/TextArea.js +22 -0
  99. package/dist/cjs/components/UpsellItem.d.ts +10 -0
  100. package/dist/cjs/components/UpsellItem.js +24 -0
  101. package/dist/cjs/components/Upsells.d.ts +8 -0
  102. package/dist/cjs/components/Upsells.js +25 -0
  103. package/dist/cjs/components/index.d.ts +48 -1
  104. package/dist/cjs/components/index.js +95 -1
  105. package/dist/cjs/config/index.js +1 -1
  106. package/dist/cjs/hooks/useBarcode.js +1 -1
  107. package/dist/cjs/hooks/useChipDNATender/useChipDNATender.js +1 -1
  108. package/dist/cjs/hooks/useEmployee.js +8 -4
  109. package/dist/cjs/hooks/useGiftCardBalance.js +1 -1
  110. package/dist/cjs/hooks/useOrderValidate.js +1 -1
  111. package/dist/cjs/hooks/usePunch.js +1 -1
  112. package/dist/cjs/slices/alerts.js +1 -1
  113. package/dist/cjs/slices/arrivals.js +32 -36
  114. package/dist/cjs/slices/checkout.d.ts +1 -1
  115. package/dist/cjs/slices/checkout.js +329 -351
  116. package/dist/cjs/slices/config.js +79 -81
  117. package/dist/cjs/slices/customer.js +17 -19
  118. package/dist/cjs/slices/customerIdentify.js +16 -18
  119. package/dist/cjs/slices/deals.js +16 -18
  120. package/dist/cjs/slices/discounts.js +19 -21
  121. package/dist/cjs/slices/errorAlerts.d.ts +1 -1
  122. package/dist/cjs/slices/errorAlerts.js +34 -38
  123. package/dist/cjs/slices/kds.js +253 -275
  124. package/dist/cjs/slices/kiosk.d.ts +1 -1
  125. package/dist/cjs/slices/kiosk.js +50 -52
  126. package/dist/cjs/slices/menu.js +24 -26
  127. package/dist/cjs/slices/menuPages.js +16 -18
  128. package/dist/cjs/slices/notifications.js +1 -1
  129. package/dist/cjs/slices/offlineAuths.js +32 -36
  130. package/dist/cjs/slices/order.js +25 -27
  131. package/dist/cjs/slices/pos.js +59 -65
  132. package/dist/cjs/slices/punches.d.ts +1 -1
  133. package/dist/cjs/slices/punches.js +16 -18
  134. package/dist/cjs/slices/refund.js +54 -60
  135. package/dist/cjs/slices/settings.js +56 -62
  136. package/dist/cjs/slices/surcharges.js +19 -21
  137. package/dist/cjs/slices/taxes.js +19 -21
  138. package/dist/cjs/utils/punches.js +1 -1
  139. package/dist/esm/components/Allergen.d.ts +8 -0
  140. package/dist/esm/components/Allergen.js +9 -0
  141. package/dist/esm/components/Applied.d.ts +6 -0
  142. package/dist/esm/components/Applied.js +9 -0
  143. package/dist/esm/components/ButtonLink.d.ts +9 -0
  144. package/dist/esm/components/ButtonLink.js +9 -0
  145. package/dist/esm/components/Card.d.ts +7 -0
  146. package/dist/esm/components/Card.js +9 -0
  147. package/dist/esm/components/Cart.d.ts +7 -0
  148. package/dist/esm/components/Cart.js +38 -0
  149. package/dist/esm/components/CartItem.d.ts +11 -0
  150. package/dist/esm/components/CartItem.js +28 -0
  151. package/dist/esm/components/CartUpsellItem.d.ts +10 -0
  152. package/dist/esm/components/CartUpsellItem.js +23 -0
  153. package/dist/esm/components/CartUpsells.d.ts +6 -0
  154. package/dist/esm/components/CartUpsells.js +22 -0
  155. package/dist/esm/components/CategoryItem.d.ts +11 -0
  156. package/dist/esm/components/CategoryItem.js +26 -0
  157. package/dist/esm/components/CategoryNav.d.ts +7 -0
  158. package/dist/esm/components/CategoryNav.js +23 -0
  159. package/dist/esm/components/CategoryNavItem.d.ts +9 -0
  160. package/dist/esm/components/CategoryNavItem.js +25 -0
  161. package/dist/esm/components/CategoryNavOther.d.ts +9 -0
  162. package/dist/esm/components/CategoryNavOther.js +18 -0
  163. package/dist/esm/components/CheckTotals.d.ts +8 -0
  164. package/dist/esm/components/CheckTotals.js +9 -0
  165. package/dist/esm/components/Discount.d.ts +8 -0
  166. package/dist/esm/components/Discount.js +11 -0
  167. package/dist/esm/components/ErrorMessage.d.ts +9 -0
  168. package/dist/esm/components/ErrorMessage.js +9 -0
  169. package/dist/esm/components/Header.d.ts +9 -0
  170. package/dist/esm/components/Header.js +23 -0
  171. package/dist/esm/components/Ingredients.d.ts +10 -0
  172. package/dist/esm/components/Ingredients.js +10 -0
  173. package/dist/esm/components/Input.d.ts +11 -0
  174. package/dist/esm/components/Input.js +21 -0
  175. package/dist/esm/components/ItemGroup.d.ts +9 -0
  176. package/dist/esm/components/ItemGroup.js +17 -0
  177. package/dist/esm/components/ItemGroups.d.ts +11 -0
  178. package/dist/esm/components/ItemGroups.js +22 -0
  179. package/dist/esm/components/ItemOption.d.ts +11 -0
  180. package/dist/esm/components/ItemOption.js +29 -0
  181. package/dist/esm/components/ItemSelections.d.ts +11 -0
  182. package/dist/esm/components/ItemSelections.js +20 -0
  183. package/dist/esm/components/Label.d.ts +10 -0
  184. package/dist/esm/components/Label.js +9 -0
  185. package/dist/esm/components/Loader.d.ts +8 -0
  186. package/dist/esm/components/Loader.js +9 -0
  187. package/dist/esm/components/MadeForNotes.d.ts +14 -0
  188. package/dist/esm/components/MadeForNotes.js +26 -0
  189. package/dist/esm/components/MenuCategory.d.ts +3 -3
  190. package/dist/esm/components/MenuCategory.js +3 -2
  191. package/dist/esm/components/MenuOther.d.ts +12 -0
  192. package/dist/esm/components/MenuOther.js +15 -0
  193. package/dist/esm/components/Modal.d.ts +9 -0
  194. package/dist/esm/components/Modal.js +14 -0
  195. package/dist/esm/components/ModalContent.d.ts +14 -0
  196. package/dist/esm/components/ModalContent.js +19 -0
  197. package/dist/esm/components/ModalHeader.d.ts +8 -0
  198. package/dist/esm/components/ModalHeader.js +9 -0
  199. package/dist/esm/components/NutritionalInfo.d.ts +11 -0
  200. package/dist/esm/components/NutritionalInfo.js +17 -0
  201. package/dist/esm/components/Option.d.ts +11 -0
  202. package/dist/esm/components/Option.js +22 -0
  203. package/dist/esm/components/OrderCard.d.ts +9 -0
  204. package/dist/esm/components/OrderCard.js +53 -0
  205. package/dist/esm/components/PointsReward.d.ts +10 -0
  206. package/dist/esm/components/PointsReward.js +60 -0
  207. package/dist/esm/components/PointsRewards.d.ts +6 -0
  208. package/dist/esm/components/PointsRewards.js +21 -0
  209. package/dist/esm/components/PromoCode.d.ts +7 -0
  210. package/dist/esm/components/PromoCode.js +49 -0
  211. package/dist/esm/components/Quantity.d.ts +13 -0
  212. package/dist/esm/components/Quantity.js +17 -0
  213. package/dist/esm/components/Reward.d.ts +10 -0
  214. package/dist/esm/components/Reward.js +36 -0
  215. package/dist/esm/components/Rewards.d.ts +10 -0
  216. package/dist/esm/components/Rewards.js +12 -0
  217. package/dist/esm/components/SignIn.d.ts +11 -0
  218. package/dist/esm/components/SignIn.js +35 -0
  219. package/dist/esm/components/SignInButton.d.ts +8 -0
  220. package/dist/esm/components/SignInButton.js +39 -0
  221. package/dist/esm/components/SignInCheckout.d.ts +9 -0
  222. package/dist/esm/components/SignInCheckout.js +36 -0
  223. package/dist/esm/components/SignInOptions.d.ts +7 -0
  224. package/dist/esm/components/SignInOptions.js +25 -0
  225. package/dist/esm/components/SignInPhone.d.ts +7 -0
  226. package/dist/esm/components/SignInPhone.js +56 -0
  227. package/dist/esm/components/SignInQr.d.ts +7 -0
  228. package/dist/esm/components/SignInQr.js +59 -0
  229. package/dist/esm/components/SuccessMessage.d.ts +9 -0
  230. package/dist/esm/components/SuccessMessage.js +8 -0
  231. package/dist/esm/components/Tag.d.ts +8 -0
  232. package/dist/esm/components/Tag.js +8 -0
  233. package/dist/esm/components/TextArea.d.ts +11 -0
  234. package/dist/esm/components/TextArea.js +20 -0
  235. package/dist/esm/components/UpsellItem.d.ts +10 -0
  236. package/dist/esm/components/UpsellItem.js +22 -0
  237. package/dist/esm/components/Upsells.d.ts +8 -0
  238. package/dist/esm/components/Upsells.js +22 -0
  239. package/dist/esm/components/index.d.ts +48 -1
  240. package/dist/esm/components/index.js +48 -1
  241. package/dist/esm/config/index.js +1 -1
  242. package/dist/esm/hooks/useBarcode.js +1 -1
  243. package/dist/esm/hooks/useChipDNATender/useChipDNATender.js +1 -1
  244. package/dist/esm/hooks/useEmployee.js +9 -5
  245. package/dist/esm/hooks/useGiftCardBalance.js +1 -1
  246. package/dist/esm/hooks/useOrderValidate.js +1 -1
  247. package/dist/esm/hooks/usePunch.js +1 -1
  248. package/dist/esm/slices/alerts.js +1 -1
  249. package/dist/esm/slices/arrivals.js +32 -36
  250. package/dist/esm/slices/checkout.d.ts +1 -1
  251. package/dist/esm/slices/checkout.js +329 -351
  252. package/dist/esm/slices/config.js +79 -81
  253. package/dist/esm/slices/customer.js +17 -19
  254. package/dist/esm/slices/customerIdentify.js +16 -18
  255. package/dist/esm/slices/deals.js +16 -18
  256. package/dist/esm/slices/discounts.js +19 -21
  257. package/dist/esm/slices/errorAlerts.d.ts +1 -1
  258. package/dist/esm/slices/errorAlerts.js +34 -38
  259. package/dist/esm/slices/kds.js +253 -275
  260. package/dist/esm/slices/kiosk.d.ts +1 -1
  261. package/dist/esm/slices/kiosk.js +50 -52
  262. package/dist/esm/slices/menu.js +24 -26
  263. package/dist/esm/slices/menuPages.js +16 -18
  264. package/dist/esm/slices/notifications.js +1 -1
  265. package/dist/esm/slices/offlineAuths.js +32 -36
  266. package/dist/esm/slices/order.js +25 -27
  267. package/dist/esm/slices/pos.js +59 -65
  268. package/dist/esm/slices/punches.d.ts +1 -1
  269. package/dist/esm/slices/punches.js +16 -18
  270. package/dist/esm/slices/refund.js +54 -60
  271. package/dist/esm/slices/settings.js +56 -62
  272. package/dist/esm/slices/surcharges.js +19 -21
  273. package/dist/esm/slices/taxes.js +19 -21
  274. package/dist/esm/utils/punches.js +1 -1
  275. package/package.json +82 -75
  276. package/dist/.DS_Store +0 -0
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var hooks_1 = require("../app/hooks");
7
+ var hooks_2 = require("../hooks");
8
+ var slices_1 = require("../slices");
9
+ var PointsReward_1 = tslib_1.__importDefault(require("./PointsReward"));
10
+ var PointsRewards = function (_a) {
11
+ var _b = _a.children, children = _b === void 0 ? ui_1.PointsRewards : _b;
12
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).pointsRewards;
13
+ var _c = (0, hooks_2.useCustomerRewards)(), items = _c.items, points = _c.points, pointsApplied = _c.pointsApplied, pointsRemaining = _c.pointsRemaining;
14
+ var renderPointReward = function (item) { return (react_1.default.createElement(PointsReward_1.default, { item: item, children: ui_1.PointsReward })); };
15
+ return children({
16
+ config: config,
17
+ items: items,
18
+ points: points,
19
+ pointsApplied: pointsApplied,
20
+ pointsRemaining: pointsRemaining,
21
+ renderPointReward: renderPointReward
22
+ });
23
+ };
24
+ exports.default = PointsRewards;
@@ -0,0 +1,7 @@
1
+ import { PromoCodeProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const PromoCode: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: PromoCodeProps) => ReactNode;
6
+ }) => React.ReactNode;
7
+ export default PromoCode;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var utils_1 = require("@open-tender/utils");
6
+ var react_1 = tslib_1.__importStar(require("react"));
7
+ var hooks_1 = require("../app/hooks");
8
+ var slices_1 = require("../slices");
9
+ var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
10
+ var Input_1 = tslib_1.__importDefault(require("./Input"));
11
+ var PromoCode = function (_a) {
12
+ var close = _a.close, children = _a.children;
13
+ var dispatch = (0, hooks_1.useAppDispatch)();
14
+ var _b = (0, react_1.useState)(''), promoCode = _b[0], setPromoCode = _b[1];
15
+ var _c = (0, react_1.useState)(false), submitted = _c[0], setSubmitted = _c[1];
16
+ var _d = (0, react_1.useState)(null), errMsg = _d[0], setErrMsg = _d[1];
17
+ var _e = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _e.promoCode, modalContentConfig = _e.modalContent;
18
+ var _f = (0, hooks_1.useAppSelector)(slices_1.selectOrder), loading = _f.loading, error = _f.error;
19
+ var isLoading = loading === 'pending';
20
+ var update = function (value) {
21
+ setPromoCode(value);
22
+ };
23
+ var submit = function () {
24
+ setSubmitted(true);
25
+ dispatch((0, slices_1.addPromoCode)(promoCode));
26
+ };
27
+ var handlers = { submit: submit, close: close };
28
+ (0, react_1.useEffect)(function () {
29
+ if (submitted && !isLoading) {
30
+ setSubmitted(false);
31
+ if (error) {
32
+ var detail = (0, utils_1.handleRespError)(error).detail;
33
+ setErrMsg(detail || 'Something went wrong');
34
+ }
35
+ else {
36
+ close();
37
+ }
38
+ }
39
+ }, [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 })); };
42
+ return children({
43
+ config: config,
44
+ handlers: handlers,
45
+ promoCode: promoCode,
46
+ errMsg: errMsg,
47
+ renderErrorMessage: renderErrorMessage,
48
+ modalContentConfig: modalContentConfig,
49
+ renderInput: renderInput
50
+ });
51
+ };
52
+ exports.default = PromoCode;
@@ -0,0 +1,13 @@
1
+ import { QuantityProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const Quantity: ({ quantity, increment, incrementDisabled, decrement, decrementDisabled, fontSize, iconSize, children }: {
4
+ quantity: number;
5
+ increment: () => void;
6
+ incrementDisabled?: boolean;
7
+ decrement: () => void;
8
+ decrementDisabled?: boolean;
9
+ fontSize?: number;
10
+ iconSize?: number;
11
+ children: (props: QuantityProps) => ReactNode;
12
+ }) => ReactNode;
13
+ export default Quantity;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hooks_1 = require("../app/hooks");
4
+ var slices_1 = require("../slices");
5
+ var Quantity = function (_a) {
6
+ var quantity = _a.quantity, increment = _a.increment, _b = _a.incrementDisabled, incrementDisabled = _b === void 0 ? false : _b, decrement = _a.decrement, _c = _a.decrementDisabled, decrementDisabled = _c === void 0 ? false : _c, _d = _a.fontSize, fontSize = _d === void 0 ? 28 : _d, _e = _a.iconSize, iconSize = _e === void 0 ? 36 : _e, children = _a.children;
7
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).quantity;
8
+ var handlers = { increment: increment, decrement: decrement };
9
+ return children({
10
+ config: config,
11
+ handlers: handlers,
12
+ quantity: quantity,
13
+ incrementDisabled: incrementDisabled,
14
+ decrementDisabled: decrementDisabled,
15
+ fontSize: fontSize,
16
+ iconSize: iconSize
17
+ });
18
+ };
19
+ exports.default = Quantity;
@@ -0,0 +1,10 @@
1
+ import { Discount } from '@open-tender/types';
2
+ import { RewardProps } from '@open-tender/ui';
3
+ import React, { ReactNode } from 'react';
4
+ declare const Reward: ({ reward, callback, isLast, children }: {
5
+ reward: Discount;
6
+ callback?: () => void;
7
+ isLast?: boolean;
8
+ children: (props: RewardProps) => ReactNode;
9
+ }) => React.ReactNode;
10
+ export default Reward;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var hooks_1 = require("../app/hooks");
7
+ var slices_1 = require("../slices");
8
+ var Applied_1 = tslib_1.__importDefault(require("./Applied"));
9
+ var Reward = function (_a) {
10
+ var reward = _a.reward, callback = _a.callback, isLast = _a.isLast, children = _a.children;
11
+ var dispatch = (0, hooks_1.useAppDispatch)();
12
+ var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.reward, cardConfig = _b.card;
13
+ var check = (0, hooks_1.useAppSelector)(slices_1.selectPosCheckout).check;
14
+ var discountIds = check === null || check === void 0 ? void 0 : check.discounts.map(function (i) { return i.id; });
15
+ var id = reward.discount_id;
16
+ var isApplied = !!(discountIds === null || discountIds === void 0 ? void 0 : discountIds.includes(id));
17
+ var apply = function () {
18
+ dispatch((0, slices_1.addDiscount)({ id: id }));
19
+ if (callback)
20
+ callback();
21
+ };
22
+ var remove = function () {
23
+ dispatch((0, slices_1.removeDiscount)({ id: id }));
24
+ if (callback)
25
+ callback();
26
+ };
27
+ var handlers = { apply: apply, remove: remove };
28
+ var renderApplied = function () { return react_1.default.createElement(Applied_1.default, { children: ui_1.Applied }); };
29
+ return children({
30
+ config: config,
31
+ handlers: handlers,
32
+ reward: reward,
33
+ isApplied: isApplied,
34
+ isLast: isLast,
35
+ cardConfig: cardConfig,
36
+ renderApplied: renderApplied
37
+ });
38
+ };
39
+ exports.default = Reward;
@@ -0,0 +1,10 @@
1
+ import { Discounts } from '@open-tender/types';
2
+ import { RewardsProps } from '@open-tender/ui';
3
+ import React, { ReactNode } from 'react';
4
+ declare const Rewards: ({ title, subtitle, rewards, children }: {
5
+ title: string;
6
+ subtitle?: string;
7
+ rewards: Discounts;
8
+ children: (props: RewardsProps) => ReactNode;
9
+ }) => React.ReactNode;
10
+ export default Rewards;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var react_1 = tslib_1.__importDefault(require("react"));
6
+ var hooks_1 = require("../app/hooks");
7
+ var slices_1 = require("../slices");
8
+ var Reward_1 = tslib_1.__importDefault(require("./Reward"));
9
+ var Rewards = function (_a) {
10
+ var title = _a.title, subtitle = _a.subtitle, rewards = _a.rewards, children = _a.children;
11
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).rewards;
12
+ var renderReward = function (reward, isLast) { return (react_1.default.createElement(Reward_1.default, { reward: reward, isLast: isLast, children: ui_1.Reward })); };
13
+ return children({ config: config, title: title, subtitle: subtitle, rewards: rewards, renderReward: renderReward });
14
+ };
15
+ exports.default = Rewards;
@@ -0,0 +1,11 @@
1
+ import { KioskSignInType } from '@open-tender/types';
2
+ import { SignInProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const SignIn: ({ setSignInType, greeting, punctuation, navigate, children }: {
5
+ setSignInType: (signInType: KioskSignInType) => void;
6
+ greeting?: string;
7
+ punctuation?: string;
8
+ navigate: (route: string) => void;
9
+ children: (props: SignInProps) => ReactNode;
10
+ }) => ReactNode;
11
+ export default SignIn;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var hooks_1 = require("../app/hooks");
5
+ var slices_1 = require("../slices");
6
+ var endpoints = [
7
+ 'ACCOUNT',
8
+ 'DEALS',
9
+ 'FAVORITES',
10
+ 'ORDERS',
11
+ 'GIFT_CARDS',
12
+ 'LOYALTY',
13
+ 'REWARDS'
14
+ ];
15
+ var SignIn = function (_a) {
16
+ var setSignInType = _a.setSignInType, _b = _a.greeting, greeting = _b === void 0 ? 'Hi there' : _b, _c = _a.punctuation, punctuation = _c === void 0 ? '!' : _c, navigate = _a.navigate, children = _a.children;
17
+ var dispatch = (0, hooks_1.useAppDispatch)();
18
+ var _d = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _d.signIn, buttonLinkConfig = _d.buttonLink;
19
+ var customer = ((0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentified) || {}).customer;
20
+ var _e = customer || {}, customerId = _e.customer_id, first_name = _e.first_name;
21
+ var msg = customer ? "".concat(greeting, ", ").concat(first_name).concat(punctuation) : null;
22
+ var signOut = function () {
23
+ dispatch((0, slices_1.resetCustomerIdentify)());
24
+ dispatch((0, slices_1.resetCustomer)());
25
+ dispatch((0, slices_1.resetMenu)());
26
+ setSignInType(null);
27
+ };
28
+ var goToAccount = function () { return navigate('/account'); };
29
+ var handlers = { goToAccount: goToAccount, setSignInType: setSignInType, signOut: signOut };
30
+ (0, react_1.useEffect)(function () {
31
+ if (customerId) {
32
+ dispatch((0, slices_1.fetchCustomer)({ customerId: customerId, endpoints: endpoints }));
33
+ }
34
+ }, [dispatch, customerId]);
35
+ return children({ config: config, handlers: handlers, msg: msg, buttonLinkConfig: buttonLinkConfig });
36
+ };
37
+ exports.default = SignIn;
@@ -0,0 +1,8 @@
1
+ import { SignInButtonProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const SignInButton: ({ navigate, children, pathname }: {
4
+ pathname: string;
5
+ navigate: (route: string) => void;
6
+ children: (props: SignInButtonProps) => ReactNode;
7
+ }) => ReactNode;
8
+ export default SignInButton;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var hooks_1 = require("../app/hooks");
5
+ var slices_1 = require("../slices");
6
+ var endpoints = [
7
+ 'ACCOUNT',
8
+ 'DEALS',
9
+ 'FAVORITES',
10
+ 'ORDERS',
11
+ 'GIFT_CARDS',
12
+ 'LOYALTY',
13
+ 'REWARDS'
14
+ ];
15
+ var SignInButton = function (_a) {
16
+ var navigate = _a.navigate, children = _a.children, pathname = _a.pathname;
17
+ var dispatch = (0, hooks_1.useAppDispatch)();
18
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).signInButton;
19
+ var customer = ((0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentified) || {}).customer;
20
+ var customerId = (customer || {}).customer_id;
21
+ var isAccount = pathname.includes('account');
22
+ var signIn = function () {
23
+ dispatch((0, slices_1.openModal)({ type: 'SIGN_IN' }));
24
+ };
25
+ var signOut = function () {
26
+ dispatch((0, slices_1.resetCustomerIdentify)());
27
+ dispatch((0, slices_1.resetCustomer)());
28
+ dispatch((0, slices_1.resetMenu)());
29
+ };
30
+ var goToAccount = function () { return navigate('/account'); };
31
+ var handlers = { signIn: signIn, signOut: signOut, goToAccount: goToAccount };
32
+ (0, react_1.useEffect)(function () {
33
+ if (customerId) {
34
+ dispatch((0, slices_1.fetchCustomer)({ customerId: customerId, endpoints: endpoints }));
35
+ }
36
+ }, [dispatch, customerId]);
37
+ if (!config)
38
+ return null;
39
+ return children({ config: config, handlers: handlers, customer: customer, isAccount: isAccount });
40
+ };
41
+ exports.default = SignInButton;
@@ -0,0 +1,9 @@
1
+ import { KioskSignInType } from '@open-tender/types';
2
+ import { SignInCheckoutProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const SignInCheckout: ({ setSignInType, navigate, children }: {
5
+ setSignInType: (signInType: KioskSignInType) => void;
6
+ navigate: (route: string) => void;
7
+ children: (props: SignInCheckoutProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default SignInCheckout;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var react_1 = require("react");
4
+ var hooks_1 = require("../app/hooks");
5
+ var slices_1 = require("../slices");
6
+ var endpoints = [
7
+ 'ACCOUNT',
8
+ 'DEALS',
9
+ 'FAVORITES',
10
+ 'ORDERS',
11
+ 'GIFT_CARDS',
12
+ 'LOYALTY',
13
+ 'REWARDS'
14
+ ];
15
+ var SignInCheckout = function (_a) {
16
+ var setSignInType = _a.setSignInType, navigate = _a.navigate, children = _a.children;
17
+ var dispatch = (0, hooks_1.useAppDispatch)();
18
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).signInCheckout;
19
+ var customer = (0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentified);
20
+ var customerId = ((customer === null || customer === void 0 ? void 0 : customer.customer) || {}).customer_id;
21
+ var signOut = function () {
22
+ dispatch((0, slices_1.resetCustomerIdentify)());
23
+ dispatch((0, slices_1.resetCustomer)());
24
+ dispatch((0, slices_1.resetMenu)());
25
+ setSignInType(null);
26
+ };
27
+ var goToAccount = function () { return navigate('/account'); };
28
+ var handlers = { setSignInType: setSignInType, goToAccount: goToAccount, signOut: signOut };
29
+ (0, react_1.useEffect)(function () {
30
+ if (customerId) {
31
+ dispatch((0, slices_1.fetchCustomer)({ customerId: customerId, endpoints: endpoints }));
32
+ }
33
+ }, [dispatch, customerId]);
34
+ if (!config)
35
+ return null;
36
+ return children({ config: config, handlers: handlers, customer: customer });
37
+ };
38
+ exports.default = SignInCheckout;
@@ -0,0 +1,7 @@
1
+ import { SignInOptionsProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const SignInOptions: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInOptionsProps) => ReactNode;
6
+ }) => React.ReactNode;
7
+ export default SignInOptions;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var react_1 = tslib_1.__importStar(require("react"));
6
+ var hooks_1 = require("../app/hooks");
7
+ var slices_1 = require("../slices");
8
+ var SignInPhone_1 = tslib_1.__importDefault(require("./SignInPhone"));
9
+ var SignInQr_1 = tslib_1.__importDefault(require("./SignInQr"));
10
+ var SignInOptions = function (_a) {
11
+ var close = _a.close, children = _a.children;
12
+ var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.signInOptions, modalContentConfig = _b.modalContent;
13
+ var _c = (0, react_1.useState)(null), signInType = _c[0], setSignInType = _c[1];
14
+ var handlers = { close: close, setSignInType: setSignInType };
15
+ var renderSignInQr = function (close) { return (react_1.default.createElement(SignInQr_1.default, { close: close, children: ui_1.SignInQr })); };
16
+ var renderSignInPhone = function (close) { return (react_1.default.createElement(SignInPhone_1.default, { close: close, children: ui_1.SignInPhone })); };
17
+ if (!config)
18
+ return null;
19
+ return children({
20
+ config: config,
21
+ handlers: handlers,
22
+ signInType: signInType,
23
+ modalContentConfig: modalContentConfig,
24
+ renderSignInQr: renderSignInQr,
25
+ renderSignInPhone: renderSignInPhone
26
+ });
27
+ };
28
+ exports.default = SignInOptions;
@@ -0,0 +1,7 @@
1
+ import { SignInPhoneProps } from '@open-tender/ui';
2
+ import React, { ReactNode } from 'react';
3
+ declare const SignInPhone: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInPhoneProps) => ReactNode;
6
+ }) => React.ReactNode;
7
+ export default SignInPhone;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var tslib_1 = require("tslib");
4
+ var ui_1 = require("@open-tender/ui");
5
+ var utils_1 = require("@open-tender/utils");
6
+ var react_1 = tslib_1.__importStar(require("react"));
7
+ var hooks_1 = require("../app/hooks");
8
+ var slices_1 = require("../slices");
9
+ var ErrorMessage_1 = tslib_1.__importDefault(require("./ErrorMessage"));
10
+ var Input_1 = tslib_1.__importDefault(require("./Input"));
11
+ var SignInPhone = function (_a) {
12
+ var close = _a.close, children = _a.children;
13
+ var dispatch = (0, hooks_1.useAppDispatch)();
14
+ var _b = (0, react_1.useState)(''), phone = _b[0], setPhone = _b[1];
15
+ var _c = (0, react_1.useState)(false), submitted = _c[0], setSubmitted = _c[1];
16
+ var _d = (0, react_1.useState)(null), errMsg = _d[0], setErrMsg = _d[1];
17
+ var _e = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _e.signInPhone, modalContentConfig = _e.modalContent;
18
+ var _f = (0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentify), customer = _f.data, loading = _f.loading, error = _f.error;
19
+ var hasCustomer = !!customer;
20
+ var isLoading = loading === 'pending';
21
+ var update = function (value) {
22
+ setPhone((0, utils_1.makePhone)(value));
23
+ };
24
+ var submit = function () {
25
+ setSubmitted(true);
26
+ dispatch((0, slices_1.fetchCustomerIdentify)({ phone: phone }));
27
+ };
28
+ var handlers = { submit: submit, close: close };
29
+ (0, react_1.useEffect)(function () {
30
+ if (submitted && !isLoading) {
31
+ if (error) {
32
+ var detail = (0, utils_1.handleRespError)(error).detail;
33
+ var errMsg_1 = (detail === null || detail === void 0 ? void 0 : detail.includes('does not exist'))
34
+ ? 'Phone number not recognized. Please try again.'
35
+ : detail;
36
+ setErrMsg(errMsg_1 || 'Something went wrong');
37
+ }
38
+ else {
39
+ close();
40
+ }
41
+ }
42
+ }, [submitted, isLoading, error, close]);
43
+ (0, react_1.useEffect)(function () {
44
+ if (hasCustomer)
45
+ close();
46
+ }, [hasCustomer, close]);
47
+ 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 })); };
48
+ var renderErrorMessage = function (errMsg) { return (react_1.default.createElement(ErrorMessage_1.default, { content: errMsg, children: ui_1.ErrorMessage })); };
49
+ return children({
50
+ config: config,
51
+ handlers: handlers,
52
+ phone: phone,
53
+ errMsg: errMsg,
54
+ modalContentConfig: modalContentConfig,
55
+ renderInput: renderInput,
56
+ renderErrorMessage: renderErrorMessage
57
+ });
58
+ };
59
+ exports.default = SignInPhone;
@@ -0,0 +1,7 @@
1
+ import { SignInQrProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const SignInQr: ({ close, children }: {
4
+ close: () => void;
5
+ children: (props: SignInQrProps) => ReactNode;
6
+ }) => ReactNode;
7
+ export default SignInQr;
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var utils_1 = require("@open-tender/utils");
4
+ var react_1 = require("react");
5
+ var hooks_1 = require("../app/hooks");
6
+ var hooks_2 = require("../hooks");
7
+ var slices_1 = require("../slices");
8
+ var SignInQr = function (_a) {
9
+ var close = _a.close, children = _a.children;
10
+ var dispatch = (0, hooks_1.useAppDispatch)();
11
+ var _b = (0, react_1.useState)(false), submitted = _b[0], setSubmitted = _b[1];
12
+ var _c = (0, react_1.useState)(false), hasRead = _c[0], setHasRead = _c[1];
13
+ var _d = (0, react_1.useState)(null), errMsg = _d[0], setErrMsg = _d[1];
14
+ var _e = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _e.signInQr, errorMessageConfig = _e.errorMessage, modalContentConfig = _e.modalContent;
15
+ var api = (0, hooks_1.useAppSelector)(slices_1.selectApi);
16
+ var scan = (0, hooks_2.useBarcode)(api);
17
+ var _f = (0, hooks_1.useAppSelector)(slices_1.selectCustomerIdentify), customer = _f.data, loading = _f.loading, error = _f.error;
18
+ var isLoading = loading === 'pending';
19
+ var cancel = function () {
20
+ if (!scan.code)
21
+ scan.cancel();
22
+ close();
23
+ };
24
+ var retry = function () {
25
+ setHasRead(false);
26
+ setErrMsg(null);
27
+ };
28
+ (0, react_1.useEffect)(function () {
29
+ if (scan.error) {
30
+ setErrMsg(scan.error);
31
+ }
32
+ else if (scan.code && !customer) {
33
+ dispatch((0, slices_1.fetchCustomerIdentify)({ qr_code: scan.code }));
34
+ setSubmitted(true);
35
+ }
36
+ else if (!hasRead) {
37
+ setHasRead(true);
38
+ scan.read();
39
+ }
40
+ }, [dispatch, scan, close, customer, hasRead]);
41
+ var handlers = { close: cancel, retry: retry };
42
+ (0, react_1.useEffect)(function () {
43
+ if (submitted && !isLoading) {
44
+ if (error) {
45
+ var detail = (0, utils_1.handleRespError)(error).detail;
46
+ setErrMsg(detail || 'Something went wrong');
47
+ }
48
+ else {
49
+ close();
50
+ }
51
+ }
52
+ }, [submitted, isLoading, error, close]);
53
+ return children({
54
+ config: config,
55
+ handlers: handlers,
56
+ errMsg: errMsg,
57
+ errorMessageConfig: errorMessageConfig,
58
+ modalContentConfig: modalContentConfig
59
+ });
60
+ };
61
+ exports.default = SignInQr;
@@ -0,0 +1,9 @@
1
+ import { Styles, SuccessMessageProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const SuccessMessage: ({ content, icon, style, children }: {
4
+ content: string;
5
+ icon?: ReactNode;
6
+ style?: Styles;
7
+ children: (props: SuccessMessageProps) => ReactNode;
8
+ }) => ReactNode;
9
+ export default SuccessMessage;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hooks_1 = require("../app/hooks");
4
+ var slices_1 = require("../slices");
5
+ var SuccessMessage = function (_a) {
6
+ var content = _a.content, icon = _a.icon, style = _a.style, children = _a.children;
7
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).successMessage;
8
+ return children({ config: config, icon: icon, style: style, children: content });
9
+ };
10
+ exports.default = SuccessMessage;
@@ -0,0 +1,8 @@
1
+ import { Tag as TagType } from '@open-tender/types';
2
+ import { TagProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const Tag: ({ tag, children }: {
5
+ tag: TagType;
6
+ children: (props: TagProps) => ReactNode;
7
+ }) => ReactNode;
8
+ export default Tag;
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hooks_1 = require("../app/hooks");
4
+ var slices_1 = require("../slices");
5
+ var Tag = function (_a) {
6
+ var tag = _a.tag, children = _a.children;
7
+ var config = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig).tag;
8
+ return children({ config: config, tag: tag });
9
+ };
10
+ exports.default = Tag;
@@ -0,0 +1,11 @@
1
+ import { Styles, TextAreaProps } from '@open-tender/ui';
2
+ import { ReactNode } from 'react';
3
+ declare const TextArea: ({ label, value, setValue, isRequired, style, children }: {
4
+ label?: string;
5
+ value: string;
6
+ setValue: (value: string) => void;
7
+ isRequired?: boolean;
8
+ style?: Styles;
9
+ children: (props: TextAreaProps) => ReactNode;
10
+ }) => ReactNode;
11
+ export default TextArea;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var hooks_1 = require("../app/hooks");
4
+ var slices_1 = require("../slices");
5
+ var TextArea = function (_a) {
6
+ var label = _a.label, value = _a.value, setValue = _a.setValue, isRequired = _a.isRequired, style = _a.style, children = _a.children;
7
+ var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.input, labelConfig = _b.label;
8
+ var update = function (evt) {
9
+ setValue(evt.target.value);
10
+ };
11
+ var handlers = { update: update };
12
+ return children({
13
+ config: config,
14
+ handlers: handlers,
15
+ label: label,
16
+ value: value,
17
+ isRequired: isRequired,
18
+ style: style,
19
+ labelConfig: labelConfig
20
+ });
21
+ };
22
+ exports.default = TextArea;
@@ -0,0 +1,10 @@
1
+ import { CartItem } from '@open-tender/types';
2
+ import { UpsellItemProps } from '@open-tender/ui';
3
+ import { ReactNode } from 'react';
4
+ declare const UpsellItem: ({ item, callback, isLast, children }: {
5
+ item: CartItem;
6
+ callback?: () => void;
7
+ isLast?: boolean;
8
+ children: (props: UpsellItemProps) => ReactNode;
9
+ }) => ReactNode;
10
+ export default UpsellItem;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var utils_1 = require("@open-tender/utils");
4
+ var hooks_1 = require("../app/hooks");
5
+ var slices_1 = require("../slices");
6
+ var UpsellItem = function (_a) {
7
+ var item = _a.item, callback = _a.callback, isLast = _a.isLast, children = _a.children;
8
+ var dispatch = (0, hooks_1.useAppDispatch)();
9
+ var _b = (0, hooks_1.useAppSelector)(slices_1.selectKioskConfig), config = _b.upsellItem, cardConfig = _b.card;
10
+ var builtItem = (0, utils_1.useBuilder)(item).item;
11
+ var quantity = builtItem.quantity, groups = builtItem.groups;
12
+ var groupsBelowMin = (0, utils_1.hasGroupsBelowMin)(null, groups);
13
+ var isIncomplete = "".concat(quantity) === '' || quantity === 0 || groupsBelowMin;
14
+ var add = function () {
15
+ if (!isIncomplete) {
16
+ dispatch((0, slices_1.addItemToCart)(builtItem));
17
+ if (callback)
18
+ callback();
19
+ }
20
+ };
21
+ var handlers = { add: add };
22
+ return children({ config: config, handlers: handlers, item: item, isLast: isLast, cardConfig: cardConfig });
23
+ };
24
+ exports.default = UpsellItem;