@faststore/core 2.1.1 → 2.1.3
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/.next/BUILD_ID +1 -0
- package/.next/build-manifest.json +123 -0
- package/.next/cache/.tsbuildinfo +1 -0
- package/.next/cache/config.json +7 -0
- package/.next/cache/eslint/.cache_1gneedd +1 -0
- package/.next/cache/next-server.js.nft.json +1 -0
- package/.next/cache/webpack/client-production/0.pack +0 -0
- package/.next/cache/webpack/client-production/index.pack +0 -0
- package/.next/cache/webpack/server-production/0.pack +0 -0
- package/.next/cache/webpack/server-production/index.pack +0 -0
- package/.next/export-marker.json +1 -0
- package/.next/images-manifest.json +1 -0
- package/.next/next-server.js.nft.json +1 -0
- package/.next/package.json +1 -0
- package/.next/prerender-manifest.json +1 -0
- package/.next/react-loadable-manifest.json +44 -0
- package/.next/required-server-files.json +1 -0
- package/.next/routes-manifest.json +1 -0
- package/.next/server/chunks/123.js +58 -0
- package/.next/server/chunks/143.js +106 -0
- package/.next/server/chunks/183.js +90 -0
- package/.next/server/chunks/184.js +61 -0
- package/.next/server/chunks/205.js +722 -0
- package/.next/server/chunks/247.js +61 -0
- package/.next/server/chunks/253.js +535 -0
- package/.next/server/chunks/269.js +516 -0
- package/.next/server/chunks/287.js +58 -0
- package/.next/server/chunks/289.js +242 -0
- package/.next/server/chunks/312.js +697 -0
- package/.next/server/chunks/350.js +143 -0
- package/.next/server/chunks/378.js +326 -0
- package/.next/server/chunks/487.js +9142 -0
- package/.next/server/chunks/502.js +626 -0
- package/.next/server/chunks/513.js +257 -0
- package/.next/server/chunks/576.js +90 -0
- package/.next/server/chunks/597.js +211 -0
- package/.next/server/chunks/650.js +9142 -0
- package/.next/server/chunks/676.js +32 -0
- package/.next/server/chunks/701.js +87 -0
- package/.next/server/chunks/74.js +3949 -0
- package/.next/server/chunks/825.js +4039 -0
- package/.next/server/chunks/854.js +72 -0
- package/.next/server/chunks/859.js +959 -0
- package/.next/server/chunks/886.js +120 -0
- package/.next/server/chunks/907.js +1957 -0
- package/.next/server/chunks/98.js +124 -0
- package/.next/server/chunks/font-manifest.json +1 -0
- package/.next/server/font-manifest.json +1 -0
- package/.next/server/middleware-build-manifest.js +1 -0
- package/.next/server/middleware-manifest.json +6 -0
- package/.next/server/middleware-react-loadable-manifest.js +1 -0
- package/.next/server/pages/404.js +386 -0
- package/.next/server/pages/404.js.nft.json +1 -0
- package/.next/server/pages/500.js +388 -0
- package/.next/server/pages/500.js.nft.json +1 -0
- package/.next/server/pages/[...slug].js +778 -0
- package/.next/server/pages/[...slug].js.nft.json +1 -0
- package/.next/server/pages/[slug]/p.js +2366 -0
- package/.next/server/pages/[slug]/p.js.nft.json +1 -0
- package/.next/server/pages/_app.js +281 -0
- package/.next/server/pages/_app.js.nft.json +1 -0
- package/.next/server/pages/_document.js +340 -0
- package/.next/server/pages/_document.js.nft.json +1 -0
- package/.next/server/pages/_error.js +164 -0
- package/.next/server/pages/_error.js.nft.json +1 -0
- package/.next/server/pages/account.js +363 -0
- package/.next/server/pages/account.js.nft.json +1 -0
- package/.next/server/pages/api/graphql.js +365 -0
- package/.next/server/pages/api/graphql.js.nft.json +1 -0
- package/.next/server/pages/api/preview.js +119 -0
- package/.next/server/pages/api/preview.js.nft.json +1 -0
- package/.next/server/pages/checkout.js +363 -0
- package/.next/server/pages/checkout.js.nft.json +1 -0
- package/.next/server/pages/en-US/404.html +81 -0
- package/.next/server/pages/en-US/404.json +1 -0
- package/.next/server/pages/en-US/500.html +81 -0
- package/.next/server/pages/en-US/500.json +1 -0
- package/.next/server/pages/en-US/account.html +81 -0
- package/.next/server/pages/en-US/account.json +1 -0
- package/.next/server/pages/en-US/checkout.html +81 -0
- package/.next/server/pages/en-US/checkout.json +1 -0
- package/.next/server/pages/en-US/login.html +81 -0
- package/.next/server/pages/en-US/login.json +1 -0
- package/.next/server/pages/en-US/s.html +81 -0
- package/.next/server/pages/en-US/s.json +1 -0
- package/.next/server/pages/en-US.html +81 -0
- package/.next/server/pages/en-US.json +1 -0
- package/.next/server/pages/index.js +1018 -0
- package/.next/server/pages/index.js.nft.json +1 -0
- package/.next/server/pages/login.js +368 -0
- package/.next/server/pages/login.js.nft.json +1 -0
- package/.next/server/pages/s.js +466 -0
- package/.next/server/pages/s.js.nft.json +1 -0
- package/.next/server/pages-manifest.json +16 -0
- package/.next/server/webpack-api-runtime.js +229 -0
- package/.next/server/webpack-runtime.js +229 -0
- package/.next/static/chunks/143.dd8a556e6957baa1.js +1 -0
- package/.next/static/chunks/234-7d72b0ee52936c13.js +1 -0
- package/.next/static/chunks/495.0ecd099878b2a36d.js +1 -0
- package/.next/static/chunks/502.ec90d1859d393d34.js +1 -0
- package/.next/static/chunks/597.f8d0595b113c70af.js +1 -0
- package/.next/static/chunks/64.7ea3677ac3a10e00.js +1 -0
- package/.next/static/chunks/651.7142f31ce1e052b3.js +1 -0
- package/.next/static/chunks/682-5cfea9ed52851ed1.js +1 -0
- package/.next/static/chunks/738-a5ff304828f20cbf.js +1 -0
- package/.next/static/chunks/741.52f7fb873418346f.js +1 -0
- package/.next/static/chunks/791-727eda8f766aa791.js +1 -0
- package/.next/static/chunks/98.97381d2021f86cd9.js +1 -0
- package/.next/static/chunks/framework-dfd14d7ce6600b03.js +1 -0
- package/.next/static/chunks/main-fd466221927468fd.js +1 -0
- package/.next/static/chunks/pages/404-c3b320b915df45bb.js +1 -0
- package/.next/static/chunks/pages/500-d37a3a2e931f6995.js +1 -0
- package/.next/static/chunks/pages/[...slug]-d4e0a671c6248369.js +1 -0
- package/.next/static/chunks/pages/[slug]/p-2ad8b84fd5d98814.js +1 -0
- package/.next/static/chunks/pages/_app-79d333aa6001a806.js +1 -0
- package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +1 -0
- package/.next/static/chunks/pages/account-86a1b6e7db03bab6.js +1 -0
- package/.next/static/chunks/pages/checkout-c77dbc66c0b35ec3.js +1 -0
- package/.next/static/chunks/pages/index-2912eeade1da43bf.js +1 -0
- package/.next/static/chunks/pages/login-bbf85bc59afce37c.js +1 -0
- package/.next/static/chunks/pages/s-dd486933e8ba7fbf.js +1 -0
- package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +1 -0
- package/.next/static/chunks/webpack-c5cf5350bcb7f6f4.js +1 -0
- package/.next/static/css/0f8ce5203de8ae6f.css +1 -0
- package/.next/static/css/104f0f3ce3be32c6.css +1 -0
- package/.next/static/css/23a9d5dfc051ec6e.css +1 -0
- package/.next/static/css/287f5ba239375052.css +1 -0
- package/.next/static/css/2e00f7ba49c754b3.css +1 -0
- package/.next/static/css/6e41f1b6078c14c1.css +1 -0
- package/.next/static/css/7d822a137c54a781.css +1 -0
- package/.next/static/css/c7fc1f563fa33060.css +1 -0
- package/.next/static/css/d4a0d9df8c6df555.css +1 -0
- package/.next/static/css/e02cdad8fc000339.css +1 -0
- package/.next/static/hHM-WaPbC6D9MU3Qh2tZ1/_buildManifest.js +1 -0
- package/.next/static/hHM-WaPbC6D9MU3Qh2tZ1/_ssgManifest.js +1 -0
- package/.next/trace +72 -0
- package/.turbo/turbo-build.log +5 -5
- package/package.json +2 -2
- package/public/~partytown/debug/partytown-atomics.js +556 -0
- package/public/~partytown/debug/partytown-media.js +374 -0
- package/public/~partytown/debug/partytown-sandbox-sw.js +543 -0
- package/public/~partytown/debug/partytown-sw.js +59 -0
- package/public/~partytown/debug/partytown-ww-atomics.js +1789 -0
- package/public/~partytown/debug/partytown-ww-sw.js +1781 -0
- package/public/~partytown/debug/partytown.js +72 -0
- package/public/~partytown/partytown-atomics.js +2 -0
- package/public/~partytown/partytown-media.js +2 -0
- package/public/~partytown/partytown-sw.js +2 -0
- package/public/~partytown/partytown.js +2 -0
- package/src/components/product/ProductGrid/ProductGrid.tsx +22 -6
- package/src/components/search/Filter/Filter.tsx +12 -3
- package/src/components/sections/ProductDetails/Overrides.tsx +38 -2
- package/src/components/sections/ProductDetails/ProductDetails.tsx +45 -16
- package/src/components/sections/ProductDetails/section.module.scss +1 -0
- package/src/components/sections/ProductGallery/Overrides.tsx +52 -0
- package/src/components/ui/ImageGallery/ImageGallery.tsx +25 -14
- package/src/components/ui/ProductDetails/ProductDetailsSettings.tsx +32 -18
- package/src/components/ui/ProductGallery/ProductGallery.tsx +77 -37
- package/src/components/ui/ProductShelf/ProductShelf.tsx +1 -1
- package/src/components/ui/ShippingSimulation/ShippingSimulation.tsx +1 -2
- package/src/customizations/components/overrides/ProductDetails.tsx +15 -1
- package/src/customizations/components/overrides/ProductGallery.tsx +24 -0
- package/src/typings/overrides.d.ts +23 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.id = 123;
|
|
3
|
+
exports.ids = [123];
|
|
4
|
+
exports.modules = {
|
|
5
|
+
|
|
6
|
+
/***/ 60123:
|
|
7
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
|
|
13
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
14
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82765);
|
|
15
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25045);
|
|
16
|
+
/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(875);
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const QuantitySelector = ({ max, min = 1, initial, disabled = false, onChange, testId = 'fs-quantity-selector', ...otherProps }) => {
|
|
20
|
+
const [quantity, setQuantity] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(initial ?? min);
|
|
21
|
+
const isLeftDisabled = quantity === min;
|
|
22
|
+
const isRightDisabled = quantity === max;
|
|
23
|
+
const changeQuantity = (increaseValue) => {
|
|
24
|
+
const quantityValue = validateQuantityBounds(quantity + increaseValue);
|
|
25
|
+
onChange?.(quantityValue);
|
|
26
|
+
setQuantity(quantityValue);
|
|
27
|
+
};
|
|
28
|
+
const increase = () => changeQuantity(1);
|
|
29
|
+
const decrease = () => changeQuantity(-1);
|
|
30
|
+
function validateQuantityBounds(n) {
|
|
31
|
+
const maxValue = min ? Math.max(n, min) : n;
|
|
32
|
+
return max ? Math.min(maxValue, max) : maxValue;
|
|
33
|
+
}
|
|
34
|
+
function validateInput(e) {
|
|
35
|
+
const val = e.currentTarget.value;
|
|
36
|
+
if (!Number.isNaN(Number(val))) {
|
|
37
|
+
setQuantity(() => {
|
|
38
|
+
const quantityValue = validateQuantityBounds(Number(val));
|
|
39
|
+
onChange?.(quantityValue);
|
|
40
|
+
return quantityValue;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
(0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(() => {
|
|
45
|
+
initial && setQuantity(initial);
|
|
46
|
+
}, [initial]);
|
|
47
|
+
return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement("div", { "data-fs-quantity-selector": disabled ? 'disabled' : 'true', "data-testid": testId, ...otherProps },
|
|
48
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "left", icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Minus", width: 16, height: 16, weight: "bold" }), "aria-label": "Decrement Quantity", "aria-controls": "quantity-selector-input", disabled: isLeftDisabled || disabled, onClick: decrease, testId: `${testId}-left-button`, size: "small" }),
|
|
49
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { "data-quantity-selector-input": true, id: "quantity-selector-input", "aria-label": "Quantity", value: quantity, onChange: validateInput, disabled: disabled }),
|
|
50
|
+
react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { "data-quantity-selector-button": "right", "aria-controls": "quantity-selector-input", "aria-label": "Increment Quantity", disabled: isRightDisabled || disabled, icon: react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { name: "Plus", width: 16, height: 16, weight: "bold" }), onClick: increase, testId: `${testId}-right-button`, size: "small" })));
|
|
51
|
+
};
|
|
52
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (QuantitySelector);
|
|
53
|
+
//# sourceMappingURL=QuantitySelector.js.map
|
|
54
|
+
|
|
55
|
+
/***/ })
|
|
56
|
+
|
|
57
|
+
};
|
|
58
|
+
;
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.id = 143;
|
|
3
|
+
exports.ids = [143];
|
|
4
|
+
exports.modules = {
|
|
5
|
+
|
|
6
|
+
/***/ 29143:
|
|
7
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
__webpack_require__.r(__webpack_exports__);
|
|
10
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
11
|
+
/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
|
|
12
|
+
/* harmony export */ });
|
|
13
|
+
/* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97183);
|
|
14
|
+
/* harmony import */ var _faststore_config__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_faststore_config__WEBPACK_IMPORTED_MODULE_0__);
|
|
15
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
16
|
+
|
|
17
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
18
|
+
|
|
19
|
+
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* More info at: https://www.notion.so/vtexhandbook/Event-API-Documentation-48eee26730cf4d7f80f8fd7262231f84
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const THIRTY_MINUTES_S = 30 * 60;
|
|
26
|
+
const ONE_YEAR_S = 365 * 24 * 3600;
|
|
27
|
+
|
|
28
|
+
const randomUUID = () => typeof crypto.randomUUID === 'function' ? crypto.randomUUID() : (Math.random() * 1e6).toFixed(0);
|
|
29
|
+
|
|
30
|
+
const createStorage = (key, expiresSecond) => {
|
|
31
|
+
const timelapsed = past => (Date.now() - past) / 1e3;
|
|
32
|
+
|
|
33
|
+
return () => {
|
|
34
|
+
const item = JSON.parse(localStorage.getItem(key) ?? 'null');
|
|
35
|
+
const isExpired = !item || timelapsed(item.createdAt) > expiresSecond;
|
|
36
|
+
const payload = isExpired ? randomUUID() : item.payload;
|
|
37
|
+
|
|
38
|
+
if (isExpired) {
|
|
39
|
+
const data = {
|
|
40
|
+
payload,
|
|
41
|
+
createdAt: Date.now()
|
|
42
|
+
};
|
|
43
|
+
localStorage.setItem(key, JSON.stringify(data));
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
return payload;
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const user = {
|
|
51
|
+
anonymous: createStorage('vtex.search.anonymous', ONE_YEAR_S),
|
|
52
|
+
session: createStorage('vtex.search.session', THIRTY_MINUTES_S)
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
const sendEvent = options => fetch(`https://sp.vtex.com/event-api/v1/${(_faststore_config__WEBPACK_IMPORTED_MODULE_0___default().api.storeId)}/event`, {
|
|
56
|
+
method: 'POST',
|
|
57
|
+
body: JSON.stringify(_objectSpread(_objectSpread({}, options), {}, {
|
|
58
|
+
userAgent: navigator.userAgent,
|
|
59
|
+
anonymous: user.anonymous(),
|
|
60
|
+
session: user.session()
|
|
61
|
+
})),
|
|
62
|
+
headers: {
|
|
63
|
+
'content-type': 'application/json'
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
|
|
67
|
+
const isFullTextSearch = url => typeof url.searchParams.get('q') === 'string' && /^\/s(\/)?$/g.test(url.pathname);
|
|
68
|
+
|
|
69
|
+
const handleEvent = event => {
|
|
70
|
+
if (event.name !== 'search_select_item') {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
const url = new URL(event.params.url);
|
|
75
|
+
|
|
76
|
+
if (!isFullTextSearch(url)) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
for (const item of event.params.items ?? []) {
|
|
81
|
+
const productId = item.item_id ?? item.item_variant;
|
|
82
|
+
const position = item.index;
|
|
83
|
+
|
|
84
|
+
if (productId && position) {
|
|
85
|
+
sendEvent({
|
|
86
|
+
type: 'search.click',
|
|
87
|
+
productId,
|
|
88
|
+
position,
|
|
89
|
+
url: url.href,
|
|
90
|
+
text: url.searchParams.get('q') ?? '<empty>'
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
setInterval(() => sendEvent({
|
|
97
|
+
type: 'session.ping'
|
|
98
|
+
}), 60 * 1e3
|
|
99
|
+
/* One minute */
|
|
100
|
+
);
|
|
101
|
+
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (handleEvent);
|
|
102
|
+
|
|
103
|
+
/***/ })
|
|
104
|
+
|
|
105
|
+
};
|
|
106
|
+
;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
exports.id = 183;
|
|
2
|
+
exports.ids = [183];
|
|
3
|
+
exports.modules = {
|
|
4
|
+
|
|
5
|
+
/***/ 97183:
|
|
6
|
+
/***/ ((module) => {
|
|
7
|
+
|
|
8
|
+
module.exports = {
|
|
9
|
+
seo: {
|
|
10
|
+
title: 'NextJSStore',
|
|
11
|
+
description: 'Fast Demo Store',
|
|
12
|
+
titleTemplate: '%s | FastStore',
|
|
13
|
+
author: 'Store Framework'
|
|
14
|
+
},
|
|
15
|
+
// Theming
|
|
16
|
+
theme: 'custom-theme',
|
|
17
|
+
// Ecommerce Platform
|
|
18
|
+
platform: 'vtex',
|
|
19
|
+
// Platform specific configs for API
|
|
20
|
+
api: {
|
|
21
|
+
storeId: 'storeframework',
|
|
22
|
+
workspace: 'master',
|
|
23
|
+
environment: 'vtexcommercestable',
|
|
24
|
+
hideUnavailableItems: true,
|
|
25
|
+
incrementAddress: false
|
|
26
|
+
},
|
|
27
|
+
// Default session
|
|
28
|
+
session: {
|
|
29
|
+
currency: {
|
|
30
|
+
code: 'USD',
|
|
31
|
+
symbol: '$'
|
|
32
|
+
},
|
|
33
|
+
locale: 'en-US',
|
|
34
|
+
channel: '{"salesChannel":"1","regionId":""}',
|
|
35
|
+
country: 'USA',
|
|
36
|
+
deliveryMode: null,
|
|
37
|
+
addressType: null,
|
|
38
|
+
postalCode: null,
|
|
39
|
+
geoCoordinates: null,
|
|
40
|
+
person: null
|
|
41
|
+
},
|
|
42
|
+
// Default cart
|
|
43
|
+
cart: {
|
|
44
|
+
id: '',
|
|
45
|
+
items: [],
|
|
46
|
+
messages: [],
|
|
47
|
+
shouldSplitItem: true
|
|
48
|
+
},
|
|
49
|
+
// Production URLs
|
|
50
|
+
storeUrl: 'https://vtexfaststore.com',
|
|
51
|
+
secureSubdomain: 'https://secure.vtexfaststore.com',
|
|
52
|
+
checkoutUrl: 'https://secure.vtexfaststore.com/checkout',
|
|
53
|
+
loginUrl: 'https://secure.vtexfaststore.com/api/io/login',
|
|
54
|
+
accountUrl: 'https://secure.vtexfaststore.com/api/io/account',
|
|
55
|
+
// Preview redirects
|
|
56
|
+
previewRedirects: {
|
|
57
|
+
home: '/',
|
|
58
|
+
plp: '/office',
|
|
59
|
+
search: '/s?q=headphone',
|
|
60
|
+
pdp: '/apple-magic-mouse/p'
|
|
61
|
+
},
|
|
62
|
+
// Lighthouse CI
|
|
63
|
+
lighthouse: {
|
|
64
|
+
server: process.env.BASE_SITE_URL || 'http://localhost:3000',
|
|
65
|
+
pages: {
|
|
66
|
+
home: '/',
|
|
67
|
+
pdp: '/apple-magic-mouse/p',
|
|
68
|
+
collection: '/office'
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
// E2E CI
|
|
72
|
+
cypress: {
|
|
73
|
+
pages: {
|
|
74
|
+
home: '/',
|
|
75
|
+
pdp: '/apple-magic-mouse/p',
|
|
76
|
+
collection: '/office',
|
|
77
|
+
collection_filtered: '/office/?category-1=office&marca=acer&facets=category-1%2Cmarca',
|
|
78
|
+
search: '/s?q=orange'
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
analytics: {
|
|
82
|
+
// https://developers.google.com/tag-platform/tag-manager/web#standard_web_page_installation,
|
|
83
|
+
gtmContainerId: 'GTM-PGHZ95N'
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/***/ })
|
|
88
|
+
|
|
89
|
+
};
|
|
90
|
+
;
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
exports.id = 184;
|
|
3
|
+
exports.ids = [184];
|
|
4
|
+
exports.modules = {
|
|
5
|
+
|
|
6
|
+
/***/ 55184:
|
|
7
|
+
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
|
|
8
|
+
|
|
9
|
+
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
10
|
+
/* harmony export */ "m": () => (/* binding */ useViewItemListEvent)
|
|
11
|
+
/* harmony export */ });
|
|
12
|
+
/* harmony import */ var _faststore_sdk__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71072);
|
|
13
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16689);
|
|
14
|
+
/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
|
|
15
|
+
/* harmony import */ var src_sdk_session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97295);
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
const useViewItemListEvent = ({
|
|
20
|
+
products,
|
|
21
|
+
title,
|
|
22
|
+
page,
|
|
23
|
+
pageSize
|
|
24
|
+
}) => {
|
|
25
|
+
const {
|
|
26
|
+
currency: {
|
|
27
|
+
code
|
|
28
|
+
}
|
|
29
|
+
} = (0,src_sdk_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
|
|
30
|
+
const sendViewItemListEvent = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(() => {
|
|
31
|
+
(0,_faststore_sdk__WEBPACK_IMPORTED_MODULE_2__/* .sendAnalyticsEvent */ ._)({
|
|
32
|
+
name: 'view_item_list',
|
|
33
|
+
params: {
|
|
34
|
+
item_list_name: title,
|
|
35
|
+
item_list_id: title,
|
|
36
|
+
items: products.map(({
|
|
37
|
+
node: product
|
|
38
|
+
}, index) => ({
|
|
39
|
+
item_id: product.isVariantOf.productGroupID,
|
|
40
|
+
item_name: product.isVariantOf.name,
|
|
41
|
+
item_brand: product.brand.name,
|
|
42
|
+
item_variant: product.sku,
|
|
43
|
+
price: product.offers.offers[0].price,
|
|
44
|
+
index: page * pageSize + index + 1,
|
|
45
|
+
discount: product.offers.offers[0].listPrice - product.offers.offers[0].price,
|
|
46
|
+
currency: code,
|
|
47
|
+
item_variant_name: product.name,
|
|
48
|
+
product_reference_id: product.gtin
|
|
49
|
+
}))
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
}, [code, products, title, page, pageSize]);
|
|
53
|
+
return {
|
|
54
|
+
sendViewItemListEvent
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
/***/ })
|
|
59
|
+
|
|
60
|
+
};
|
|
61
|
+
;
|