addio-ecomm-sdk 1.3.77 → 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.
- package/.vscode/settings.json +34 -34
- package/README.md +79 -79
- package/dist/index.d.ts +203 -203
- package/dist/index.js +1237 -1237
- package/dist/lib/constants/components/CreditCardInput.d.ts +11 -11
- package/dist/lib/constants/components/CreditCardInput.js +65 -65
- package/dist/lib/constants/components/Snackbar.d.ts +11 -11
- package/dist/lib/constants/components/Snackbar.js +29 -29
- package/dist/lib/constants/contexts/CartContext/CartContextProvider.d.ts +7 -7
- package/dist/lib/constants/contexts/CartContext/CartContextProvider.js +640 -640
- package/dist/lib/constants/contexts/CartContext/index.d.ts +79 -79
- package/dist/lib/constants/contexts/CartContext/index.js +47 -47
- package/dist/lib/constants/contexts/DataContext/DataContextProvider.d.ts +15 -15
- package/dist/lib/constants/contexts/DataContext/DataContextProvider.js +173 -173
- package/dist/lib/constants/contexts/DataContext/index.d.ts +47 -47
- package/dist/lib/constants/contexts/DataContext/index.js +27 -27
- package/dist/lib/constants/contexts/LogContext/LogContextProvider.d.ts +6 -6
- package/dist/lib/constants/contexts/LogContext/LogContextProvider.js +40 -40
- package/dist/lib/constants/contexts/LogContext/index.d.ts +7 -7
- package/dist/lib/constants/contexts/LogContext/index.js +7 -7
- package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.d.ts +7 -7
- package/dist/lib/constants/contexts/ModalContext/ModalContextProvider.js +61 -61
- package/dist/lib/constants/contexts/ModalContext/index.d.ts +14 -14
- package/dist/lib/constants/contexts/ModalContext/index.js +16 -16
- package/dist/lib/constants/contexts/SDKContext/SDKProvider.d.ts +8 -8
- package/dist/lib/constants/contexts/SDKContext/SDKProvider.js +23 -23
- package/dist/lib/constants/contexts/SDKContext/index.d.ts +4 -4
- package/dist/lib/constants/contexts/SDKContext/index.js +4 -4
- package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.d.ts +4 -4
- package/dist/lib/constants/contexts/SnackbarContext/SnackbarContext.js +6 -6
- package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.d.ts +12 -12
- package/dist/lib/constants/contexts/SnackbarContext/SnackbarContextProvider.js +38 -38
- package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.d.ts +19 -19
- package/dist/lib/constants/contexts/SnackbarContext/interfaces/ISnackbarContext.js +21 -21
- package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.d.ts +7 -7
- package/dist/lib/constants/contexts/StockNotifContext/StockNotifContextProvider.js +112 -112
- package/dist/lib/constants/contexts/StockNotifContext/index.d.ts +10 -10
- package/dist/lib/constants/contexts/StockNotifContext/index.js +10 -10
- package/dist/lib/constants/contexts/UserContext/UserContextProvider.d.ts +5 -5
- package/dist/lib/constants/contexts/UserContext/UserContextProvider.js +313 -313
- package/dist/lib/constants/contexts/UserContext/index.d.ts +54 -54
- package/dist/lib/constants/contexts/UserContext/index.js +28 -28
- package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.d.ts +6 -6
- package/dist/lib/constants/contexts/WishlistContext/WishlistContextProvider.js +231 -231
- package/dist/lib/constants/contexts/WishlistContext/index.d.ts +12 -12
- package/dist/lib/constants/contexts/WishlistContext/index.js +12 -12
- package/dist/lib/constants/hooks/useCart.d.ts +2 -2
- package/dist/lib/constants/hooks/useCart.js +11 -11
- package/dist/lib/constants/hooks/useData.d.ts +2 -2
- package/dist/lib/constants/hooks/useData.js +11 -11
- package/dist/lib/constants/hooks/useLogs.d.ts +2 -2
- package/dist/lib/constants/hooks/useLogs.js +11 -11
- package/dist/lib/constants/hooks/useModal.d.ts +2 -2
- package/dist/lib/constants/hooks/useModal.js +11 -11
- package/dist/lib/constants/hooks/useSDK.d.ts +2 -2
- package/dist/lib/constants/hooks/useSDK.js +11 -11
- package/dist/lib/constants/hooks/useSnackbar.d.ts +2 -2
- package/dist/lib/constants/hooks/useSnackbar.js +11 -11
- package/dist/lib/constants/hooks/useStockNotif.d.ts +2 -2
- package/dist/lib/constants/hooks/useStockNotif.js +11 -11
- package/dist/lib/constants/hooks/useUser.d.ts +2 -2
- package/dist/lib/constants/hooks/useUser.js +11 -11
- package/dist/lib/constants/hooks/useWishlist.d.ts +2 -2
- package/dist/lib/constants/hooks/useWishlist.js +11 -11
- package/dist/lib/models/image/index.d.ts +6 -6
- package/dist/lib/models/image/index.js +10 -10
- package/dist/lib/models/stockNotification/index.d.ts +13 -13
- package/dist/lib/models/stockNotification/index.js +70 -70
- package/dist/lib/models/wishlist/index.d.ts +14 -14
- package/dist/lib/models/wishlist/index.js +86 -86
- package/dist/utils/StripeErrors.d.ts +24 -24
- package/dist/utils/StripeErrors.js +55 -55
- package/dist/utils/algolia.d.ts +3 -3
- package/dist/utils/algolia.js +35 -35
- package/dist/utils/analytics.d.ts +71 -71
- package/dist/utils/analytics.js +246 -246
- package/dist/utils/cart.d.ts +3 -3
- package/dist/utils/cart.js +65 -65
- package/dist/utils/contentful.d.ts +10 -10
- package/dist/utils/contentful.js +63 -63
- package/dist/utils/functions.d.ts +21 -21
- package/dist/utils/functions.js +183 -183
- package/dist/utils/getSDK.d.ts +4 -4
- package/dist/utils/getSDK.js +19 -19
- package/dist/utils/initStoreData.d.ts +3 -3
- package/dist/utils/initStoreData.js +17 -17
- package/dist/utils/interfaces/IClientCMSData.d.ts +132 -132
- package/dist/utils/interfaces/IClientCMSData.js +2 -2
- package/dist/utils/interfaces/IEndpointResult.d.ts +10 -10
- package/dist/utils/interfaces/IEndpointResult.js +2 -2
- package/dist/utils/interfaces/IFacebookUserProfile.d.ts +10 -10
- package/dist/utils/interfaces/IFacebookUserProfile.js +2 -2
- package/dist/utils/interfaces/IFilter.d.ts +23 -23
- package/dist/utils/interfaces/IFilter.js +2 -2
- package/dist/utils/interfaces/IGoogleUserProfile.d.ts +7 -7
- package/dist/utils/interfaces/IGoogleUserProfile.js +2 -2
- package/dist/utils/interfaces/ISDKConfig.d.ts +7 -7
- package/dist/utils/interfaces/ISDKConfig.js +2 -2
- package/dist/utils/interfaces/ISpaceData.d.ts +18 -18
- package/dist/utils/interfaces/ISpaceData.js +2 -2
- package/dist/utils/larivieremeunier.d.ts +3 -3
- package/dist/utils/larivieremeunier.js +156 -156
- package/dist/utils/technosupply.d.ts +3 -3
- package/dist/utils/technosupply.js +155 -155
- package/package.json +61 -61
- package/publish.sh +132 -132
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import ICustomer from 'addio-admin-sdk/dist/Interfaces/Customer';
|
|
3
|
-
import { ICustomPriceItem } from 'addio-admin-sdk/dist/Interfaces/G2';
|
|
4
|
-
import IOrder from 'addio-admin-sdk/dist/Interfaces/Order';
|
|
5
|
-
import IIndexedBankUsed, { IRemainingBankAmount, QueryDateRangeEnum } from 'addio-admin-sdk/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed';
|
|
6
|
-
export interface IUserContext {
|
|
7
|
-
readonly isUserLoggedIn: boolean;
|
|
8
|
-
readonly userData: ICustomer | null;
|
|
9
|
-
readonly isPro: boolean;
|
|
10
|
-
readonly loaded: boolean;
|
|
11
|
-
readonly customPriceList?: ICustomPriceItem[];
|
|
12
|
-
readonly fetchCustomPrices: boolean;
|
|
13
|
-
readonly setLoaded: (value: boolean) => void;
|
|
14
|
-
readonly setUserLoggedIn: (userData: ICustomer) => void;
|
|
15
|
-
readonly setUserLoggedOut: (keepRepCart?: boolean) => Promise<void>;
|
|
16
|
-
readonly saveUser: (customer: ICustomer) => Promise<boolean>;
|
|
17
|
-
readonly deleteUser: () => Promise<boolean>;
|
|
18
|
-
readonly getOrder: (order_id: string, token?: string) => Promise<IOrder | string>;
|
|
19
|
-
readonly changePassword: (currentPassword: string, newPassword: string) => Promise<string>;
|
|
20
|
-
readonly changeProfilePicture: (base64?: string) => Promise<string>;
|
|
21
|
-
readonly setUserPreferedStore: (storeId: string) => Promise<void>;
|
|
22
|
-
readonly setCustomPriceList: (list: ICustomPriceItem[]) => void;
|
|
23
|
-
readonly getPromiseToPurchaseHistory: (userId?: string, filters?: {
|
|
24
|
-
bankTypeId?: string;
|
|
25
|
-
unixDateRange?: QueryDateRangeEnum;
|
|
26
|
-
}) => Promise<IIndexedBankUsed[] | undefined>;
|
|
27
|
-
readonly getPromiseToPurchaseRemainingAmounts: (userId?: string) => Promise<{
|
|
28
|
-
[bankID: string]: IRemainingBankAmount[];
|
|
29
|
-
} | undefined>;
|
|
30
|
-
}
|
|
31
|
-
export declare const getDefaultUserContext: () => {
|
|
32
|
-
isUserLoggedIn: boolean;
|
|
33
|
-
userData: null;
|
|
34
|
-
isPro: boolean;
|
|
35
|
-
loaded: boolean;
|
|
36
|
-
fetchCustomPrices: boolean;
|
|
37
|
-
setLoaded: (_value: boolean) => void;
|
|
38
|
-
setUserLoggedIn: (_userData: ICustomer) => void;
|
|
39
|
-
setUserLoggedOut: (_keepRepCart?: boolean) => Promise<void>;
|
|
40
|
-
saveUser: (_customer: ICustomer) => Promise<boolean>;
|
|
41
|
-
deleteUser: () => Promise<boolean>;
|
|
42
|
-
getOrder: (_order_id: string) => Promise<string>;
|
|
43
|
-
changePassword: (_pass: string) => Promise<string>;
|
|
44
|
-
changeProfilePicture: (_base64?: string) => Promise<string>;
|
|
45
|
-
setUserPreferedStore: (_storeId: string) => Promise<void>;
|
|
46
|
-
setCustomPriceList: (_list: ICustomPriceItem[]) => void;
|
|
47
|
-
getPromiseToPurchaseHistory: (_userId?: string, _filters?: {
|
|
48
|
-
bankTypeId?: string;
|
|
49
|
-
unixDateRange?: QueryDateRangeEnum;
|
|
50
|
-
}) => Promise<undefined>;
|
|
51
|
-
getPromiseToPurchaseRemainingAmounts: (_userId?: string) => Promise<undefined>;
|
|
52
|
-
};
|
|
53
|
-
declare const UserContext: import("react").Context<IUserContext>;
|
|
54
|
-
export default UserContext;
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import ICustomer from 'addio-admin-sdk/dist/Interfaces/Customer';
|
|
3
|
+
import { ICustomPriceItem } from 'addio-admin-sdk/dist/Interfaces/G2';
|
|
4
|
+
import IOrder from 'addio-admin-sdk/dist/Interfaces/Order';
|
|
5
|
+
import IIndexedBankUsed, { IRemainingBankAmount, QueryDateRangeEnum } from 'addio-admin-sdk/dist/Interfaces/PromiseToPurchase/IIndexedBankUsed';
|
|
6
|
+
export interface IUserContext {
|
|
7
|
+
readonly isUserLoggedIn: boolean;
|
|
8
|
+
readonly userData: ICustomer | null;
|
|
9
|
+
readonly isPro: boolean;
|
|
10
|
+
readonly loaded: boolean;
|
|
11
|
+
readonly customPriceList?: ICustomPriceItem[];
|
|
12
|
+
readonly fetchCustomPrices: boolean;
|
|
13
|
+
readonly setLoaded: (value: boolean) => void;
|
|
14
|
+
readonly setUserLoggedIn: (userData: ICustomer) => void;
|
|
15
|
+
readonly setUserLoggedOut: (keepRepCart?: boolean) => Promise<void>;
|
|
16
|
+
readonly saveUser: (customer: ICustomer) => Promise<boolean>;
|
|
17
|
+
readonly deleteUser: () => Promise<boolean>;
|
|
18
|
+
readonly getOrder: (order_id: string, token?: string) => Promise<IOrder | string>;
|
|
19
|
+
readonly changePassword: (currentPassword: string, newPassword: string) => Promise<string>;
|
|
20
|
+
readonly changeProfilePicture: (base64?: string) => Promise<string>;
|
|
21
|
+
readonly setUserPreferedStore: (storeId: string) => Promise<void>;
|
|
22
|
+
readonly setCustomPriceList: (list: ICustomPriceItem[]) => void;
|
|
23
|
+
readonly getPromiseToPurchaseHistory: (userId?: string, filters?: {
|
|
24
|
+
bankTypeId?: string;
|
|
25
|
+
unixDateRange?: QueryDateRangeEnum;
|
|
26
|
+
}) => Promise<IIndexedBankUsed[] | undefined>;
|
|
27
|
+
readonly getPromiseToPurchaseRemainingAmounts: (userId?: string) => Promise<{
|
|
28
|
+
[bankID: string]: IRemainingBankAmount[];
|
|
29
|
+
} | undefined>;
|
|
30
|
+
}
|
|
31
|
+
export declare const getDefaultUserContext: () => {
|
|
32
|
+
isUserLoggedIn: boolean;
|
|
33
|
+
userData: null;
|
|
34
|
+
isPro: boolean;
|
|
35
|
+
loaded: boolean;
|
|
36
|
+
fetchCustomPrices: boolean;
|
|
37
|
+
setLoaded: (_value: boolean) => void;
|
|
38
|
+
setUserLoggedIn: (_userData: ICustomer) => void;
|
|
39
|
+
setUserLoggedOut: (_keepRepCart?: boolean) => Promise<void>;
|
|
40
|
+
saveUser: (_customer: ICustomer) => Promise<boolean>;
|
|
41
|
+
deleteUser: () => Promise<boolean>;
|
|
42
|
+
getOrder: (_order_id: string) => Promise<string>;
|
|
43
|
+
changePassword: (_pass: string) => Promise<string>;
|
|
44
|
+
changeProfilePicture: (_base64?: string) => Promise<string>;
|
|
45
|
+
setUserPreferedStore: (_storeId: string) => Promise<void>;
|
|
46
|
+
setCustomPriceList: (_list: ICustomPriceItem[]) => void;
|
|
47
|
+
getPromiseToPurchaseHistory: (_userId?: string, _filters?: {
|
|
48
|
+
bankTypeId?: string;
|
|
49
|
+
unixDateRange?: QueryDateRangeEnum;
|
|
50
|
+
}) => Promise<undefined>;
|
|
51
|
+
getPromiseToPurchaseRemainingAmounts: (_userId?: string) => Promise<undefined>;
|
|
52
|
+
};
|
|
53
|
+
declare const UserContext: import("react").Context<IUserContext>;
|
|
54
|
+
export default UserContext;
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getDefaultUserContext = void 0;
|
|
4
|
-
const react_1 = require("react");
|
|
5
|
-
const getDefaultUserContext = () => {
|
|
6
|
-
return {
|
|
7
|
-
isUserLoggedIn: false,
|
|
8
|
-
userData: null,
|
|
9
|
-
isPro: false,
|
|
10
|
-
loaded: false,
|
|
11
|
-
fetchCustomPrices: false,
|
|
12
|
-
setLoaded: (_value) => { },
|
|
13
|
-
setUserLoggedIn: (_userData) => { },
|
|
14
|
-
setUserLoggedOut: async (_keepRepCart) => { },
|
|
15
|
-
saveUser: async (_customer) => true,
|
|
16
|
-
deleteUser: async () => false,
|
|
17
|
-
getOrder: async (_order_id) => '',
|
|
18
|
-
changePassword: async (_pass) => '',
|
|
19
|
-
changeProfilePicture: async (_base64) => '',
|
|
20
|
-
setUserPreferedStore: async (_storeId) => { },
|
|
21
|
-
setCustomPriceList: (_list) => { },
|
|
22
|
-
getPromiseToPurchaseHistory: async (_userId, _filters) => undefined,
|
|
23
|
-
getPromiseToPurchaseRemainingAmounts: async (_userId) => undefined
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
exports.getDefaultUserContext = getDefaultUserContext;
|
|
27
|
-
const UserContext = (0, react_1.createContext)((0, exports.getDefaultUserContext)());
|
|
28
|
-
exports.default = UserContext;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getDefaultUserContext = void 0;
|
|
4
|
+
const react_1 = require("react");
|
|
5
|
+
const getDefaultUserContext = () => {
|
|
6
|
+
return {
|
|
7
|
+
isUserLoggedIn: false,
|
|
8
|
+
userData: null,
|
|
9
|
+
isPro: false,
|
|
10
|
+
loaded: false,
|
|
11
|
+
fetchCustomPrices: false,
|
|
12
|
+
setLoaded: (_value) => { },
|
|
13
|
+
setUserLoggedIn: (_userData) => { },
|
|
14
|
+
setUserLoggedOut: async (_keepRepCart) => { },
|
|
15
|
+
saveUser: async (_customer) => true,
|
|
16
|
+
deleteUser: async () => false,
|
|
17
|
+
getOrder: async (_order_id) => '',
|
|
18
|
+
changePassword: async (_pass) => '',
|
|
19
|
+
changeProfilePicture: async (_base64) => '',
|
|
20
|
+
setUserPreferedStore: async (_storeId) => { },
|
|
21
|
+
setCustomPriceList: (_list) => { },
|
|
22
|
+
getPromiseToPurchaseHistory: async (_userId, _filters) => undefined,
|
|
23
|
+
getPromiseToPurchaseRemainingAmounts: async (_userId) => undefined
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.getDefaultUserContext = getDefaultUserContext;
|
|
27
|
+
const UserContext = (0, react_1.createContext)((0, exports.getDefaultUserContext)());
|
|
28
|
+
exports.default = UserContext;
|
|
29
29
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
interface IProps {
|
|
3
|
-
readonly children: JSX.Element;
|
|
4
|
-
}
|
|
5
|
-
export default function WishlistContextProvider({ children }: IProps): JSX.Element;
|
|
6
|
-
export {};
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
interface IProps {
|
|
3
|
+
readonly children: JSX.Element;
|
|
4
|
+
}
|
|
5
|
+
export default function WishlistContextProvider({ children }: IProps): JSX.Element;
|
|
6
|
+
export {};
|
|
@@ -1,232 +1,232 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
-
};
|
|
28
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
-
const lodash_1 = require("lodash");
|
|
31
|
-
const react_1 = require("react");
|
|
32
|
-
const _1 = __importStar(require("."));
|
|
33
|
-
const useSDK_1 = __importDefault(require("../../hooks/useSDK"));
|
|
34
|
-
const useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
|
|
35
|
-
const useUser_1 = __importDefault(require("../../hooks/useUser"));
|
|
36
|
-
const ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
|
|
37
|
-
function WishlistContextProvider({ children }) {
|
|
38
|
-
const { setSnackbar } = (0, useSnackbar_1.default)();
|
|
39
|
-
const sdk = (0, useSDK_1.default)();
|
|
40
|
-
const api = !!sdk ? sdk.getAPIInfos() : null;
|
|
41
|
-
const { isUserLoggedIn, userData } = (0, useUser_1.default)();
|
|
42
|
-
const [isFetching, setIsFetching] = (0, react_1.useState)(false);
|
|
43
|
-
const [isFetched, setIsFetched] = (0, react_1.useState)(false);
|
|
44
|
-
const [state, setState] = (0, react_1.useState)(Object.assign({}, _1.defaultWishlist));
|
|
45
|
-
const getData = (0, react_1.useCallback)(async () => {
|
|
46
|
-
if (!!!sdk || !!isFetching)
|
|
47
|
-
return;
|
|
48
|
-
if (!!!userData) {
|
|
49
|
-
if (!!state.wishlist && !!state.wishlist.items && !!state.wishlist.items.length) {
|
|
50
|
-
setState(_1.defaultWishlist);
|
|
51
|
-
setIsFetching(false);
|
|
52
|
-
setIsFetched(false);
|
|
53
|
-
}
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
if (!!isFetched)
|
|
57
|
-
return;
|
|
58
|
-
setIsFetching(true);
|
|
59
|
-
const storageWishlist = JSON.parse(localStorage.getItem('wishlist') || '{}');
|
|
60
|
-
let currentWishlist = state.wishlist;
|
|
61
|
-
if (!!Object.entries(storageWishlist).length) {
|
|
62
|
-
currentWishlist = Object.assign(Object.assign({}, state.wishlist), { items: storageWishlist.items });
|
|
63
|
-
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: currentWishlist })));
|
|
64
|
-
}
|
|
65
|
-
else {
|
|
66
|
-
localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
|
|
67
|
-
}
|
|
68
|
-
currentWishlist = Object.assign(Object.assign({}, currentWishlist), { customer_id: !!userData ? String(userData.id) : '', user_email: !!userData && !!userData.basic_info.customer_email ? userData.basic_info.customer_email : '' });
|
|
69
|
-
let _wishlist = undefined;
|
|
70
|
-
try {
|
|
71
|
-
_wishlist = await getFromDatabase(currentWishlist);
|
|
72
|
-
}
|
|
73
|
-
catch (e) {
|
|
74
|
-
console.log('e: ', e);
|
|
75
|
-
}
|
|
76
|
-
if (!!_wishlist) {
|
|
77
|
-
currentWishlist = Object.assign(Object.assign({}, currentWishlist), { id: _wishlist.id, items: (0, lodash_1.uniq)([..._wishlist.items, ...currentWishlist.items]) });
|
|
78
|
-
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: currentWishlist })));
|
|
79
|
-
}
|
|
80
|
-
setIsFetching(false);
|
|
81
|
-
setIsFetched(true);
|
|
82
|
-
}, [state, userData]);
|
|
83
|
-
(0, react_1.useEffect)(() => {
|
|
84
|
-
getData();
|
|
85
|
-
}, [getData]);
|
|
86
|
-
const save = (0, react_1.useCallback)(() => {
|
|
87
|
-
const storageWishlist = localStorage.getItem('wishlist');
|
|
88
|
-
if (JSON.stringify(storageWishlist) !== JSON.stringify(state.wishlist)) {
|
|
89
|
-
localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
|
|
90
|
-
if (!!!isUserLoggedIn)
|
|
91
|
-
return;
|
|
92
|
-
saveToDatabase();
|
|
93
|
-
}
|
|
94
|
-
}, [state.wishlist.items]);
|
|
95
|
-
(0, react_1.useEffect)(() => {
|
|
96
|
-
save();
|
|
97
|
-
}, [save]);
|
|
98
|
-
const addItem = (product_slug, product_name) => {
|
|
99
|
-
let alreadyInWishlist = false;
|
|
100
|
-
setState((prevState) => {
|
|
101
|
-
alreadyInWishlist = prevState.wishlist.items.map((item) => item).includes(product_slug);
|
|
102
|
-
let newItems = prevState.wishlist.items;
|
|
103
|
-
if (!!!alreadyInWishlist) {
|
|
104
|
-
newItems = [...prevState.wishlist.items, product_slug];
|
|
105
|
-
}
|
|
106
|
-
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: newItems }) });
|
|
107
|
-
});
|
|
108
|
-
if (alreadyInWishlist) {
|
|
109
|
-
setSnackbar({
|
|
110
|
-
title: 'Cet item est déjà dans votre liste de souhait',
|
|
111
|
-
type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
|
|
112
|
-
isShown: true
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
else {
|
|
116
|
-
setSnackbar({
|
|
117
|
-
title: `${product_name} à bien été ajouté à votre liste de souhait`,
|
|
118
|
-
isShown: true,
|
|
119
|
-
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
};
|
|
123
|
-
const removeItem = (product_slug, product_name) => {
|
|
124
|
-
setState((prevState) => {
|
|
125
|
-
const newItems = prevState.wishlist.items.filter((item) => item !== product_slug);
|
|
126
|
-
setSnackbar({
|
|
127
|
-
title: `${product_name} à bien été retiré de votre liste de souhait`,
|
|
128
|
-
isShown: true,
|
|
129
|
-
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
130
|
-
});
|
|
131
|
-
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: newItems }) });
|
|
132
|
-
});
|
|
133
|
-
};
|
|
134
|
-
const clear = () => {
|
|
135
|
-
setState((prevState) => {
|
|
136
|
-
setSnackbar({
|
|
137
|
-
title: `Votre liste de souhaits à bien été vidée.`,
|
|
138
|
-
isShown: true,
|
|
139
|
-
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
140
|
-
});
|
|
141
|
-
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: [] }) });
|
|
142
|
-
});
|
|
143
|
-
saveToDatabase();
|
|
144
|
-
};
|
|
145
|
-
const getFromDatabase = async (wishlist) => {
|
|
146
|
-
if (!!!api || !!!sdk)
|
|
147
|
-
return;
|
|
148
|
-
let request;
|
|
149
|
-
request = await fetch(`${api.api}/wishlist`, {
|
|
150
|
-
method: 'POST',
|
|
151
|
-
headers: {
|
|
152
|
-
Authorization: `Bearer ${api.token}`,
|
|
153
|
-
'Content-Type': 'application/json',
|
|
154
|
-
'x-gng-ecomm-token': api.userToken
|
|
155
|
-
},
|
|
156
|
-
body: JSON.stringify(wishlist)
|
|
157
|
-
});
|
|
158
|
-
if (!!!request)
|
|
159
|
-
return;
|
|
160
|
-
const responseData = await request.json();
|
|
161
|
-
if (responseData.status != 200) {
|
|
162
|
-
throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
|
|
163
|
-
}
|
|
164
|
-
if (responseData.token) {
|
|
165
|
-
sdk.setUserToken(responseData.token);
|
|
166
|
-
}
|
|
167
|
-
const dbWishlist = responseData.data;
|
|
168
|
-
return dbWishlist;
|
|
169
|
-
};
|
|
170
|
-
const saveToDatabase = async () => {
|
|
171
|
-
if (!!!state.wishlist || !!!api || !!!sdk)
|
|
172
|
-
return;
|
|
173
|
-
if (!!!state.wishlist.id && (!!!state.wishlist.items || !!!state.wishlist.items.length))
|
|
174
|
-
return;
|
|
175
|
-
if (!!!state.wishlist.id) {
|
|
176
|
-
try {
|
|
177
|
-
const request = await fetch(`${api.api}/wishlists/add`, {
|
|
178
|
-
method: 'POST',
|
|
179
|
-
headers: {
|
|
180
|
-
Authorization: `Bearer ${api.token}`,
|
|
181
|
-
'Content-Type': 'application/json',
|
|
182
|
-
'x-gng-ecomm-token': api.userToken
|
|
183
|
-
},
|
|
184
|
-
body: JSON.stringify(state.wishlist)
|
|
185
|
-
});
|
|
186
|
-
if (!!!request)
|
|
187
|
-
return;
|
|
188
|
-
const responseData = await request.json();
|
|
189
|
-
if (responseData.status != 200) {
|
|
190
|
-
throw new Error('Impossible de créer la nouvelle wishlist: ' + responseData.error);
|
|
191
|
-
}
|
|
192
|
-
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { id: responseData.data.id }) })));
|
|
193
|
-
if (responseData.token) {
|
|
194
|
-
sdk.setUserToken(responseData.token);
|
|
195
|
-
}
|
|
196
|
-
}
|
|
197
|
-
catch (err) {
|
|
198
|
-
console.log(err);
|
|
199
|
-
}
|
|
200
|
-
return;
|
|
201
|
-
}
|
|
202
|
-
try {
|
|
203
|
-
const request = await fetch(`${api.api}/wishlists/${state.wishlist.id}/save`, {
|
|
204
|
-
method: 'POST',
|
|
205
|
-
headers: {
|
|
206
|
-
Authorization: `Bearer ${api.token}`,
|
|
207
|
-
'Content-Type': 'application/json',
|
|
208
|
-
'x-gng-ecomm-token': api.userToken
|
|
209
|
-
},
|
|
210
|
-
body: JSON.stringify(state.wishlist)
|
|
211
|
-
});
|
|
212
|
-
if (!!!request)
|
|
213
|
-
return;
|
|
214
|
-
const responseData = await request.json();
|
|
215
|
-
if (responseData.status != 200) {
|
|
216
|
-
throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
|
|
217
|
-
}
|
|
218
|
-
if (responseData.token) {
|
|
219
|
-
sdk.setUserToken(responseData.token);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
catch (err) {
|
|
223
|
-
console.log(err);
|
|
224
|
-
}
|
|
225
|
-
};
|
|
226
|
-
return ((0, jsx_runtime_1.jsx)(_1.default.Provider, Object.assign({ value: Object.assign(Object.assign({}, state), { isFetching,
|
|
227
|
-
addItem,
|
|
228
|
-
removeItem,
|
|
229
|
-
clear }) }, { children: (0, jsx_runtime_1.jsx)(react_1.Fragment, { children: children }) })));
|
|
230
|
-
}
|
|
231
|
-
exports.default = WishlistContextProvider;
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
30
|
+
const lodash_1 = require("lodash");
|
|
31
|
+
const react_1 = require("react");
|
|
32
|
+
const _1 = __importStar(require("."));
|
|
33
|
+
const useSDK_1 = __importDefault(require("../../hooks/useSDK"));
|
|
34
|
+
const useSnackbar_1 = __importDefault(require("../../hooks/useSnackbar"));
|
|
35
|
+
const useUser_1 = __importDefault(require("../../hooks/useUser"));
|
|
36
|
+
const ISnackbarContext_1 = require("../SnackbarContext/interfaces/ISnackbarContext");
|
|
37
|
+
function WishlistContextProvider({ children }) {
|
|
38
|
+
const { setSnackbar } = (0, useSnackbar_1.default)();
|
|
39
|
+
const sdk = (0, useSDK_1.default)();
|
|
40
|
+
const api = !!sdk ? sdk.getAPIInfos() : null;
|
|
41
|
+
const { isUserLoggedIn, userData } = (0, useUser_1.default)();
|
|
42
|
+
const [isFetching, setIsFetching] = (0, react_1.useState)(false);
|
|
43
|
+
const [isFetched, setIsFetched] = (0, react_1.useState)(false);
|
|
44
|
+
const [state, setState] = (0, react_1.useState)(Object.assign({}, _1.defaultWishlist));
|
|
45
|
+
const getData = (0, react_1.useCallback)(async () => {
|
|
46
|
+
if (!!!sdk || !!isFetching)
|
|
47
|
+
return;
|
|
48
|
+
if (!!!userData) {
|
|
49
|
+
if (!!state.wishlist && !!state.wishlist.items && !!state.wishlist.items.length) {
|
|
50
|
+
setState(_1.defaultWishlist);
|
|
51
|
+
setIsFetching(false);
|
|
52
|
+
setIsFetched(false);
|
|
53
|
+
}
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!!isFetched)
|
|
57
|
+
return;
|
|
58
|
+
setIsFetching(true);
|
|
59
|
+
const storageWishlist = JSON.parse(localStorage.getItem('wishlist') || '{}');
|
|
60
|
+
let currentWishlist = state.wishlist;
|
|
61
|
+
if (!!Object.entries(storageWishlist).length) {
|
|
62
|
+
currentWishlist = Object.assign(Object.assign({}, state.wishlist), { items: storageWishlist.items });
|
|
63
|
+
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: currentWishlist })));
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
|
|
67
|
+
}
|
|
68
|
+
currentWishlist = Object.assign(Object.assign({}, currentWishlist), { customer_id: !!userData ? String(userData.id) : '', user_email: !!userData && !!userData.basic_info.customer_email ? userData.basic_info.customer_email : '' });
|
|
69
|
+
let _wishlist = undefined;
|
|
70
|
+
try {
|
|
71
|
+
_wishlist = await getFromDatabase(currentWishlist);
|
|
72
|
+
}
|
|
73
|
+
catch (e) {
|
|
74
|
+
console.log('e: ', e);
|
|
75
|
+
}
|
|
76
|
+
if (!!_wishlist) {
|
|
77
|
+
currentWishlist = Object.assign(Object.assign({}, currentWishlist), { id: _wishlist.id, items: (0, lodash_1.uniq)([..._wishlist.items, ...currentWishlist.items]) });
|
|
78
|
+
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: currentWishlist })));
|
|
79
|
+
}
|
|
80
|
+
setIsFetching(false);
|
|
81
|
+
setIsFetched(true);
|
|
82
|
+
}, [state, userData]);
|
|
83
|
+
(0, react_1.useEffect)(() => {
|
|
84
|
+
getData();
|
|
85
|
+
}, [getData]);
|
|
86
|
+
const save = (0, react_1.useCallback)(() => {
|
|
87
|
+
const storageWishlist = localStorage.getItem('wishlist');
|
|
88
|
+
if (JSON.stringify(storageWishlist) !== JSON.stringify(state.wishlist)) {
|
|
89
|
+
localStorage.setItem('wishlist', JSON.stringify(state.wishlist));
|
|
90
|
+
if (!!!isUserLoggedIn)
|
|
91
|
+
return;
|
|
92
|
+
saveToDatabase();
|
|
93
|
+
}
|
|
94
|
+
}, [state.wishlist.items]);
|
|
95
|
+
(0, react_1.useEffect)(() => {
|
|
96
|
+
save();
|
|
97
|
+
}, [save]);
|
|
98
|
+
const addItem = (product_slug, product_name) => {
|
|
99
|
+
let alreadyInWishlist = false;
|
|
100
|
+
setState((prevState) => {
|
|
101
|
+
alreadyInWishlist = prevState.wishlist.items.map((item) => item).includes(product_slug);
|
|
102
|
+
let newItems = prevState.wishlist.items;
|
|
103
|
+
if (!!!alreadyInWishlist) {
|
|
104
|
+
newItems = [...prevState.wishlist.items, product_slug];
|
|
105
|
+
}
|
|
106
|
+
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: newItems }) });
|
|
107
|
+
});
|
|
108
|
+
if (alreadyInWishlist) {
|
|
109
|
+
setSnackbar({
|
|
110
|
+
title: 'Cet item est déjà dans votre liste de souhait',
|
|
111
|
+
type: ISnackbarContext_1.SnackbarTypeEnum.ERROR,
|
|
112
|
+
isShown: true
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
else {
|
|
116
|
+
setSnackbar({
|
|
117
|
+
title: `${product_name} à bien été ajouté à votre liste de souhait`,
|
|
118
|
+
isShown: true,
|
|
119
|
+
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
const removeItem = (product_slug, product_name) => {
|
|
124
|
+
setState((prevState) => {
|
|
125
|
+
const newItems = prevState.wishlist.items.filter((item) => item !== product_slug);
|
|
126
|
+
setSnackbar({
|
|
127
|
+
title: `${product_name} à bien été retiré de votre liste de souhait`,
|
|
128
|
+
isShown: true,
|
|
129
|
+
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
130
|
+
});
|
|
131
|
+
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: newItems }) });
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
const clear = () => {
|
|
135
|
+
setState((prevState) => {
|
|
136
|
+
setSnackbar({
|
|
137
|
+
title: `Votre liste de souhaits à bien été vidée.`,
|
|
138
|
+
isShown: true,
|
|
139
|
+
type: ISnackbarContext_1.SnackbarTypeEnum.SUCCESS
|
|
140
|
+
});
|
|
141
|
+
return Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { items: [] }) });
|
|
142
|
+
});
|
|
143
|
+
saveToDatabase();
|
|
144
|
+
};
|
|
145
|
+
const getFromDatabase = async (wishlist) => {
|
|
146
|
+
if (!!!api || !!!sdk)
|
|
147
|
+
return;
|
|
148
|
+
let request;
|
|
149
|
+
request = await fetch(`${api.api}/wishlist`, {
|
|
150
|
+
method: 'POST',
|
|
151
|
+
headers: {
|
|
152
|
+
Authorization: `Bearer ${api.token}`,
|
|
153
|
+
'Content-Type': 'application/json',
|
|
154
|
+
'x-gng-ecomm-token': api.userToken
|
|
155
|
+
},
|
|
156
|
+
body: JSON.stringify(wishlist)
|
|
157
|
+
});
|
|
158
|
+
if (!!!request)
|
|
159
|
+
return;
|
|
160
|
+
const responseData = await request.json();
|
|
161
|
+
if (responseData.status != 200) {
|
|
162
|
+
throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
|
|
163
|
+
}
|
|
164
|
+
if (responseData.token) {
|
|
165
|
+
sdk.setUserToken(responseData.token);
|
|
166
|
+
}
|
|
167
|
+
const dbWishlist = responseData.data;
|
|
168
|
+
return dbWishlist;
|
|
169
|
+
};
|
|
170
|
+
const saveToDatabase = async () => {
|
|
171
|
+
if (!!!state.wishlist || !!!api || !!!sdk)
|
|
172
|
+
return;
|
|
173
|
+
if (!!!state.wishlist.id && (!!!state.wishlist.items || !!!state.wishlist.items.length))
|
|
174
|
+
return;
|
|
175
|
+
if (!!!state.wishlist.id) {
|
|
176
|
+
try {
|
|
177
|
+
const request = await fetch(`${api.api}/wishlists/add`, {
|
|
178
|
+
method: 'POST',
|
|
179
|
+
headers: {
|
|
180
|
+
Authorization: `Bearer ${api.token}`,
|
|
181
|
+
'Content-Type': 'application/json',
|
|
182
|
+
'x-gng-ecomm-token': api.userToken
|
|
183
|
+
},
|
|
184
|
+
body: JSON.stringify(state.wishlist)
|
|
185
|
+
});
|
|
186
|
+
if (!!!request)
|
|
187
|
+
return;
|
|
188
|
+
const responseData = await request.json();
|
|
189
|
+
if (responseData.status != 200) {
|
|
190
|
+
throw new Error('Impossible de créer la nouvelle wishlist: ' + responseData.error);
|
|
191
|
+
}
|
|
192
|
+
setState((prevState) => (Object.assign(Object.assign({}, prevState), { wishlist: Object.assign(Object.assign({}, prevState.wishlist), { id: responseData.data.id }) })));
|
|
193
|
+
if (responseData.token) {
|
|
194
|
+
sdk.setUserToken(responseData.token);
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
catch (err) {
|
|
198
|
+
console.log(err);
|
|
199
|
+
}
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
try {
|
|
203
|
+
const request = await fetch(`${api.api}/wishlists/${state.wishlist.id}/save`, {
|
|
204
|
+
method: 'POST',
|
|
205
|
+
headers: {
|
|
206
|
+
Authorization: `Bearer ${api.token}`,
|
|
207
|
+
'Content-Type': 'application/json',
|
|
208
|
+
'x-gng-ecomm-token': api.userToken
|
|
209
|
+
},
|
|
210
|
+
body: JSON.stringify(state.wishlist)
|
|
211
|
+
});
|
|
212
|
+
if (!!!request)
|
|
213
|
+
return;
|
|
214
|
+
const responseData = await request.json();
|
|
215
|
+
if (responseData.status != 200) {
|
|
216
|
+
throw new Error('Impossible de fetch la wishlist: ' + responseData.error);
|
|
217
|
+
}
|
|
218
|
+
if (responseData.token) {
|
|
219
|
+
sdk.setUserToken(responseData.token);
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
catch (err) {
|
|
223
|
+
console.log(err);
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
return ((0, jsx_runtime_1.jsx)(_1.default.Provider, Object.assign({ value: Object.assign(Object.assign({}, state), { isFetching,
|
|
227
|
+
addItem,
|
|
228
|
+
removeItem,
|
|
229
|
+
clear }) }, { children: (0, jsx_runtime_1.jsx)(react_1.Fragment, { children: children }) })));
|
|
230
|
+
}
|
|
231
|
+
exports.default = WishlistContextProvider;
|
|
232
232
|
//# sourceMappingURL=WishlistContextProvider.js.map
|