addio-ecomm-sdk 1.3.74 → 1.3.76

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 (107) hide show
  1. package/.vscode/settings.json +34 -34
  2. package/README.md +79 -79
  3. package/dist/index.d.ts +203 -202
  4. package/dist/index.js +1818 -1818
  5. package/dist/index.js.map +1 -1
  6. package/dist/lib/constants/components/CreditCardInput.d.ts +11 -11
  7. package/dist/lib/constants/components/CreditCardInput.js +79 -79
  8. package/dist/lib/constants/components/Snackbar.d.ts +11 -11
  9. package/dist/lib/constants/components/Snackbar.js +39 -39
  10. package/dist/lib/constants/contexts/CartContext/CartContextProvider.d.ts +7 -7
  11. package/dist/lib/constants/contexts/CartContext/CartContextProvider.js +980 -980
  12. package/dist/lib/constants/contexts/CartContext/index.d.ts +79 -79
  13. package/dist/lib/constants/contexts/CartContext/index.js +127 -127
  14. package/dist/lib/constants/contexts/DataContext/DataContextProvider.d.ts +15 -15
  15. package/dist/lib/constants/contexts/DataContext/DataContextProvider.js +304 -304
  16. package/dist/lib/constants/contexts/DataContext/index.d.ts +47 -47
  17. package/dist/lib/constants/contexts/DataContext/index.js +67 -67
  18. package/dist/lib/constants/contexts/LogContext/LogContextProvider.d.ts +6 -6
  19. package/dist/lib/constants/contexts/LogContext/LogContextProvider.js +103 -103
  20. package/dist/lib/constants/contexts/LogContext/index.d.ts +7 -7
  21. package/dist/lib/constants/contexts/LogContext/index.js +45 -45
  22. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.d.ts +7 -7
  23. package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.js +76 -76
  24. package/dist/lib/constants/contexts/ModalContext/index.d.ts +14 -14
  25. package/dist/lib/constants/contexts/ModalContext/index.js +18 -18
  26. package/dist/lib/constants/contexts/SDKContext/SDKProvider.d.ts +8 -8
  27. package/dist/lib/constants/contexts/SDKContext/SDKProvider.js +79 -79
  28. package/dist/lib/constants/contexts/SDKContext/index.d.ts +4 -4
  29. package/dist/lib/constants/contexts/SDKContext/index.js +4 -4
  30. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.d.ts +4 -4
  31. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.js +6 -6
  32. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.d.ts +12 -12
  33. package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.js +52 -52
  34. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.d.ts +17 -17
  35. package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.js +21 -21
  36. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.d.ts +7 -7
  37. package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.js +179 -179
  38. package/dist/lib/constants/contexts/StockNotifContext/index.d.ts +10 -10
  39. package/dist/lib/constants/contexts/StockNotifContext/index.js +10 -10
  40. package/dist/lib/constants/contexts/UserContext/UserContextProvider.d.ts +5 -5
  41. package/dist/lib/constants/contexts/UserContext/UserContextProvider.js +470 -470
  42. package/dist/lib/constants/contexts/UserContext/index.d.ts +54 -54
  43. package/dist/lib/constants/contexts/UserContext/index.js +82 -82
  44. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.d.ts +6 -6
  45. package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.js +327 -327
  46. package/dist/lib/constants/contexts/WishlistContext/index.d.ts +12 -12
  47. package/dist/lib/constants/contexts/WishlistContext/index.js +12 -12
  48. package/dist/lib/constants/hooks/useCart.d.ts +2 -2
  49. package/dist/lib/constants/hooks/useCart.js +11 -11
  50. package/dist/lib/constants/hooks/useData.d.ts +2 -2
  51. package/dist/lib/constants/hooks/useData.js +11 -11
  52. package/dist/lib/constants/hooks/useLogs.d.ts +2 -2
  53. package/dist/lib/constants/hooks/useLogs.js +11 -11
  54. package/dist/lib/constants/hooks/useModal.d.ts +2 -2
  55. package/dist/lib/constants/hooks/useModal.js +11 -11
  56. package/dist/lib/constants/hooks/useSDK.d.ts +2 -2
  57. package/dist/lib/constants/hooks/useSDK.js +11 -11
  58. package/dist/lib/constants/hooks/useSnackbar.d.ts +2 -2
  59. package/dist/lib/constants/hooks/useSnackbar.js +11 -11
  60. package/dist/lib/constants/hooks/useStockNotif.d.ts +2 -2
  61. package/dist/lib/constants/hooks/useStockNotif.js +11 -11
  62. package/dist/lib/constants/hooks/useUser.d.ts +2 -2
  63. package/dist/lib/constants/hooks/useUser.js +11 -11
  64. package/dist/lib/constants/hooks/useWishlist.d.ts +2 -2
  65. package/dist/lib/constants/hooks/useWishlist.js +11 -11
  66. package/dist/lib/models/image/index.d.ts +6 -6
  67. package/dist/lib/models/image/index.js +15 -15
  68. package/dist/lib/models/stockNotification/index.d.ts +13 -13
  69. package/dist/lib/models/stockNotification/index.js +130 -130
  70. package/dist/lib/models/wishlist/index.d.ts +14 -14
  71. package/dist/lib/models/wishlist/index.js +155 -155
  72. package/dist/utils/StripeErrors.d.ts +24 -24
  73. package/dist/utils/StripeErrors.js +55 -55
  74. package/dist/utils/algolia.d.ts +3 -3
  75. package/dist/utils/algolia.js +81 -81
  76. package/dist/utils/analytics.d.ts +71 -71
  77. package/dist/utils/analytics.js +257 -257
  78. package/dist/utils/cart.d.ts +3 -3
  79. package/dist/utils/cart.js +66 -66
  80. package/dist/utils/contentful.d.ts +10 -10
  81. package/dist/utils/contentful.js +136 -136
  82. package/dist/utils/functions.d.ts +21 -21
  83. package/dist/utils/functions.js +200 -200
  84. package/dist/utils/getSDK.d.ts +4 -4
  85. package/dist/utils/getSDK.js +77 -77
  86. package/dist/utils/initStoreData.d.ts +3 -3
  87. package/dist/utils/initStoreData.js +62 -62
  88. package/dist/utils/interfaces/IClientCMSData.d.ts +132 -132
  89. package/dist/utils/interfaces/IClientCMSData.js +2 -2
  90. package/dist/utils/interfaces/IEndpointResult.d.ts +10 -10
  91. package/dist/utils/interfaces/IEndpointResult.js +2 -2
  92. package/dist/utils/interfaces/IFacebookUserProfile.d.ts +10 -10
  93. package/dist/utils/interfaces/IFacebookUserProfile.js +2 -2
  94. package/dist/utils/interfaces/IFilter.d.ts +23 -23
  95. package/dist/utils/interfaces/IFilter.js +2 -2
  96. package/dist/utils/interfaces/IGoogleUserProfile.d.ts +7 -7
  97. package/dist/utils/interfaces/IGoogleUserProfile.js +2 -2
  98. package/dist/utils/interfaces/ISDKConfig.d.ts +7 -7
  99. package/dist/utils/interfaces/ISDKConfig.js +2 -2
  100. package/dist/utils/interfaces/ISpaceData.d.ts +18 -18
  101. package/dist/utils/interfaces/ISpaceData.js +2 -2
  102. package/dist/utils/larivieremeunier.d.ts +3 -3
  103. package/dist/utils/larivieremeunier.js +156 -156
  104. package/dist/utils/technosupply.d.ts +3 -3
  105. package/dist/utils/technosupply.js +155 -155
  106. package/package.json +61 -61
  107. package/publish.sh +132 -132
