addio-ecomm-sdk 1.3.76 → 1.3.78

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 (88) hide show
  1. package/dist/index.js +1066 -1647
  2. package/dist/index.js.map +1 -1
  3. package/dist/lib/constants/components/CreditCardInput.js +22 -36
  4. package/dist/lib/constants/components/CreditCardInput.js.map +1 -1
  5. package/dist/lib/constants/components/Snackbar.js +10 -20
  6. package/dist/lib/constants/components/Snackbar.js.map +1 -1
  7. package/dist/lib/constants/contexts/CartContext/CartContextProvider.js +566 -906
  8. package/dist/lib/constants/contexts/CartContext/CartContextProvider.js.map +1 -1
  9. package/dist/lib/constants/contexts/CartContext/index.js +34 -114
  10. package/dist/lib/constants/contexts/CartContext/index.js.map +1 -1
  11. package/dist/lib/constants/contexts/DataContext/DataContextProvider.js +103 -234
  12. package/dist/lib/constants/contexts/DataContext/DataContextProvider.js.map +1 -1
  13. package/dist/lib/constants/contexts/DataContext/index.js +22 -62
  14. package/dist/lib/constants/contexts/DataContext/index.js.map +1 -1
  15. package/dist/lib/constants/contexts/LogContext/LogContextProvider.js +24 -87
  16. package/dist/lib/constants/contexts/LogContext/LogContextProvider.js.map +1 -1
  17. package/dist/lib/constants/contexts/LogContext/index.js +4 -42
  18. package/dist/lib/constants/contexts/LogContext/index.js.map +1 -1
  19. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.js +16 -31
  20. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.js.map +1 -1
  21. package/dist/lib/constants/contexts/ModalContext/index.js +11 -13
  22. package/dist/lib/constants/contexts/ModalContext/index.js.map +1 -1
  23. package/dist/lib/constants/contexts/SDKContext/SDKProvider.js +14 -70
  24. package/dist/lib/constants/contexts/SDKContext/SDKProvider.js.map +1 -1
  25. package/dist/lib/constants/contexts/SDKContext/index.js +1 -1
  26. package/dist/lib/constants/contexts/SDKContext/index.js.map +1 -1
  27. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.js +3 -3
  28. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.js.map +1 -1
  29. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.js +17 -31
  30. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.js.map +1 -1
  31. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.d.ts +2 -0
  32. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.js +2 -2
  33. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.js.map +1 -1
  34. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.js +51 -118
  35. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.js.map +1 -1
  36. package/dist/lib/constants/contexts/StockNotifContext/index.js +3 -3
  37. package/dist/lib/constants/contexts/StockNotifContext/index.js.map +1 -1
  38. package/dist/lib/constants/contexts/UserContext/UserContextProvider.js +240 -397
  39. package/dist/lib/constants/contexts/UserContext/UserContextProvider.js.map +1 -1
  40. package/dist/lib/constants/contexts/UserContext/index.js +15 -69
  41. package/dist/lib/constants/contexts/UserContext/index.js.map +1 -1
  42. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.js +157 -253
  43. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.js.map +1 -1
  44. package/dist/lib/constants/contexts/WishlistContext/index.js +4 -4
  45. package/dist/lib/constants/contexts/WishlistContext/index.js.map +1 -1
  46. package/dist/lib/constants/hooks/useCart.js +3 -3
  47. package/dist/lib/constants/hooks/useCart.js.map +1 -1
  48. package/dist/lib/constants/hooks/useData.js +3 -3
  49. package/dist/lib/constants/hooks/useData.js.map +1 -1
  50. package/dist/lib/constants/hooks/useLogs.js +3 -3
  51. package/dist/lib/constants/hooks/useLogs.js.map +1 -1
  52. package/dist/lib/constants/hooks/useModal.js +3 -3
  53. package/dist/lib/constants/hooks/useModal.js.map +1 -1
  54. package/dist/lib/constants/hooks/useSDK.js +3 -3
  55. package/dist/lib/constants/hooks/useSDK.js.map +1 -1
  56. package/dist/lib/constants/hooks/useSnackbar.js +3 -3
  57. package/dist/lib/constants/hooks/useSnackbar.js.map +1 -1
  58. package/dist/lib/constants/hooks/useStockNotif.js +3 -3
  59. package/dist/lib/constants/hooks/useStockNotif.js.map +1 -1
  60. package/dist/lib/constants/hooks/useUser.js +3 -3
  61. package/dist/lib/constants/hooks/useUser.js.map +1 -1
  62. package/dist/lib/constants/hooks/useWishlist.js +3 -3
  63. package/dist/lib/constants/hooks/useWishlist.js.map +1 -1
  64. package/dist/lib/models/image/index.js +5 -10
  65. package/dist/lib/models/image/index.js.map +1 -1
  66. package/dist/lib/models/stockNotification/index.js +58 -118
  67. package/dist/lib/models/stockNotification/index.js.map +1 -1
  68. package/dist/lib/models/wishlist/index.js +73 -142
  69. package/dist/lib/models/wishlist/index.js.map +1 -1
  70. package/dist/utils/algolia.js +27 -73
  71. package/dist/utils/algolia.js.map +1 -1
  72. package/dist/utils/analytics.js +68 -79
  73. package/dist/utils/analytics.js.map +1 -1
  74. package/dist/utils/cart.js +10 -11
  75. package/dist/utils/cart.js.map +1 -1
  76. package/dist/utils/contentful.js +31 -104
  77. package/dist/utils/contentful.js.map +1 -1
  78. package/dist/utils/functions.js +54 -71
  79. package/dist/utils/functions.js.map +1 -1
  80. package/dist/utils/getSDK.js +12 -70
  81. package/dist/utils/getSDK.js.map +1 -1
  82. package/dist/utils/initStoreData.js +12 -57
  83. package/dist/utils/initStoreData.js.map +1 -1
  84. package/dist/utils/larivieremeunier.js +1 -1
  85. package/dist/utils/larivieremeunier.js.map +1 -1
  86. package/dist/utils/technosupply.js +1 -1
  87. package/dist/utils/technosupply.js.map +1 -1
  88. package/package.json +2 -2
@@ -1,621 +1,383 @@
1
1
  "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
2
  var __importDefault = (this && this.__importDefault) || function (mod) {
50
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
51
4
  };
52
5
  Object.defineProperty(exports, "__esModule", { value: true });
53
- var jsx_runtime_1 = require("react/jsx-runtime");
54
- var react_1 = require("react");
55
- var Cart_1 = require("addio-admin-sdk/dist/Interfaces/Cart");
56
- var ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
57
- var _1 = __importDefault(require("."));
58
- var useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
59
- var useSDK_1 = __importDefault(require("../../hooks/useSDK"));
60
- var useData_1 = __importDefault(require("../../hooks/useData"));
61
- var useUser_1 = __importDefault(require("../../hooks/useUser"));
62
- var functions_1 = require("../../../../utils/functions");
63
- var functions_2 = require("../../../../utils/functions");
64
- var cart_1 = require("addio-admin-sdk/dist/utils/cart");
65
- var discount_1 = require("addio-admin-sdk/dist/utils/discount");
66
- var g2_1 = require("addio-admin-sdk/dist/rules/GR/utils/g2");
67
- var CartContextProvider = function (_a) {
68
- var locale = _a.locale, children = _a.children;
69
- var sdk = (0, useSDK_1.default)();
70
- var currency = (0, useData_1.default)().currency;
71
- var _b = (0, useUser_1.default)(), isUserLoggedIn = _b.isUserLoggedIn, userLoaded = _b.loaded;
72
- var setSnackbar = (0, useSnackbar_1.default)().setSnackbar;
73
- var _c = (0, react_1.useState)(), cartData = _c[0], setCartData = _c[1];
74
- var _d = (0, react_1.useState)([]), cartErrors = _d[0], setCartErrors = _d[1];
75
- var _e = (0, react_1.useState)(false), loading = _e[0], setLoading = _e[1];
76
- var _f = (0, react_1.useState)(false), cartSliderOpen = _f[0], setCartSliderOpen = _f[1];
77
- var _g = (0, react_1.useState)(), isGuest = _g[0], setIsGuest = _g[1];
78
- var api = !!sdk ? sdk.getAPIInfos() : null;
79
- var initCart = function () { return __awaiter(void 0, void 0, void 0, function () {
80
- var cartIDInLocalStorage, newCart, _2;
81
- return __generator(this, function (_a) {
82
- switch (_a.label) {
83
- case 0:
84
- if (!!!api)
85
- return [2];
86
- cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
87
- if (!!!cartIDInLocalStorage) return [3, 4];
88
- _a.label = 1;
89
- case 1:
90
- _a.trys.push([1, 3, , 4]);
91
- return [4, getCartFromDatabase(cartIDInLocalStorage)];
92
- case 2:
93
- newCart = _a.sent();
94
- if (!!newCart && !!!newCart.clerk_id) {
95
- if (newCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
96
- return [2, newCart];
97
- }
98
- else {
99
- localStorage.removeItem("".concat(api.org, "__cart"));
100
- }
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
8
+ const Cart_1 = require("addio-admin-sdk/dist/Interfaces/Cart");
9
+ const ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
10
+ const _1 = __importDefault(require("."));
11
+ const useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
12
+ const useSDK_1 = __importDefault(require("../../hooks/useSDK"));
13
+ const useData_1 = __importDefault(require("../../hooks/useData"));
14
+ const useUser_1 = __importDefault(require("../../hooks/useUser"));
15
+ const functions_1 = require("../../../../utils/functions");
16
+ const functions_2 = require("../../../../utils/functions");
17
+ const cart_1 = require("addio-admin-sdk/dist/utils/cart");
18
+ const discount_1 = require("addio-admin-sdk/dist/utils/discount");
19
+ const g2_1 = require("addio-admin-sdk/dist/rules/GR/utils/g2");
20
+ const CartContextProvider = ({ locale, children }) => {
21
+ const sdk = (0, useSDK_1.default)();
22
+ const { currency } = (0, useData_1.default)();
23
+ const { isUserLoggedIn, loaded: userLoaded } = (0, useUser_1.default)();
24
+ const { setSnackbar } = (0, useSnackbar_1.default)();
25
+ const [cartData, setCartData] = (0, react_1.useState)();
26
+ const [cartErrors, setCartErrors] = (0, react_1.useState)([]);
27
+ const [loading, setLoading] = (0, react_1.useState)(false);
28
+ const [cartSliderOpen, setCartSliderOpen] = (0, react_1.useState)(false);
29
+ const [isGuest, setIsGuest] = (0, react_1.useState)();
30
+ const api = !!sdk ? sdk.getAPIInfos() : null;
31
+ const initCart = async () => {
32
+ if (!!!api)
33
+ return;
34
+ const cartIDInLocalStorage = localStorage.getItem(`${api.org}__cart`);
35
+ if (!!cartIDInLocalStorage) {
36
+ try {
37
+ const newCart = await getCartFromDatabase(cartIDInLocalStorage);
38
+ if (!!newCart && !!!newCart.clerk_id) {
39
+ if (newCart.status < Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS) {
40
+ return newCart;
41
+ }
42
+ else {
43
+ localStorage.removeItem(`${api.org}__cart`);
101
44
  }
102
- return [3, 4];
103
- case 3:
104
- _2 = _a.sent();
105
- return [2, undefined];
106
- case 4: return [2, undefined];
107
- }
108
- });
109
- }); };
110
- var updateEmail = function (newCart, email, saveToDatabase) {
111
- if (saveToDatabase === void 0) { saveToDatabase = true; }
112
- return __awaiter(void 0, void 0, void 0, function () {
113
- var cart;
114
- return __generator(this, function (_a) {
115
- switch (_a.label) {
116
- case 0:
117
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
118
- if (!!!saveToDatabase) return [3, 2];
119
- return [4, saveCart({ user_email: email })];
120
- case 1:
121
- cart = _a.sent();
122
- return [3, 3];
123
- case 2:
124
- if (!!cart) {
125
- cart = __assign(__assign({}, cart), { user_email: email });
126
- }
127
- _a.label = 3;
128
- case 3: return [2, cart];
129
- }
130
- });
131
- });
132
- };
133
- var updateDefaultCustomer = function (newCart, email, id, proInfo, saveToDatabase) {
134
- if (saveToDatabase === void 0) { saveToDatabase = true; }
135
- return __awaiter(void 0, void 0, void 0, function () {
136
- var cart, newCustomerInfo;
137
- return __generator(this, function (_a) {
138
- switch (_a.label) {
139
- case 0:
140
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
141
- newCustomerInfo = {
142
- customer_id: id,
143
- user_email: email,
144
- customer_info: __assign({ customer_default_email: email }, (proInfo || {}))
145
- };
146
- if (!!!saveToDatabase) return [3, 2];
147
- return [4, saveCart(newCustomerInfo)];
148
- case 1:
149
- _a.sent();
150
- return [3, 3];
151
- case 2:
152
- cart = __assign(__assign({}, (!!cart ? cart : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), newCustomerInfo);
153
- _a.label = 3;
154
- case 3: return [2, cart];
155
45
  }
156
- });
157
- });
46
+ }
47
+ catch (_) {
48
+ return undefined;
49
+ }
50
+ }
51
+ return undefined;
158
52
  };
159
- var _handleInventoryError = function (shouldSave) { return __awaiter(void 0, void 0, void 0, function () {
160
- return __generator(this, function (_a) {
161
- switch (_a.label) {
162
- case 0:
163
- setSnackbar({
164
- title: (0, functions_1.getStringByLang)({
165
- en: 'This item is unavailable, or you haved reached the maximum amount you can add to your cart.',
166
- fr: 'Cet item est indisponible, ou vous avez atteint la quantité maximale déjà au panier.'
167
- }, locale),
168
- type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
169
- isShown: true,
170
- isCart: true
171
- });
172
- if (!!!shouldSave) return [3, 2];
173
- return [4, saveCart(undefined)];
174
- case 1:
175
- _a.sent();
176
- _a.label = 2;
177
- case 2: return [2];
53
+ const updateEmail = async (newCart, email, saveToDatabase = true) => {
54
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
55
+ if (!!saveToDatabase) {
56
+ cart = await saveCart({ user_email: email });
57
+ }
58
+ else {
59
+ if (!!cart) {
60
+ cart = Object.assign(Object.assign({}, cart), { user_email: email });
178
61
  }
179
- });
180
- }); };
181
- var addItem = function (newCart, items, retro, useParentName, saveToDatabase, defaultAdd, isServiceUpsellOfSku, customPriceList) {
182
- if (retro === void 0) { retro = true; }
183
- if (useParentName === void 0) { useParentName = false; }
184
- if (saveToDatabase === void 0) { saveToDatabase = true; }
185
- if (defaultAdd === void 0) { defaultAdd = false; }
186
- if (isServiceUpsellOfSku === void 0) { isServiceUpsellOfSku = false; }
187
- return __awaiter(void 0, void 0, void 0, function () {
188
- var cart, addedValues, i, productName;
189
- return __generator(this, function (_a) {
190
- switch (_a.label) {
191
- case 0:
192
- if (!!!api || !!!sdk)
193
- throw new Error('SDK not initialised');
194
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
195
- if (!!isGuest && typeof isGuest === 'string' && !!cart.user_email) {
196
- cart = __assign(__assign({}, cart), { user_email: isGuest });
197
- }
198
- return [4, (0, cart_1.addCartItems)(cart, Array.isArray(items) ? items : [items], sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError, defaultAdd, isServiceUpsellOfSku, customPriceList)];
199
- case 1:
200
- addedValues = _a.sent();
201
- cart = addedValues.cartData;
202
- if (!!!saveToDatabase) return [3, 3];
203
- return [4, saveCart(cart)];
204
- case 2:
205
- cart = _a.sent();
206
- _a.label = 3;
207
- case 3:
208
- if (!!retro && !!items && (Array.isArray(items) ? !!items.length : true)) {
209
- i = Array.isArray(items) ? items[0] : items;
210
- productName = useParentName ? i.parent_name : i.name;
211
- if (!!addedValues.updated) {
212
- setSnackbar({
213
- title: (0, functions_1.getStringByLang)({
214
- en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly updated in your cart!"),
215
- fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 mis \u00E0 jour dans votre panier!")
216
- }, locale),
217
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
218
- isShown: true,
219
- isCart: true
220
- });
221
- }
222
- else if (!!addedValues.added) {
223
- setSnackbar({
224
- title: (0, functions_1.getStringByLang)({
225
- en: "".concat(!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item', " has been successfuly added to your cart!"),
226
- fr: "".concat(!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : "L'item", " a bien \u00E9t\u00E9 ajout\u00E9 \u00E0 votre panier!")
227
- }, locale),
228
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
229
- isShown: true,
230
- isCart: true
231
- });
232
- }
233
- if (!!!addedValues.maxQtyItems) {
234
- setCartSliderOpen(true);
235
- }
236
- }
237
- return [2, cart];
238
- }
239
- });
240
- });
62
+ }
63
+ return cart;
241
64
  };
242
- var updateItem = function (newCart, items, saveToDatabase) {
243
- if (saveToDatabase === void 0) { saveToDatabase = true; }
244
- return __awaiter(void 0, void 0, void 0, function () {
245
- var updatedItemsCart, itemsToUpdate, updatedValues;
246
- return __generator(this, function (_a) {
247
- switch (_a.label) {
248
- case 0:
249
- if (!!!api || !!!sdk)
250
- throw new Error('SDK not initialised');
251
- updatedItemsCart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
252
- itemsToUpdate = Array.isArray(items) ? items : [items];
253
- return [4, (0, cart_1.updateCartItems)(updatedItemsCart, itemsToUpdate, sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError)];
254
- case 1:
255
- updatedValues = _a.sent();
256
- if (!!!saveToDatabase) return [3, 3];
257
- return [4, saveCart({ items: updatedValues.updatedCart.items })];
258
- case 2:
259
- updatedItemsCart = _a.sent();
260
- _a.label = 3;
261
- case 3: return [2, updatedItemsCart];
262
- }
263
- });
264
- });
65
+ const updateDefaultCustomer = async (newCart, email, id, proInfo, saveToDatabase = true) => {
66
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
67
+ const newCustomerInfo = {
68
+ customer_id: id,
69
+ user_email: email,
70
+ customer_info: Object.assign({ customer_default_email: email }, (proInfo || {}))
71
+ };
72
+ if (!!saveToDatabase) {
73
+ await saveCart(newCustomerInfo);
74
+ }
75
+ else {
76
+ cart = Object.assign(Object.assign({}, (!!cart ? cart : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), newCustomerInfo);
77
+ }
78
+ return cart;
265
79
  };
266
- var deleteItem = function (newCart, sku, saveToDatabase, onlyIfUpsellOf) {
267
- if (saveToDatabase === void 0) { saveToDatabase = true; }
268
- return __awaiter(void 0, void 0, void 0, function () {
269
- var cart;
270
- return __generator(this, function (_a) {
271
- switch (_a.label) {
272
- case 0:
273
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
274
- cart = (0, cart_1.deleteCartItem)(cart, Array.isArray(sku) ? sku : [sku], onlyIfUpsellOf);
275
- if (!!!saveToDatabase) return [3, 2];
276
- return [4, saveCart({ items: cart.items })];
277
- case 1:
278
- cart = _a.sent();
279
- _a.label = 2;
280
- case 2: return [2, cart];
281
- }
282
- });
80
+ const _handleInventoryError = async (shouldSave) => {
81
+ setSnackbar({
82
+ title: (0, functions_1.getStringByLang)({
83
+ en: 'This item is unavailable, or you haved reached the maximum amount you can add to your cart.',
84
+ fr: 'Cet item est indisponible, ou vous avez atteint la quantité maximale déjà au panier.'
85
+ }, locale),
86
+ type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
87
+ isShown: true,
88
+ isCart: true
283
89
  });
90
+ if (!!shouldSave)
91
+ await saveCart(undefined);
284
92
  };
285
- var verifyCart = function () { return __awaiter(void 0, void 0, void 0, function () {
286
- var request, responseData, response, error_1;
287
- return __generator(this, function (_a) {
288
- switch (_a.label) {
289
- case 0:
290
- if (!!!api || !!!cartData)
291
- return [2, false];
292
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
293
- throw new Error("Can't process a paid or higher status cart.");
294
- if (!!!cartData.id) return [3, 5];
295
- _a.label = 1;
296
- case 1:
297
- _a.trys.push([1, 4, , 5]);
298
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/verify"), {
299
- method: 'GET',
300
- headers: {
301
- Authorization: "Bearer ".concat(api.token),
302
- 'Content-Type': 'application/json',
303
- 'x-gng-ecomm-token': api.userToken
304
- }
305
- })];
306
- case 2:
307
- request = _a.sent();
308
- return [4, request.json()];
309
- case 3:
310
- responseData = (_a.sent());
311
- if (responseData.status != 200) {
312
- throw 'Erreur lors de la requête des quotes.' + responseData.error;
313
- }
314
- response = responseData.data;
315
- setCartData(response.cart);
316
- return [2, response.actionsDone];
317
- case 4:
318
- error_1 = _a.sent();
319
- console.log('error in verifyCart: ', error_1);
320
- return [3, 5];
321
- case 5: return [2, false];
93
+ const addItem = async (newCart, items, retro = true, useParentName = false, saveToDatabase = true, defaultAdd = false, isServiceUpsellOfSku = false, customPriceList) => {
94
+ if (!!!api || !!!sdk)
95
+ throw new Error('SDK not initialised');
96
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
97
+ if (!!isGuest && typeof isGuest === 'string' && !!cart.user_email) {
98
+ cart = Object.assign(Object.assign({}, cart), { user_email: isGuest });
99
+ }
100
+ const addedValues = await (0, cart_1.addCartItems)(cart, Array.isArray(items) ? items : [items], sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError, defaultAdd, isServiceUpsellOfSku, customPriceList);
101
+ cart = addedValues.cartData;
102
+ if (!!saveToDatabase) {
103
+ cart = await saveCart(cart);
104
+ }
105
+ if (!!retro && !!items && (Array.isArray(items) ? !!items.length : true)) {
106
+ const i = Array.isArray(items) ? items[0] : items;
107
+ const productName = useParentName ? i.parent_name : i.name;
108
+ if (!!addedValues.updated) {
109
+ setSnackbar({
110
+ title: (0, functions_1.getStringByLang)({
111
+ en: `${!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item'} has been successfuly updated in your cart!`,
112
+ fr: `${!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : `L'item`} a bien été mis à jour dans votre panier!`
113
+ }, locale),
114
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
115
+ isShown: true,
116
+ isCart: true
117
+ });
322
118
  }
323
- });
324
- }); };
325
- var uploadFileToOrder = function (newCart, file, propsName, saveToDatabase) {
326
- if (saveToDatabase === void 0) { saveToDatabase = true; }
327
- return __awaiter(void 0, void 0, void 0, function () {
328
- var cart, base64, request, responseData;
329
- var _a, _b, _c, _d;
330
- return __generator(this, function (_e) {
331
- switch (_e.label) {
332
- case 0:
333
- if (!!!api)
334
- return [2];
335
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
336
- if (!!!cart.id)
337
- return [2, {
338
- cart: cart,
339
- data: undefined,
340
- error: "Couldn't convert cart data"
341
- }];
342
- if (cart.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
343
- throw new Error("Can't process a paid or higher status cart.");
344
- return [4, (0, functions_2.toBase64)(file)];
345
- case 1:
346
- base64 = _e.sent();
347
- if (typeof base64 !== 'string') {
348
- return [2, {
349
- cart: cart,
350
- data: undefined,
351
- error: "Couldn't convert file to base64"
352
- }];
353
- }
354
- return [4, fetch("".concat(api.api, "/cart/").concat(cart.id, "/uploadBase64"), {
355
- method: 'PUT',
356
- headers: {
357
- Authorization: "Bearer ".concat(api.token),
358
- 'Content-Type': 'application/json',
359
- 'x-gng-ecomm-token': api.userToken
360
- },
361
- body: JSON.stringify({
362
- base64: base64
363
- })
364
- })];
365
- case 2:
366
- request = _e.sent();
367
- return [4, request.json()];
368
- case 3:
369
- responseData = (_e.sent());
370
- if (responseData.status != 200) {
371
- throw new Error("Impossible d'uploader le fichier" + responseData.error);
372
- }
373
- if (!!!responseData.data) return [3, 6];
374
- if (!!!saveToDatabase) return [3, 5];
375
- return [4, saveCart({
376
- shipping_payload: cart.shipping_payload
377
- ? __assign(__assign({}, cart.shipping_payload), (_a = {}, _a[propsName] = responseData.data, _a)) : (_b = {},
378
- _b[propsName] = responseData.data,
379
- _b)
380
- })];
381
- case 4:
382
- cart = _e.sent();
383
- return [3, 6];
384
- case 5:
385
- cart = __assign(__assign({}, cart), { shipping_payload: cart.shipping_payload
386
- ? __assign(__assign({}, cart.shipping_payload), (_c = {}, _c[propsName] = responseData.data, _c)) : (_d = {},
387
- _d[propsName] = responseData.data,
388
- _d) });
389
- _e.label = 6;
390
- case 6: return [2, { cart: cart, data: responseData.data, error: undefined }];
391
- }
392
- });
393
- });
119
+ else if (!!addedValues.added) {
120
+ setSnackbar({
121
+ title: (0, functions_1.getStringByLang)({
122
+ en: `${!!productName ? (0, functions_1.translate)(locale || 'en', productName) : 'The item'} has been successfuly added to your cart!`,
123
+ fr: `${!!productName ? (0, functions_1.translate)(locale || 'fr', productName) : `L'item`} a bien été ajouté à votre panier!`
124
+ }, locale),
125
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS,
126
+ isShown: true,
127
+ isCart: true
128
+ });
129
+ }
130
+ if (!!!addedValues.maxQtyItems) {
131
+ setCartSliderOpen(true);
132
+ }
133
+ }
134
+ return cart;
394
135
  };
395
- var emptyCart = function (removeCartIDFromLocalStorage) {
396
- if (removeCartIDFromLocalStorage === void 0) { removeCartIDFromLocalStorage = true; }
397
- return __awaiter(void 0, void 0, void 0, function () {
398
- var cartID, cartFromDB, err_1;
399
- return __generator(this, function (_a) {
400
- switch (_a.label) {
401
- case 0:
402
- if (!!!api || !!!sdk)
403
- return [2, false];
404
- if (!!!removeCartIDFromLocalStorage) return [3, 1];
405
- if (process.env.NODE_ENV !== 'production')
406
- console.log('`${api.org}__cart`', "".concat(api.org, "__cart"));
407
- localStorage.removeItem("".concat(api.org, "__cart"));
408
- setCartData(undefined);
409
- return [3, 5];
410
- case 1:
411
- cartID = localStorage.getItem("".concat(api.org, "__cart"));
412
- if (!!!cartID) return [3, 5];
413
- _a.label = 2;
414
- case 2:
415
- _a.trys.push([2, 4, , 5]);
416
- return [4, getCartFromDatabase(cartID)];
417
- case 3:
418
- cartFromDB = _a.sent();
419
- if (!!cartFromDB && !!!cartFromDB.clerk_id) {
420
- setCartData(cartFromDB);
421
- }
422
- return [3, 5];
423
- case 4:
424
- err_1 = _a.sent();
425
- return [3, 5];
426
- case 5: return [2, true];
427
- }
428
- });
429
- });
136
+ const updateItem = async (newCart, items, saveToDatabase = true) => {
137
+ if (!!!api || !!!sdk)
138
+ throw new Error('SDK not initialised');
139
+ let updatedItemsCart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
140
+ const itemsToUpdate = Array.isArray(items) ? items : [items];
141
+ const updatedValues = await (0, cart_1.updateCartItems)(updatedItemsCart, itemsToUpdate, sdk.products.getOneInventoryItem, api.org !== 'gr', _handleInventoryError);
142
+ if (!!saveToDatabase) {
143
+ updatedItemsCart = await saveCart({ items: updatedValues.updatedCart.items });
144
+ }
145
+ return updatedItemsCart;
430
146
  };
431
- var handlePayment = function (data) {
432
- if (data === void 0) { data = {}; }
433
- return __awaiter(void 0, void 0, void 0, function () {
434
- var request, responseData;
435
- return __generator(this, function (_a) {
436
- switch (_a.label) {
437
- case 0:
438
- if (!!!api || !!!sdk)
439
- return [2, { error: { en: 'SDK not initialized', fr: 'SDK non initialisé' } }];
440
- if (!!!cartData)
441
- throw new Error("Can't pay an empty/undefined cart");
442
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
443
- throw new Error("Can't process a paid or higher status cart.");
444
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/payment"), {
445
- method: 'POST',
446
- headers: {
447
- Authorization: "Bearer ".concat(api.token),
448
- 'Content-Type': 'application/json',
449
- 'x-gng-ecomm-token': api.userToken
450
- },
451
- body: JSON.stringify(__assign({ customer_email: cartData.user_email, customer_name: cartData.billing_address ? cartData.billing_address.expedition_recipient_name : 'Anonyme', cartTotal: Number((cartData.total * 100).toFixed(0)) }, data))
452
- })];
453
- case 1:
454
- request = _a.sent();
455
- return [4, request.json()];
456
- case 2:
457
- responseData = _a.sent();
458
- if (responseData.status != 200) {
459
- return [2, { error: responseData.error }];
460
- }
461
- if (!!responseData.token) {
462
- sdk.setUserToken(responseData.token);
463
- }
464
- return [2, { accessToken: responseData.data }];
465
- }
466
- });
467
- });
147
+ const deleteItem = async (newCart, sku, saveToDatabase = true, onlyIfUpsellOf) => {
148
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
149
+ cart = (0, cart_1.deleteCartItem)(cart, Array.isArray(sku) ? sku : [sku], onlyIfUpsellOf);
150
+ if (!!saveToDatabase) {
151
+ cart = await saveCart({ items: cart.items });
152
+ }
153
+ return cart;
468
154
  };
469
- var setPaidBy = function (paidByValue, customPriceList, chosenPayment) { return __awaiter(void 0, void 0, void 0, function () {
470
- var partial, customIncentiveInfo, e_1;
471
- return __generator(this, function (_a) {
472
- switch (_a.label) {
473
- case 0:
474
- if (!!!cartData)
475
- return [2];
476
- partial = { paid_by: paidByValue, id: cartData.id };
477
- if (!!customPriceList) {
478
- customIncentiveInfo = (0, g2_1.getCustomIncentiveInfo)(customPriceList, cartData.discount_rules);
479
- if (!!customIncentiveInfo) {
480
- partial = __assign(__assign({}, partial), { discount_rules: customIncentiveInfo.updatedDiscountRules });
481
- }
482
- }
483
- if (!!chosenPayment && chosenPayment != paidByValue) {
484
- partial = __assign(__assign({}, partial), { shipping_payload: __assign(__assign({}, (cartData.shipping_payload || {})), { chosen_payment: chosenPayment }) });
155
+ const verifyCart = async () => {
156
+ if (!!!api || !!!cartData)
157
+ return false;
158
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
159
+ throw new Error(`Can't process a paid or higher status cart.`);
160
+ if (!!cartData.id) {
161
+ try {
162
+ const request = await fetch(`${api.api}/cart/${cartData.id}/verify`, {
163
+ method: 'GET',
164
+ headers: {
165
+ Authorization: `Bearer ${api.token}`,
166
+ 'Content-Type': 'application/json',
167
+ 'x-gng-ecomm-token': api.userToken
485
168
  }
486
- _a.label = 1;
487
- case 1:
488
- _a.trys.push([1, 3, , 4]);
489
- return [4, saveCart(partial, false, undefined, false, true)];
490
- case 2:
491
- _a.sent();
492
- return [3, 4];
493
- case 3:
494
- e_1 = _a.sent();
495
- console.log('error on saving cart with paid_by value: ', e_1);
496
- return [3, 4];
497
- case 4: return [2];
169
+ });
170
+ const responseData = (await request.json());
171
+ if (responseData.status != 200) {
172
+ throw 'Erreur lors de la requête des quotes.' + responseData.error;
173
+ }
174
+ const response = responseData.data;
175
+ setCartData(response.cart);
176
+ return response.actionsDone;
177
+ }
178
+ catch (error) {
179
+ console.log('error in verifyCart: ', error);
498
180
  }
181
+ }
182
+ return false;
183
+ };
184
+ const uploadFileToOrder = async (newCart, file, propsName, saveToDatabase = true) => {
185
+ if (!!!api)
186
+ return;
187
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
188
+ if (!!!cart.id)
189
+ return {
190
+ cart: cart,
191
+ data: undefined,
192
+ error: "Couldn't convert cart data"
193
+ };
194
+ if (cart.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
195
+ throw new Error(`Can't process a paid or higher status cart.`);
196
+ const base64 = await (0, functions_2.toBase64)(file);
197
+ if (typeof base64 !== 'string') {
198
+ return {
199
+ cart: cart,
200
+ data: undefined,
201
+ error: "Couldn't convert file to base64"
202
+ };
203
+ }
204
+ const request = await fetch(`${api.api}/cart/${cart.id}/uploadBase64`, {
205
+ method: 'PUT',
206
+ headers: {
207
+ Authorization: `Bearer ${api.token}`,
208
+ 'Content-Type': 'application/json',
209
+ 'x-gng-ecomm-token': api.userToken
210
+ },
211
+ body: JSON.stringify({
212
+ base64: base64
213
+ })
499
214
  });
500
- }); };
501
- var saveOrder = function (payment_payload) { return __awaiter(void 0, void 0, void 0, function () {
502
- var fetchData, response, err_2;
503
- return __generator(this, function (_a) {
504
- switch (_a.label) {
505
- case 0:
506
- if (!!!api)
507
- throw new Error('SDK not initialised');
508
- if (!!!cartData)
509
- throw new Error("Can't pay an empty/undefined cart");
510
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
511
- throw new Error("Can't process a paid or higher status cart.");
512
- _a.label = 1;
513
- case 1:
514
- _a.trys.push([1, 4, , 5]);
515
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/saveOrder"), {
516
- method: 'POST',
517
- headers: {
518
- authorization: "Bearer ".concat(api.token),
519
- 'Content-Type': 'application/json',
520
- 'x-gng-ecomm-token': api.userToken
521
- },
522
- body: JSON.stringify({ payment_payload: payment_payload })
523
- })];
524
- case 2:
525
- fetchData = _a.sent();
526
- return [4, fetchData.json()];
527
- case 3:
528
- response = (_a.sent());
529
- if (response.status !== 200) {
530
- return [2, 'error'];
215
+ const responseData = (await request.json());
216
+ if (responseData.status != 200) {
217
+ throw new Error("Impossible d'uploader le fichier" + responseData.error);
218
+ }
219
+ if (!!responseData.data) {
220
+ if (!!saveToDatabase) {
221
+ cart = await saveCart({
222
+ shipping_payload: cart.shipping_payload
223
+ ? Object.assign(Object.assign({}, cart.shipping_payload), { [propsName]: responseData.data }) : {
224
+ [propsName]: responseData.data
531
225
  }
532
- return [2, response.data];
533
- case 4:
534
- err_2 = _a.sent();
535
- return [2, 'error'];
536
- case 5: return [2];
226
+ });
537
227
  }
538
- });
539
- }); };
540
- var removeDiscountRule = function (cart, code) { return __awaiter(void 0, void 0, void 0, function () {
541
- var e_2;
542
- return __generator(this, function (_a) {
543
- switch (_a.label) {
544
- case 0:
545
- _a.trys.push([0, 2, , 3]);
546
- return [4, saveCart({
547
- subtotalWithoutPromotions: null,
548
- cart_promo_applied: null,
549
- cart_promos_applied: !!cart.cart_promos_applied
550
- ? cart.cart_promos_applied.filter(function (x) { return x.promo_code !== code; })
551
- : null
552
- })];
553
- case 1:
554
- _a.sent();
555
- return [2, true];
556
- case 2:
557
- e_2 = _a.sent();
558
- console.log('error on removing discountRule: ', e_2.toString());
559
- return [2, false];
560
- case 3: return [2];
228
+ else {
229
+ cart = Object.assign(Object.assign({}, cart), { shipping_payload: cart.shipping_payload
230
+ ? Object.assign(Object.assign({}, cart.shipping_payload), { [propsName]: responseData.data }) : {
231
+ [propsName]: responseData.data
232
+ } });
561
233
  }
562
- });
563
- }); };
564
- var updateBillingAddress = function (newCart, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
565
- if (saveToDatabase === void 0) { saveToDatabase = true; }
566
- return __awaiter(void 0, void 0, void 0, function () {
567
- var cart, newExpeditionInfo;
568
- return __generator(this, function (_a) {
569
- switch (_a.label) {
570
- case 0:
571
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
572
- newExpeditionInfo = expeditionInfo;
573
- if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
574
- newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
575
- }
576
- if (!!!saveToDatabase) return [3, 2];
577
- return [4, saveCart({ billing_address: newExpeditionInfo })];
578
- case 1:
579
- cart = _a.sent();
580
- return [3, 3];
581
- case 2:
582
- cart = __assign(__assign({}, cart), { billing_address: newExpeditionInfo });
583
- _a.label = 3;
584
- case 3: return [2, cart];
234
+ }
235
+ return { cart: cart, data: responseData.data, error: undefined };
236
+ };
237
+ const emptyCart = async (removeCartIDFromLocalStorage = true) => {
238
+ if (!!!api || !!!sdk)
239
+ return false;
240
+ if (!!removeCartIDFromLocalStorage) {
241
+ if (process.env.NODE_ENV !== 'production')
242
+ console.log('`${api.org}__cart`', `${api.org}__cart`);
243
+ localStorage.removeItem(`${api.org}__cart`);
244
+ setCartData(undefined);
245
+ }
246
+ else {
247
+ const cartID = localStorage.getItem(`${api.org}__cart`);
248
+ if (!!cartID) {
249
+ try {
250
+ const cartFromDB = await getCartFromDatabase(cartID);
251
+ if (!!cartFromDB && !!!cartFromDB.clerk_id) {
252
+ setCartData(cartFromDB);
253
+ }
585
254
  }
586
- });
255
+ catch (err) { }
256
+ }
257
+ }
258
+ return true;
259
+ };
260
+ const handlePayment = async (data = {}) => {
261
+ if (!!!api || !!!sdk)
262
+ return { error: { en: 'SDK not initialized', fr: 'SDK non initialisé' } };
263
+ if (!!!cartData)
264
+ throw new Error("Can't pay an empty/undefined cart");
265
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
266
+ throw new Error(`Can't process a paid or higher status cart.`);
267
+ const request = await fetch(`${api.api}/cart/${cartData.id}/payment`, {
268
+ method: 'POST',
269
+ headers: {
270
+ Authorization: `Bearer ${api.token}`,
271
+ 'Content-Type': 'application/json',
272
+ 'x-gng-ecomm-token': api.userToken
273
+ },
274
+ body: JSON.stringify(Object.assign({ customer_email: cartData.user_email, customer_name: cartData.billing_address ? cartData.billing_address.expedition_recipient_name : 'Anonyme', cartTotal: Number((cartData.total * 100).toFixed(0)) }, data))
587
275
  });
276
+ const responseData = await request.json();
277
+ if (responseData.status != 200) {
278
+ return { error: responseData.error };
279
+ }
280
+ if (!!responseData.token) {
281
+ sdk.setUserToken(responseData.token);
282
+ }
283
+ return { accessToken: responseData.data };
588
284
  };
589
- var updateShippingAddress = function (newCart, isPickupAtStore, expeditionInfo, saveToDatabase, setCAIfNoCountry) {
590
- if (saveToDatabase === void 0) { saveToDatabase = true; }
591
- return __awaiter(void 0, void 0, void 0, function () {
592
- var cart, newExpeditionInfo;
593
- return __generator(this, function (_a) {
594
- switch (_a.label) {
595
- case 0:
596
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
597
- newExpeditionInfo = expeditionInfo;
598
- if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
599
- newExpeditionInfo = __assign(__assign({}, expeditionInfo), { address: __assign(__assign({}, expeditionInfo.address), { country: 'CA' }) });
600
- }
601
- if (!!!saveToDatabase) return [3, 2];
602
- return [4, saveCart({
603
- is_pickup: isPickupAtStore,
604
- shipping_address: newExpeditionInfo,
605
- shipping_selected: undefined
606
- })];
607
- case 1:
608
- cart = _a.sent();
609
- return [3, 3];
610
- case 2:
611
- cart = __assign(__assign({}, cart), { is_pickup: isPickupAtStore, shipping_address: newExpeditionInfo, shipping_selected: undefined });
612
- _a.label = 3;
613
- case 3: return [2, cart];
614
- }
285
+ const setPaidBy = async (paidByValue, customPriceList, chosenPayment) => {
286
+ if (!!!cartData)
287
+ return;
288
+ let partial = { paid_by: paidByValue, id: cartData.id };
289
+ if (!!customPriceList) {
290
+ const customIncentiveInfo = (0, g2_1.getCustomIncentiveInfo)(customPriceList, cartData.discount_rules);
291
+ if (!!customIncentiveInfo) {
292
+ partial = Object.assign(Object.assign({}, partial), { discount_rules: customIncentiveInfo.updatedDiscountRules });
293
+ }
294
+ }
295
+ if (!!chosenPayment && chosenPayment != paidByValue) {
296
+ partial = Object.assign(Object.assign({}, partial), { shipping_payload: Object.assign(Object.assign({}, (cartData.shipping_payload || {})), { chosen_payment: chosenPayment }) });
297
+ }
298
+ try {
299
+ await saveCart(partial, false, undefined, false, true);
300
+ }
301
+ catch (e) {
302
+ console.log('error on saving cart with paid_by value: ', e);
303
+ }
304
+ };
305
+ const saveOrder = async (payment_payload) => {
306
+ if (!!!api)
307
+ throw new Error('SDK not initialised');
308
+ if (!!!cartData)
309
+ throw new Error("Can't pay an empty/undefined cart");
310
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
311
+ throw new Error(`Can't process a paid or higher status cart.`);
312
+ try {
313
+ const fetchData = await fetch(`${api.api}/cart/${cartData.id}/saveOrder`, {
314
+ method: 'POST',
315
+ headers: {
316
+ authorization: `Bearer ${api.token}`,
317
+ 'Content-Type': 'application/json',
318
+ 'x-gng-ecomm-token': api.userToken
319
+ },
320
+ body: JSON.stringify({ payment_payload })
615
321
  });
616
- });
322
+ const response = (await fetchData.json());
323
+ if (response.status !== 200) {
324
+ return 'error';
325
+ }
326
+ return response.data;
327
+ }
328
+ catch (err) {
329
+ return 'error';
330
+ }
331
+ };
332
+ const removeDiscountRule = async (cart, code) => {
333
+ try {
334
+ await saveCart({
335
+ subtotalWithoutPromotions: null,
336
+ cart_promo_applied: null,
337
+ cart_promos_applied: !!cart.cart_promos_applied
338
+ ? cart.cart_promos_applied.filter((x) => x.promo_code !== code)
339
+ : null
340
+ });
341
+ return true;
342
+ }
343
+ catch (e) {
344
+ console.log('error on removing discountRule: ', e.toString());
345
+ return false;
346
+ }
347
+ };
348
+ const updateBillingAddress = async (newCart, expeditionInfo, saveToDatabase = true, setCAIfNoCountry) => {
349
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
350
+ let newExpeditionInfo = expeditionInfo;
351
+ if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
352
+ newExpeditionInfo = Object.assign(Object.assign({}, expeditionInfo), { address: Object.assign(Object.assign({}, expeditionInfo.address), { country: 'CA' }) });
353
+ }
354
+ if (!!saveToDatabase) {
355
+ cart = await saveCart({ billing_address: newExpeditionInfo });
356
+ }
357
+ else {
358
+ cart = Object.assign(Object.assign({}, cart), { billing_address: newExpeditionInfo });
359
+ }
360
+ return cart;
617
361
  };
618
- var getIsSameBillingThenShipping = function () {
362
+ const updateShippingAddress = async (newCart, isPickupAtStore, expeditionInfo, saveToDatabase = true, setCAIfNoCountry) => {
363
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
364
+ let newExpeditionInfo = expeditionInfo;
365
+ if (!!setCAIfNoCountry && !!expeditionInfo && !!!expeditionInfo.address.country) {
366
+ newExpeditionInfo = Object.assign(Object.assign({}, expeditionInfo), { address: Object.assign(Object.assign({}, expeditionInfo.address), { country: 'CA' }) });
367
+ }
368
+ if (!!saveToDatabase) {
369
+ cart = await saveCart({
370
+ is_pickup: isPickupAtStore,
371
+ shipping_address: newExpeditionInfo,
372
+ shipping_selected: undefined
373
+ });
374
+ }
375
+ else {
376
+ cart = Object.assign(Object.assign({}, cart), { is_pickup: isPickupAtStore, shipping_address: newExpeditionInfo, shipping_selected: undefined });
377
+ }
378
+ return cart;
379
+ };
380
+ const getIsSameBillingThenShipping = () => {
619
381
  if (!!!cartData)
620
382
  return false;
621
383
  if (!!!cartData.billing_address && !!!cartData.shipping_address)
@@ -626,355 +388,253 @@ var CartContextProvider = function (_a) {
626
388
  (0, functions_1.string_to_slug)(cartData.shipping_address.address.postal_code) &&
627
389
  (0, functions_1.string_to_slug)(cartData.billing_address.address.line1) === (0, functions_1.string_to_slug)(cartData.shipping_address.address.line1));
628
390
  };
629
- var setShippingPayload = function (newCart, payload, saveToDatabase) {
630
- if (saveToDatabase === void 0) { saveToDatabase = true; }
631
- return __awaiter(void 0, void 0, void 0, function () {
632
- var cart;
633
- return __generator(this, function (_a) {
634
- switch (_a.label) {
635
- case 0:
636
- cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
637
- if (!!!saveToDatabase) return [3, 2];
638
- return [4, saveCart({ shipping_payload: payload })];
639
- case 1:
640
- cart = _a.sent();
641
- return [3, 3];
642
- case 2:
643
- cart = __assign(__assign({}, cart), { shipping_payload: payload });
644
- _a.label = 3;
645
- case 3: return [2, cart];
646
- }
647
- });
391
+ const setShippingPayload = async (newCart, payload, saveToDatabase = true) => {
392
+ let cart = !!newCart ? newCart : !!cartData ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB);
393
+ if (!!saveToDatabase) {
394
+ cart = await saveCart({ shipping_payload: payload });
395
+ }
396
+ else {
397
+ cart = Object.assign(Object.assign({}, cart), { shipping_payload: payload });
398
+ }
399
+ return cart;
400
+ };
401
+ const getShippingQuotes = async () => {
402
+ if (!!!api || !!!sdk)
403
+ return;
404
+ if (!!!cartData)
405
+ throw new Error("Can't get shipping quotes for an empty/undefined cart");
406
+ if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
407
+ throw new Error(`Can't process a paid or higher status cart.`);
408
+ const request = await fetch(`${api.api}/cart/getShippingQuotes`, {
409
+ method: 'POST',
410
+ headers: {
411
+ Authorization: `Bearer ${api.token}`,
412
+ 'x-gng-ecomm-token': api.userToken
413
+ },
414
+ body: cartData.id
648
415
  });
416
+ const responseData = (await request.json());
417
+ if (responseData.status != 200 || !!responseData.error) {
418
+ throw 'Erreur lors de la requête des quotes.' + responseData.error;
419
+ }
420
+ if (responseData.token) {
421
+ sdk.setUserToken(responseData.token);
422
+ }
423
+ return responseData.data.shippingQuotes;
649
424
  };
650
- var getShippingQuotes = function () { return __awaiter(void 0, void 0, void 0, function () {
651
- var request, responseData;
652
- return __generator(this, function (_a) {
653
- switch (_a.label) {
654
- case 0:
655
- if (!!!api || !!!sdk)
656
- return [2];
657
- if (!!!cartData)
658
- throw new Error("Can't get shipping quotes for an empty/undefined cart");
659
- if (cartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
660
- throw new Error("Can't process a paid or higher status cart.");
661
- return [4, fetch("".concat(api.api, "/cart/getShippingQuotes"), {
662
- method: 'POST',
663
- headers: {
664
- Authorization: "Bearer ".concat(api.token),
665
- 'x-gng-ecomm-token': api.userToken
666
- },
667
- body: cartData.id
668
- })];
669
- case 1:
670
- request = _a.sent();
671
- return [4, request.json()];
672
- case 2:
673
- responseData = (_a.sent());
674
- if (responseData.status != 200 || !!responseData.error) {
675
- throw 'Erreur lors de la requête des quotes.' + responseData.error;
676
- }
677
- if (responseData.token) {
678
- sdk.setUserToken(responseData.token);
679
- }
680
- return [2, responseData.data.shippingQuotes];
681
- }
425
+ const selectShippingQuote = async (quote) => {
426
+ if (!!!api || !!!sdk)
427
+ return;
428
+ if (!!!cartData)
429
+ throw new Error("Can't select shipping quote for an empty/undefined cart");
430
+ const request = await fetch(`${api.api}/cart/${cartData.id}/setSelectedShippingMethod`, {
431
+ method: 'POST',
432
+ headers: {
433
+ Authorization: `Bearer ${api.token}`,
434
+ 'Content-Type': 'application/json',
435
+ 'x-gng-ecomm-token': api.userToken
436
+ },
437
+ body: JSON.stringify(quote)
682
438
  });
683
- }); };
684
- var selectShippingQuote = function (quote) { return __awaiter(void 0, void 0, void 0, function () {
685
- var request, responseData, updatedCart;
686
- return __generator(this, function (_a) {
687
- switch (_a.label) {
688
- case 0:
689
- if (!!!api || !!!sdk)
690
- return [2];
691
- if (!!!cartData)
692
- throw new Error("Can't select shipping quote for an empty/undefined cart");
693
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/setSelectedShippingMethod"), {
694
- method: 'POST',
695
- headers: {
696
- Authorization: "Bearer ".concat(api.token),
697
- 'Content-Type': 'application/json',
698
- 'x-gng-ecomm-token': api.userToken
699
- },
700
- body: JSON.stringify(quote)
701
- })];
702
- case 1:
703
- request = _a.sent();
704
- return [4, request.json()];
705
- case 2:
706
- responseData = _a.sent();
707
- if (responseData.status != 200) {
708
- throw new Error('Impossible de sélectionner la shipping quote ' + responseData.error);
709
- }
710
- if (responseData.token) {
711
- sdk.setUserToken(responseData.token);
712
- }
713
- updatedCart = responseData.data;
714
- setCartData(updatedCart);
715
- return [2, updatedCart];
439
+ const responseData = await request.json();
440
+ if (responseData.status != 200) {
441
+ throw new Error('Impossible de sélectionner la shipping quote ' + responseData.error);
442
+ }
443
+ if (responseData.token) {
444
+ sdk.setUserToken(responseData.token);
445
+ }
446
+ const updatedCart = responseData.data;
447
+ setCartData(updatedCart);
448
+ return updatedCart;
449
+ };
450
+ const setPromoCode = async (promo_code) => {
451
+ try {
452
+ await saveCart({}, true, promo_code);
453
+ }
454
+ catch (error) {
455
+ if (process.env.NODE_ENV === 'development')
456
+ console.log(`error on SDK while applying promo on cart`, error);
457
+ }
458
+ };
459
+ const getCartFromDatabase = async (cardID) => {
460
+ if (!!!api || !!!sdk)
461
+ return;
462
+ const request = await fetch(`${api.api}/cart/${cardID}`, {
463
+ method: 'GET',
464
+ headers: {
465
+ Authorization: `Bearer ${api.token}`,
466
+ 'Content-Type': 'application/json',
467
+ 'x-gng-ecomm-token': api.userToken
716
468
  }
717
469
  });
718
- }); };
719
- var setPromoCode = function (promo_code) { return __awaiter(void 0, void 0, void 0, function () {
720
- var error_2;
721
- return __generator(this, function (_a) {
722
- switch (_a.label) {
723
- case 0:
724
- _a.trys.push([0, 2, , 3]);
725
- return [4, saveCart({}, true, promo_code)];
726
- case 1:
727
- _a.sent();
728
- return [3, 3];
729
- case 2:
730
- error_2 = _a.sent();
731
- if (process.env.NODE_ENV === 'development')
732
- console.log("error on SDK while applying promo on cart", error_2);
733
- return [3, 3];
734
- case 3: return [2];
470
+ const responseData = await request.json();
471
+ if (responseData.status !== 200) {
472
+ throw new Error('Impossible de fetch le cart: ' + responseData.error);
473
+ }
474
+ if (responseData.token) {
475
+ sdk.setUserToken(responseData.token);
476
+ }
477
+ return responseData.data;
478
+ };
479
+ const saveCart = async (cart, saveToDatabase = true, promo_code, onlyNewCart = false, partialOnly = false) => {
480
+ let newCartData = Object.assign(Object.assign({}, (!!cartData && !!!onlyNewCart ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), cart);
481
+ if (!!!newCartData)
482
+ throw new Error("Can't save an empty/undefined cart");
483
+ if (newCartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
484
+ throw new Error(`Can't process a paid or higher status cart.`);
485
+ if (!!api) {
486
+ const response = await fetch(`${api.api}/cart`, {
487
+ method: 'POST',
488
+ headers: {
489
+ Authorization: `Bearer ${api.token}`,
490
+ 'Content-Type': 'application/json',
491
+ 'x-gng-ecomm-token': api.userToken
492
+ },
493
+ body: JSON.stringify({ cartData: newCartData, currency, locale, promo_code, saveToDatabase, partialOnly })
494
+ });
495
+ const responseData = await response.json();
496
+ if (responseData.status != 200 || !!responseData.error) {
497
+ setCartErrors([
498
+ typeof responseData.error === 'string'
499
+ ? responseData.error
500
+ : (0, functions_1.getStringByLang)(responseData.error, locale)
501
+ ]);
735
502
  }
736
- });
737
- }); };
738
- var getCartFromDatabase = function (cardID) { return __awaiter(void 0, void 0, void 0, function () {
739
- var request, responseData;
740
- return __generator(this, function (_a) {
741
- switch (_a.label) {
742
- case 0:
743
- if (!!!api || !!!sdk)
744
- return [2];
745
- return [4, fetch("".concat(api.api, "/cart/").concat(cardID), {
746
- method: 'GET',
747
- headers: {
748
- Authorization: "Bearer ".concat(api.token),
749
- 'Content-Type': 'application/json',
750
- 'x-gng-ecomm-token': api.userToken
751
- }
752
- })];
753
- case 1:
754
- request = _a.sent();
755
- return [4, request.json()];
756
- case 2:
757
- responseData = _a.sent();
758
- if (responseData.status !== 200) {
759
- throw new Error('Impossible de fetch le cart: ' + responseData.error);
760
- }
761
- if (responseData.token) {
762
- sdk.setUserToken(responseData.token);
503
+ else {
504
+ if (!!responseData.data) {
505
+ const cartIDInLocalStorage = localStorage.getItem(`${api.org}__cart`);
506
+ if (!!responseData.data.id && (!!!cartIDInLocalStorage || cartIDInLocalStorage !== responseData.data.id)) {
507
+ localStorage.setItem(`${api.org}__cart`, responseData.data.id);
763
508
  }
764
- return [2, responseData.data];
765
- }
766
- });
767
- }); };
768
- var saveCart = function (cart, saveToDatabase, promo_code, onlyNewCart, partialOnly) {
769
- if (saveToDatabase === void 0) { saveToDatabase = true; }
770
- if (onlyNewCart === void 0) { onlyNewCart = false; }
771
- if (partialOnly === void 0) { partialOnly = false; }
772
- return __awaiter(void 0, void 0, void 0, function () {
773
- var newCartData, response, responseData, cartIDInLocalStorage;
774
- return __generator(this, function (_a) {
775
- switch (_a.label) {
776
- case 0:
777
- newCartData = __assign(__assign({}, (!!cartData && !!!onlyNewCart ? cartData : (0, Cart_1.getDefaultCart)(Cart_1.CartTypeEnum.WEB))), cart);
778
- if (!!!newCartData)
779
- throw new Error("Can't save an empty/undefined cart");
780
- if (newCartData.status >= Cart_1.CartStatusEnum.CHECKOUT_PAYMENT_SUCCESS)
781
- throw new Error("Can't process a paid or higher status cart.");
782
- if (!!!api) return [3, 3];
783
- return [4, fetch("".concat(api.api, "/cart"), {
784
- method: 'POST',
785
- headers: {
786
- Authorization: "Bearer ".concat(api.token),
787
- 'Content-Type': 'application/json',
788
- 'x-gng-ecomm-token': api.userToken
789
- },
790
- body: JSON.stringify({ cartData: newCartData, currency: currency, locale: locale, promo_code: promo_code, saveToDatabase: saveToDatabase, partialOnly: partialOnly })
791
- })];
792
- case 1:
793
- response = _a.sent();
794
- return [4, response.json()];
795
- case 2:
796
- responseData = _a.sent();
797
- if (responseData.status != 200 || !!responseData.error) {
798
- setCartErrors([
799
- typeof responseData.error === 'string'
800
- ? responseData.error
801
- : (0, functions_1.getStringByLang)(responseData.error, locale)
802
- ]);
803
- }
804
- else {
805
- if (!!responseData.data) {
806
- cartIDInLocalStorage = localStorage.getItem("".concat(api.org, "__cart"));
807
- if (!!responseData.data.id && (!!!cartIDInLocalStorage || cartIDInLocalStorage !== responseData.data.id)) {
808
- localStorage.setItem("".concat(api.org, "__cart"), responseData.data.id);
809
- }
810
- newCartData = responseData.data;
811
- setCartData(newCartData);
812
- setCartErrors([]);
813
- }
814
- }
815
- return [3, 4];
816
- case 3:
817
- setCartData(newCartData);
818
- _a.label = 4;
819
- case 4: return [2, newCartData];
509
+ newCartData = responseData.data;
510
+ setCartData(newCartData);
511
+ setCartErrors([]);
820
512
  }
821
- });
822
- });
513
+ }
514
+ }
515
+ else {
516
+ setCartData(newCartData);
517
+ }
518
+ return newCartData;
823
519
  };
824
- var getApplicablePromos = function (forceShipping) { return __awaiter(void 0, void 0, void 0, function () {
825
- var request, responseData;
826
- return __generator(this, function (_a) {
827
- switch (_a.label) {
828
- case 0:
829
- if (!!!api || !!!sdk)
830
- return [2];
831
- if (!!!cartData)
832
- throw new Error("Can't get promos if no cart data");
833
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/getApplicablePromosWithShipping"), {
834
- method: 'GET',
835
- headers: {
836
- Authorization: "Bearer ".concat(api.token),
837
- 'Content-Type': 'application/json',
838
- 'x-gng-ecomm-token': api.userToken
839
- }
840
- })];
841
- case 1:
842
- request = _a.sent();
843
- return [4, request.json()];
844
- case 2:
845
- responseData = _a.sent();
846
- if (responseData.status !== 200) {
847
- throw new Error('Impossible de fetch les promos associé: ' + responseData.error);
848
- }
849
- return [2, responseData.data];
520
+ const getApplicablePromos = async (forceShipping) => {
521
+ if (!!!api || !!!sdk)
522
+ return;
523
+ if (!!!cartData)
524
+ throw new Error("Can't get promos if no cart data");
525
+ const request = await fetch(`${api.api}/cart/${cartData.id}/getApplicablePromosWithShipping`, {
526
+ method: 'GET',
527
+ headers: {
528
+ Authorization: `Bearer ${api.token}`,
529
+ 'Content-Type': 'application/json',
530
+ 'x-gng-ecomm-token': api.userToken
850
531
  }
851
532
  });
852
- }); };
853
- var canBePaidWithPA = function (userId) { return __awaiter(void 0, void 0, void 0, function () {
854
- var request, responseData;
855
- return __generator(this, function (_a) {
856
- switch (_a.label) {
857
- case 0:
858
- if (!!!api)
859
- return [2];
860
- if (!!!cartData)
861
- throw new Error("Can't check if cart is payable with PA if cartData is undefined.");
862
- if (!!!userId)
863
- throw new Error("Can't check if cart is payable with PA without userId");
864
- return [4, fetch("".concat(api.api, "/cart/").concat(cartData.id, "/canBePaidWithPA"), {
865
- method: 'POST',
866
- headers: {
867
- Authorization: "Bearer ".concat(api.token),
868
- 'Content-Type': 'application/json',
869
- 'x-gng-ecomm-token': api.userToken
870
- },
871
- body: JSON.stringify({ userId: userId })
872
- })];
873
- case 1:
874
- request = _a.sent();
875
- return [4, request.json()];
876
- case 2:
877
- responseData = _a.sent();
878
- if (responseData.status !== 200) {
879
- throw new Error("Can't apply promise to purchase to cart: " + responseData.error);
880
- }
881
- return [2, responseData.data];
882
- }
533
+ const responseData = await request.json();
534
+ if (responseData.status !== 200) {
535
+ throw new Error('Impossible de fetch les promos associé: ' + responseData.error);
536
+ }
537
+ return responseData.data;
538
+ };
539
+ const canBePaidWithPA = async (userId) => {
540
+ if (!!!api)
541
+ return;
542
+ if (!!!cartData)
543
+ throw new Error("Can't check if cart is payable with PA if cartData is undefined.");
544
+ if (!!!userId)
545
+ throw new Error("Can't check if cart is payable with PA without userId");
546
+ const request = await fetch(`${api.api}/cart/${cartData.id}/canBePaidWithPA`, {
547
+ method: 'POST',
548
+ headers: {
549
+ Authorization: `Bearer ${api.token}`,
550
+ 'Content-Type': 'application/json',
551
+ 'x-gng-ecomm-token': api.userToken
552
+ },
553
+ body: JSON.stringify({ userId })
883
554
  });
884
- }); };
885
- var getPaymentIncentiveDiscountAmount = function (skipCheckForRuleFields) {
555
+ const responseData = await request.json();
556
+ if (responseData.status !== 200) {
557
+ throw new Error("Can't apply promise to purchase to cart: " + responseData.error);
558
+ }
559
+ return responseData.data;
560
+ };
561
+ const getPaymentIncentiveDiscountAmount = (skipCheckForRuleFields) => {
886
562
  if (!!!cartData)
887
563
  return;
888
564
  if (!!cartData.promo_after_taxes_amount)
889
565
  return cartData.promo_after_taxes_amount;
890
- var couldApplyIncentive = (0, discount_1.checkIfCouldApplyIncentivePromo)(cartData, skipCheckForRuleFields);
566
+ let couldApplyIncentive = (0, discount_1.checkIfCouldApplyIncentivePromo)(cartData, skipCheckForRuleFields);
891
567
  if (!!!couldApplyIncentive)
892
568
  return;
893
- var incentiveCalculatedAmount = (0, discount_1.getAfterTaxesPromosTotalAmount)(cartData, true);
569
+ let incentiveCalculatedAmount = (0, discount_1.getAfterTaxesPromosTotalAmount)(cartData, true);
894
570
  return incentiveCalculatedAmount;
895
571
  };
896
- (0, react_1.useEffect)(function () {
572
+ (0, react_1.useEffect)(() => {
897
573
  if (!!!locale || !!!cartData || cartData.locale === locale)
898
574
  return;
899
- saveCart({ locale: locale });
575
+ saveCart({ locale });
900
576
  }, [locale]);
901
- (0, react_1.useEffect)(function () {
577
+ (0, react_1.useEffect)(() => {
902
578
  if (!!!sdk || !userLoaded)
903
579
  return;
904
- var checkCartCustomerValid = function () { return __awaiter(void 0, void 0, void 0, function () {
905
- var customerId, customerEmail, customerDoc;
906
- return __generator(this, function (_a) {
907
- switch (_a.label) {
908
- case 0:
909
- if (!(!isUserLoggedIn && !!cartData)) return [3, 2];
910
- customerId = cartData.customer_id;
911
- customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
912
- customerDoc = !!cartData.customer_info ? cartData.customer_info.pro_proof_doc : '';
913
- if (!(!!customerId || !!customerEmail || !!customerDoc)) return [3, 2];
914
- return [4, emptyCart()];
915
- case 1:
916
- _a.sent();
917
- _a.label = 2;
918
- case 2: return [2];
580
+ const checkCartCustomerValid = async () => {
581
+ if (!isUserLoggedIn && !!cartData) {
582
+ const customerId = cartData.customer_id;
583
+ const customerEmail = !!cartData.customer_info ? cartData.customer_info.customer_default_email : '';
584
+ const customerDoc = !!cartData.customer_info ? cartData.customer_info.pro_proof_doc : '';
585
+ if (!!customerId || !!customerEmail || !!customerDoc) {
586
+ await emptyCart();
919
587
  }
920
- });
921
- }); };
588
+ }
589
+ };
922
590
  checkCartCustomerValid();
923
591
  }, [sdk, isUserLoggedIn, userLoaded, cartData]);
924
- (0, react_1.useEffect)(function () {
592
+ (0, react_1.useEffect)(() => {
925
593
  if (!!!api)
926
594
  return;
927
- var getContent = function () { return __awaiter(void 0, void 0, void 0, function () {
928
- var cartData;
929
- return __generator(this, function (_a) {
930
- switch (_a.label) {
931
- case 0: return [4, initCart()];
932
- case 1:
933
- cartData = _a.sent();
934
- if (!!!cartData)
935
- return [2];
936
- setCartData(cartData);
937
- return [2];
938
- }
939
- });
940
- }); };
595
+ const getContent = async () => {
596
+ const cartData = await initCart();
597
+ if (!!!cartData)
598
+ return;
599
+ setCartData(cartData);
600
+ };
941
601
  getContent();
942
602
  }, [sdk]);
943
- return ((0, jsx_runtime_1.jsx)(_1.default.Provider, __assign({ value: {
944
- loading: loading,
945
- cartData: cartData,
946
- cartErrors: cartErrors,
947
- cartSliderOpen: cartSliderOpen,
948
- isGuest: isGuest,
949
- setIsGuest: setIsGuest,
950
- setCartErrors: setCartErrors,
951
- setCartData: setCartData,
952
- saveCart: saveCart,
603
+ return ((0, jsx_runtime_1.jsx)(_1.default.Provider, Object.assign({ value: {
604
+ loading,
605
+ cartData,
606
+ cartErrors,
607
+ cartSliderOpen,
608
+ isGuest,
609
+ setIsGuest,
610
+ setCartErrors,
611
+ setCartData,
612
+ saveCart,
953
613
  setCartLoading: setLoading,
954
- getCartFromDatabase: getCartFromDatabase,
955
- handlePayment: handlePayment,
956
- setCartSliderOpen: setCartSliderOpen,
957
- addItem: addItem,
958
- deleteItem: deleteItem,
959
- updateItem: updateItem,
960
- verifyCart: verifyCart,
961
- uploadFileToOrder: uploadFileToOrder,
962
- updateEmail: updateEmail,
963
- updateDefaultCustomer: updateDefaultCustomer,
964
- emptyCart: emptyCart,
965
- saveOrder: saveOrder,
966
- updateShippingAddress: updateShippingAddress,
967
- updateBillingAddress: updateBillingAddress,
968
- getIsSameBillingThenShipping: getIsSameBillingThenShipping,
969
- setShippingPayload: setShippingPayload,
970
- removeDiscountRule: removeDiscountRule,
971
- getShippingQuotes: getShippingQuotes,
972
- selectShippingQuote: selectShippingQuote,
973
- setPromoCode: setPromoCode,
974
- getApplicablePromos: getApplicablePromos,
975
- canBePaidWithPA: canBePaidWithPA,
976
- getPaymentIncentiveDiscountAmount: getPaymentIncentiveDiscountAmount,
977
- setPaidBy: setPaidBy
614
+ getCartFromDatabase,
615
+ handlePayment,
616
+ setCartSliderOpen,
617
+ addItem,
618
+ deleteItem,
619
+ updateItem,
620
+ verifyCart,
621
+ uploadFileToOrder,
622
+ updateEmail,
623
+ updateDefaultCustomer,
624
+ emptyCart,
625
+ saveOrder,
626
+ updateShippingAddress,
627
+ updateBillingAddress,
628
+ getIsSameBillingThenShipping,
629
+ setShippingPayload,
630
+ removeDiscountRule,
631
+ getShippingQuotes,
632
+ selectShippingQuote,
633
+ setPromoCode,
634
+ getApplicablePromos,
635
+ canBePaidWithPA,
636
+ getPaymentIncentiveDiscountAmount,
637
+ setPaidBy
978
638
  } }, { children: children })));
979
639
  };
980
640
  exports.default = CartContextProvider;