@@ -1,328 +1,328 @@
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
- if (k2 === undefined) k2 = k;
15
- var desc = Object.getOwnPropertyDescriptor(m, k);
16
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
- desc = { enumerable: true, get: function() { return m[k]; } };
18
- }
19
- Object.defineProperty(o, k2, desc);
20
- }) : (function(o, m, k, k2) {
21
- if (k2 === undefined) k2 = k;
22
- o[k2] = m[k];
23
- }));
24
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
- Object.defineProperty(o, "default", { enumerable: true, value: v });
26
- }) : function(o, v) {
27
- o["default"] = v;
28
- });
29
- var __importStar = (this && this.__importStar) || function (mod) {
30
- if (mod && mod.__esModule) return mod;
31
- var result = {};
32
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
- __setModuleDefault(result, mod);
34
- return result;
35
- };
36
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
- return new (P || (P = Promise))(function (resolve, reject) {
39
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
- step((generator = generator.apply(thisArg, _arguments || [])).next());
43
- });
44
- };
45
- var __generator = (this && this.__generator) || function (thisArg, body) {
46
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
- function verb(n) { return function (v) { return step([n, v]); }; }
49
- function step(op) {
50
- if (f) throw new TypeError("Generator is already executing.");
51
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
- 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;
53
- if (y = 0, t) op = [op[0] & 2, t.value];
54
- switch (op[0]) {
55
- case 0: case 1: t = op; break;
56
- case 4: _.label++; return { value: op[1], done: false };
57
- case 5: _.label++; y = op[1]; op = [0]; continue;
58
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
- default:
60
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
- if (t[2]) _.ops.pop();
65
- _.trys.pop(); continue;
66
- }
67
- op = body.call(thisArg, _);
68
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
- }
71
- };
72
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
- if (ar || !(i in from)) {
75
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
- ar[i] = from[i];
77
- }
78
- }
79
- return to.concat(ar || Array.prototype.slice.call(from));
80
- };
81
- var __importDefault = (this && this.__importDefault) || function (mod) {
82
- return (mod && mod.__esModule) ? mod : { "default": mod };
83
- };
84
- Object.defineProperty(exports, "__esModule", { value: true });
85
- var jsx_runtime_1 = require("react/jsx-runtime");
86
- var lodash_1 = require("lodash");
87
- var react_1 = require("react");
88
- var _1 = __importStar(require("."));
89
- var useSDK_1 = __importDefault(require("../../hooks/useSDK"));
90
- var useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
91
- var useUser_1 = __importDefault(require("../../hooks/useUser"));
92
- var ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
93
- function WishlistContextProvider(_a) {
94
- var _this = this;
95
- var children = _a.children;
96
- var setSnackbar = (0, useSnackbar_1.default)().setSnackbar;
97
- var sdk = (0, useSDK_1.default)();
98
- var api = !!sdk ? sdk.getAPIInfos() : null;
99
- var _b = (0, useUser_1.default)(), isUserLoggedIn = _b.isUserLoggedIn, userData = _b.userData;
100
- var _c = (0, react_1.useState)(false), isFetching = _c[0], setIsFetching = _c[1];
101
- var _d = (0, react_1.useState)(false), isFetched = _d[0], setIsFetched = _d[1];
102
- var _e = (0, react_1.useState)(__assign({}, _1.defaultWishlist)), state = _e[0], setState = _e[1];
103
- var getData = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
104
- var storageWishlist, currentWishlist, _wishlist, e_1;
105
- return __generator(this, function (_a) {
106
- switch (_a.label) {
107
- case 0:
108
- if (!!!sdk || !!isFetching)
109
- return [2];
110
- if (!!!userData) {
111
- if (!!state.wishlist && !!state.wishlist.items && !!state.wishlist.items.length) {
112
- setState(_1.defaultWishlist);
113
- setIsFetching(false);
114
- setIsFetched(false);
115
- }
116
- return [2];
117
- }
118
- if (!!isFetched)
119
- return [2];
120
- setIsFetching(true);
121
- storageWishlist = JSON.parse(localStorage.getItem('wishlist') || '{}');
122
- currentWishlist = state.wishlist;
123
- if (!!Object.entries(storageWishlist).length) {
124
- currentWishlist = __assign(__assign({}, state.wishlist), { items: storageWishlist.items });
125
- setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: currentWishlist })); });
126
- }
127
- else {
128
- localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
129
- }
130
- currentWishlist = __assign(__assign({}, currentWishlist), { customer_id: !!userData ? String(userData.id) : '', user_email: !!userData && !!userData.basic_info.customer_email ? userData.basic_info.customer_email : '' });
131
- _wishlist = undefined;
132
- _a.label = 1;
133
- case 1:
134
- _a.trys.push([1, 3, , 4]);
135
- return [4, getFromDatabase(currentWishlist)];
136
- case 2:
137
- _wishlist = _a.sent();
138
- return [3, 4];
139
- case 3:
140
- e_1 = _a.sent();
141
- console.log('e: ', e_1);
142
- return [3, 4];
143
- case 4:
144
- if (!!_wishlist) {
145
- currentWishlist = __assign(__assign({}, currentWishlist), { id: _wishlist.id, items: (0, lodash_1.uniq)(__spreadArray(__spreadArray([], _wishlist.items, true), currentWishlist.items, true)) });
146
- setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: currentWishlist })); });
147
- }
148
- setIsFetching(false);
149
- setIsFetched(true);
150
- return [2];
151
- }
152
- });
153
- }); }, [state, userData]);
154
- (0, react_1.useEffect)(function () {
155
- getData();
156
- }, [getData]);
157
- var save = (0, react_1.useCallback)(function () {
158
- var storageWishlist = localStorage.getItem('wishlist');
159
- if (JSON.stringify(storageWishlist) !== JSON.stringify(state.wishlist)) {
160
- localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
161
- if (!!!isUserLoggedIn)
162
- return;
163
- saveToDatabase();
164
- }
165
- }, [state.wishlist.items]);
166
- (0, react_1.useEffect)(function () {
167
- save();
168
- }, [save]);
169
- var addItem = function (product_slug, product_name) {
170
- var alreadyInWishlist = false;
171
- setState(function (prevState) {
172
- alreadyInWishlist = prevState.wishlist.items.map(function (item) { return item; }).includes(product_slug);
173
- var newItems = prevState.wishlist.items;
174
- if (!!!alreadyInWishlist) {
175
- newItems = __spreadArray(__spreadArray([], prevState.wishlist.items, true), [product_slug], false);
176
- }
177
- return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: newItems }) });
178
- });
179
- if (alreadyInWishlist) {
180
- setSnackbar({
181
- title: 'Cet item est déjà dans votre liste de souhait',
182
- type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
183
- isShown: true
184
- });
185
- }
186
- else {
187
- setSnackbar({
188
- title: "".concat(product_name, " \u00E0 bien \u00E9t\u00E9 ajout\u00E9 \u00E0 votre liste de souhait"),
189
- isShown: true,
190
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
191
- });
192
- }
193
- };
194
- var removeItem = function (product_slug, product_name) {
195
- setState(function (prevState) {
196
- var newItems = prevState.wishlist.items.filter(function (item) { return item !== product_slug; });
197
- setSnackbar({
198
- title: "".concat(product_name, " \u00E0 bien \u00E9t\u00E9 retir\u00E9 de votre liste de souhait"),
199
- isShown: true,
200
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
201
- });
202
- return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: newItems }) });
203
- });
204
- };
205
- var clear = function () {
206
- setState(function (prevState) {
207
- setSnackbar({
208
- title: "Votre liste de souhaits \u00E0 bien \u00E9t\u00E9 vid\u00E9e.",
209
- isShown: true,
210
- type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
211
- });
212
- return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: [] }) });
213
- });
214
- saveToDatabase();
215
- };
216
- var getFromDatabase = function (wishlist) { return __awaiter(_this, void 0, void 0, function () {
217
- var request, responseData, dbWishlist;
218
- return __generator(this, function (_a) {
219
- switch (_a.label) {
220
- case 0:
221
- if (!!!api || !!!sdk)
222
- return [2];
223
- return [4, fetch("".concat(api.api, "/wishlist"), {
224
- method: 'POST',
225
- headers: {
226
- Authorization: "Bearer ".concat(api.token),
227
- 'Content-Type': 'application/json',
228
- 'x-gng-ecomm-token': api.userToken
229
- },
230
- body: JSON.stringify(wishlist)
231
- })];
232
- case 1:
233
- request = _a.sent();
234
- if (!!!request)
235
- return [2];
236
- return [4, request.json()];
237
- case 2:
238
- responseData = _a.sent();
239
- if (responseData.status != 200) {
240
- throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
241
- }
242
- if (responseData.token) {
243
- sdk.setUserToken(responseData.token);
244
- }
245
- dbWishlist = responseData.data;
246
- return [2, dbWishlist];
247
- }
248
- });
249
- }); };
250
- var saveToDatabase = function () { return __awaiter(_this, void 0, void 0, function () {
251
- var request, responseData_1, err_1, request, responseData, err_2;
252
- return __generator(this, function (_a) {
253
- switch (_a.label) {
254
- case 0:
255
- if (!!!state.wishlist || !!!api || !!!sdk)
256
- return [2];
257
- if (!!!state.wishlist.id && (!!!state.wishlist.items || !!!state.wishlist.items.length))
258
- return [2];
259
- if (!!!!state.wishlist.id) return [3, 6];
260
- _a.label = 1;
261
- case 1:
262
- _a.trys.push([1, 4, , 5]);
263
- return [4, fetch("".concat(api.api, "/wishlists/add"), {
264
- method: 'POST',
265
- headers: {
266
- Authorization: "Bearer ".concat(api.token),
267
- 'Content-Type': 'application/json',
268
- 'x-gng-ecomm-token': api.userToken
269
- },
270
- body: JSON.stringify(state.wishlist)
271
- })];
272
- case 2:
273
- request = _a.sent();
274
- if (!!!request)
275
- return [2];
276
- return [4, request.json()];
277
- case 3:
278
- responseData_1 = _a.sent();
279
- if (responseData_1.status != 200) {
280
- throw new Error('Impossible de créer la nouvelle wishlist: ' + responseData_1.error);
281
- }
282
- setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { id: responseData_1.data.id }) })); });
283
- if (responseData_1.token) {
284
- sdk.setUserToken(responseData_1.token);
285
- }
286
- return [3, 5];
287
- case 4:
288
- err_1 = _a.sent();
289
- console.log(err_1);
290
- return [3, 5];
291
- case 5: return [2];
292
- case 6:
293
- _a.trys.push([6, 9, , 10]);
294
- return [4, fetch("".concat(api.api, "/wishlists/").concat(state.wishlist.id, "/save"), {
295
- method: 'POST',
296
- headers: {
297
- Authorization: "Bearer ".concat(api.token),
298
- 'Content-Type': 'application/json',
299
- 'x-gng-ecomm-token': api.userToken
300
- },
301
- body: JSON.stringify(state.wishlist)
302
- })];
303
- case 7:
304
- request = _a.sent();
305
- if (!!!request)
306
- return [2];
307
- return [4, request.json()];
308
- case 8:
309
- responseData = _a.sent();
310
- if (responseData.status != 200) {
311
- throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
312
- }
313
- if (responseData.token) {
314
- sdk.setUserToken(responseData.token);
315
- }
316
- return [3, 10];
317
- case 9:
318
- err_2 = _a.sent();
319
- console.log(err_2);
320
- return [3, 10];
321
- case 10: return [2];
322
- }
323
- });
324
- }); };
325
- return ((0, jsx_runtime_1.jsx)(_1.default.Provider, __assign({ value: __assign(__assign({}, state), { isFetching: isFetching, addItem: addItem, removeItem: removeItem, clear: clear }) }, { children: (0, jsx_runtime_1.jsx)(react_1.Fragment, { children: children }) })));
326
- }
327
- exports.default = WishlistContextProvider;
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 __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
14
+ if (k2 === undefined) k2 = k;
15
+ var desc = Object.getOwnPropertyDescriptor(m, k);
16
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
17
+ desc = { enumerable: true, get: function() { return m[k]; } };
18
+ }
19
+ Object.defineProperty(o, k2, desc);
20
+ }) : (function(o, m, k, k2) {
21
+ if (k2 === undefined) k2 = k;
22
+ o[k2] = m[k];
23
+ }));
24
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
25
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
26
+ }) : function(o, v) {
27
+ o["default"] = v;
28
+ });
29
+ var __importStar = (this && this.__importStar) || function (mod) {
30
+ if (mod && mod.__esModule) return mod;
31
+ var result = {};
32
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
33
+ __setModuleDefault(result, mod);
34
+ return result;
35
+ };
36
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
37
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
38
+ return new (P || (P = Promise))(function (resolve, reject) {
39
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
40
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
41
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
42
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
43
+ });
44
+ };
45
+ var __generator = (this && this.__generator) || function (thisArg, body) {
46
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
47
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
48
+ function verb(n) { return function (v) { return step([n, v]); }; }
49
+ function step(op) {
50
+ if (f) throw new TypeError("Generator is already executing.");
51
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
52
+ 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;
53
+ if (y = 0, t) op = [op[0] & 2, t.value];
54
+ switch (op[0]) {
55
+ case 0: case 1: t = op; break;
56
+ case 4: _.label++; return { value: op[1], done: false };
57
+ case 5: _.label++; y = op[1]; op = [0]; continue;
58
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
59
+ default:
60
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
61
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
62
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
63
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
64
+ if (t[2]) _.ops.pop();
65
+ _.trys.pop(); continue;
66
+ }
67
+ op = body.call(thisArg, _);
68
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
69
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
70
+ }
71
+ };
72
+ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
73
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
74
+ if (ar || !(i in from)) {
75
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
76
+ ar[i] = from[i];
77
+ }
78
+ }
79
+ return to.concat(ar || Array.prototype.slice.call(from));
80
+ };
81
+ var __importDefault = (this && this.__importDefault) || function (mod) {
82
+ return (mod && mod.__esModule) ? mod : { "default": mod };
83
+ };
84
+ Object.defineProperty(exports, "__esModule", { value: true });
85
+ var jsx_runtime_1 = require("react/jsx-runtime");
86
+ var lodash_1 = require("lodash");
87
+ var react_1 = require("react");
88
+ var _1 = __importStar(require("."));
89
+ var useSDK_1 = __importDefault(require("../../hooks/useSDK"));
90
+ var useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
91
+ var useUser_1 = __importDefault(require("../../hooks/useUser"));
92
+ var ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
93
+ function WishlistContextProvider(_a) {
94
+ var _this = this;
95
+ var children = _a.children;
96
+ var setSnackbar = (0, useSnackbar_1.default)().setSnackbar;
97
+ var sdk = (0, useSDK_1.default)();
98
+ var api = !!sdk ? sdk.getAPIInfos() : null;
99
+ var _b = (0, useUser_1.default)(), isUserLoggedIn = _b.isUserLoggedIn, userData = _b.userData;
100
+ var _c = (0, react_1.useState)(false), isFetching = _c[0], setIsFetching = _c[1];
101
+ var _d = (0, react_1.useState)(false), isFetched = _d[0], setIsFetched = _d[1];
102
+ var _e = (0, react_1.useState)(__assign({}, _1.defaultWishlist)), state = _e[0], setState = _e[1];
103
+ var getData = (0, react_1.useCallback)(function () { return __awaiter(_this, void 0, void 0, function () {
104
+ var storageWishlist, currentWishlist, _wishlist, e_1;
105
+ return __generator(this, function (_a) {
106
+ switch (_a.label) {
107
+ case 0:
108
+ if (!!!sdk || !!isFetching)
109
+ return [2];
110
+ if (!!!userData) {
111
+ if (!!state.wishlist && !!state.wishlist.items && !!state.wishlist.items.length) {
112
+ setState(_1.defaultWishlist);
113
+ setIsFetching(false);
114
+ setIsFetched(false);
115
+ }
116
+ return [2];
117
+ }
118
+ if (!!isFetched)
119
+ return [2];
120
+ setIsFetching(true);
121
+ storageWishlist = JSON.parse(localStorage.getItem('wishlist') || '{}');
122
+ currentWishlist = state.wishlist;
123
+ if (!!Object.entries(storageWishlist).length) {
124
+ currentWishlist = __assign(__assign({}, state.wishlist), { items: storageWishlist.items });
125
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: currentWishlist })); });
126
+ }
127
+ else {
128
+ localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
129
+ }
130
+ currentWishlist = __assign(__assign({}, currentWishlist), { customer_id: !!userData ? String(userData.id) : '', user_email: !!userData && !!userData.basic_info.customer_email ? userData.basic_info.customer_email : '' });
131
+ _wishlist = undefined;
132
+ _a.label = 1;
133
+ case 1:
134
+ _a.trys.push([1, 3, , 4]);
135
+ return [4, getFromDatabase(currentWishlist)];
136
+ case 2:
137
+ _wishlist = _a.sent();
138
+ return [3, 4];
139
+ case 3:
140
+ e_1 = _a.sent();
141
+ console.log('e: ', e_1);
142
+ return [3, 4];
143
+ case 4:
144
+ if (!!_wishlist) {
145
+ currentWishlist = __assign(__assign({}, currentWishlist), { id: _wishlist.id, items: (0, lodash_1.uniq)(__spreadArray(__spreadArray([], _wishlist.items, true), currentWishlist.items, true)) });
146
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: currentWishlist })); });
147
+ }
148
+ setIsFetching(false);
149
+ setIsFetched(true);
150
+ return [2];
151
+ }
152
+ });
153
+ }); }, [state, userData]);
154
+ (0, react_1.useEffect)(function () {
155
+ getData();
156
+ }, [getData]);
157
+ var save = (0, react_1.useCallback)(function () {
158
+ var storageWishlist = localStorage.getItem('wishlist');
159
+ if (JSON.stringify(storageWishlist) !== JSON.stringify(state.wishlist)) {
160
+ localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
161
+ if (!!!isUserLoggedIn)
162
+ return;
163
+ saveToDatabase();
164
+ }
165
+ }, [state.wishlist.items]);
166
+ (0, react_1.useEffect)(function () {
167
+ save();
168
+ }, [save]);
169
+ var addItem = function (product_slug, product_name) {
170
+ var alreadyInWishlist = false;
171
+ setState(function (prevState) {
172
+ alreadyInWishlist = prevState.wishlist.items.map(function (item) { return item; }).includes(product_slug);
173
+ var newItems = prevState.wishlist.items;
174
+ if (!!!alreadyInWishlist) {
175
+ newItems = __spreadArray(__spreadArray([], prevState.wishlist.items, true), [product_slug], false);
176
+ }
177
+ return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: newItems }) });
178
+ });
179
+ if (alreadyInWishlist) {
180
+ setSnackbar({
181
+ title: 'Cet item est déjà dans votre liste de souhait',
182
+ type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
183
+ isShown: true
184
+ });
185
+ }
186
+ else {
187
+ setSnackbar({
188
+ title: "".concat(product_name, " \u00E0 bien \u00E9t\u00E9 ajout\u00E9 \u00E0 votre liste de souhait"),
189
+ isShown: true,
190
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
191
+ });
192
+ }
193
+ };
194
+ var removeItem = function (product_slug, product_name) {
195
+ setState(function (prevState) {
196
+ var newItems = prevState.wishlist.items.filter(function (item) { return item !== product_slug; });
197
+ setSnackbar({
198
+ title: "".concat(product_name, " \u00E0 bien \u00E9t\u00E9 retir\u00E9 de votre liste de souhait"),
199
+ isShown: true,
200
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
201
+ });
202
+ return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: newItems }) });
203
+ });
204
+ };
205
+ var clear = function () {
206
+ setState(function (prevState) {
207
+ setSnackbar({
208
+ title: "Votre liste de souhaits \u00E0 bien \u00E9t\u00E9 vid\u00E9e.",
209
+ isShown: true,
210
+ type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
211
+ });
212
+ return __assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { items: [] }) });
213
+ });
214
+ saveToDatabase();
215
+ };
216
+ var getFromDatabase = function (wishlist) { return __awaiter(_this, void 0, void 0, function () {
217
+ var request, responseData, dbWishlist;
218
+ return __generator(this, function (_a) {
219
+ switch (_a.label) {
220
+ case 0:
221
+ if (!!!api || !!!sdk)
222
+ return [2];
223
+ return [4, fetch("".concat(api.api, "/wishlist"), {
224
+ method: 'POST',
225
+ headers: {
226
+ Authorization: "Bearer ".concat(api.token),
227
+ 'Content-Type': 'application/json',
228
+ 'x-gng-ecomm-token': api.userToken
229
+ },
230
+ body: JSON.stringify(wishlist)
231
+ })];
232
+ case 1:
233
+ request = _a.sent();
234
+ if (!!!request)
235
+ return [2];
236
+ return [4, request.json()];
237
+ case 2:
238
+ responseData = _a.sent();
239
+ if (responseData.status != 200) {
240
+ throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
241
+ }
242
+ if (responseData.token) {
243
+ sdk.setUserToken(responseData.token);
244
+ }
245
+ dbWishlist = responseData.data;
246
+ return [2, dbWishlist];
247
+ }
248
+ });
249
+ }); };
250
+ var saveToDatabase = function () { return __awaiter(_this, void 0, void 0, function () {
251
+ var request, responseData_1, err_1, request, responseData, err_2;
252
+ return __generator(this, function (_a) {
253
+ switch (_a.label) {
254
+ case 0:
255
+ if (!!!state.wishlist || !!!api || !!!sdk)
256
+ return [2];
257
+ if (!!!state.wishlist.id && (!!!state.wishlist.items || !!!state.wishlist.items.length))
258
+ return [2];
259
+ if (!!!!state.wishlist.id) return [3, 6];
260
+ _a.label = 1;
261
+ case 1:
262
+ _a.trys.push([1, 4, , 5]);
263
+ return [4, fetch("".concat(api.api, "/wishlists/add"), {
264
+ method: 'POST',
265
+ headers: {
266
+ Authorization: "Bearer ".concat(api.token),
267
+ 'Content-Type': 'application/json',
268
+ 'x-gng-ecomm-token': api.userToken
269
+ },
270
+ body: JSON.stringify(state.wishlist)
271
+ })];
272
+ case 2:
273
+ request = _a.sent();
274
+ if (!!!request)
275
+ return [2];
276
+ return [4, request.json()];
277
+ case 3:
278
+ responseData_1 = _a.sent();
279
+ if (responseData_1.status != 200) {
280
+ throw new Error('Impossible de créer la nouvelle wishlist: ' + responseData_1.error);
281
+ }
282
+ setState(function (prevState) { return (__assign(__assign({}, prevState), { wishlist: __assign(__assign({}, prevState.wishlist), { id: responseData_1.data.id }) })); });
283
+ if (responseData_1.token) {
284
+ sdk.setUserToken(responseData_1.token);
285
+ }
286
+ return [3, 5];
287
+ case 4:
288
+ err_1 = _a.sent();
289
+ console.log(err_1);
290
+ return [3, 5];
291
+ case 5: return [2];
292
+ case 6:
293
+ _a.trys.push([6, 9, , 10]);
294
+ return [4, fetch("".concat(api.api, "/wishlists/").concat(state.wishlist.id, "/save"), {
295
+ method: 'POST',
296
+ headers: {
297
+ Authorization: "Bearer ".concat(api.token),
298
+ 'Content-Type': 'application/json',
299
+ 'x-gng-ecomm-token': api.userToken
300
+ },
301
+ body: JSON.stringify(state.wishlist)
302
+ })];
303
+ case 7:
304
+ request = _a.sent();
305
+ if (!!!request)
306
+ return [2];
307
+ return [4, request.json()];
308
+ case 8:
309
+ responseData = _a.sent();
310
+ if (responseData.status != 200) {
311
+ throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
312
+ }
313
+ if (responseData.token) {
314
+ sdk.setUserToken(responseData.token);
315
+ }
316
+ return [3, 10];
317
+ case 9:
318
+ err_2 = _a.sent();
319
+ console.log(err_2);
320
+ return [3, 10];
321
+ case 10: return [2];
322
+ }
323
+ });
324
+ }); };
325
+ return ((0, jsx_runtime_1.jsx)(_1.default.Provider, __assign({ value: __assign(__assign({}, state), { isFetching: isFetching, addItem: addItem, removeItem: removeItem, clear: clear }) }, { children: (0, jsx_runtime_1.jsx)(react_1.Fragment, { children: children }) })));
326
+ }
327
+ exports.default = WishlistContextProvider;
328
328
  //# sourceMappingURL=WishlistContextProvider.js.map