@faststore/core 2.0.117-alpha.0 → 2.0.120-alpha.0

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 (160) hide show
  1. package/.turbo/turbo-build.log +38 -26
  2. package/CHANGELOG.md +10 -0
  3. package/cms/faststore/content-types.json +6 -0
  4. package/cms/faststore/sections.json +8 -0
  5. package/package.json +3 -3
  6. package/src/Layout.tsx +2 -24
  7. package/src/components/cms/GlobalSections.tsx +81 -0
  8. package/src/components/cms/RenderSections.tsx +39 -0
  9. package/src/components/common/Alert/Alert.tsx +7 -5
  10. package/src/components/common/Alert/index.ts +1 -0
  11. package/src/components/sections/Alert/Alert.tsx +28 -0
  12. package/src/pages/404.tsx +25 -3
  13. package/src/pages/500.tsx +25 -3
  14. package/src/pages/[...slug].tsx +85 -66
  15. package/src/pages/[slug]/p.tsx +16 -6
  16. package/src/pages/account.tsx +25 -3
  17. package/src/pages/checkout.tsx +25 -3
  18. package/src/pages/index.tsx +20 -10
  19. package/src/pages/login.tsx +25 -3
  20. package/src/pages/s.tsx +63 -39
  21. package/.next/BUILD_ID +0 -1
  22. package/.next/build-manifest.json +0 -99
  23. package/.next/cache/.tsbuildinfo +0 -1
  24. package/.next/cache/config.json +0 -7
  25. package/.next/cache/eslint/.cache_1gneedd +0 -1
  26. package/.next/cache/next-server.js.nft.json +0 -1
  27. package/.next/cache/webpack/client-production/0.pack +0 -0
  28. package/.next/cache/webpack/client-production/index.pack +0 -0
  29. package/.next/cache/webpack/server-production/0.pack +0 -0
  30. package/.next/cache/webpack/server-production/index.pack +0 -0
  31. package/.next/export-marker.json +0 -1
  32. package/.next/images-manifest.json +0 -1
  33. package/.next/next-server.js.nft.json +0 -1
  34. package/.next/package.json +0 -1
  35. package/.next/prerender-manifest.json +0 -1
  36. package/.next/react-loadable-manifest.json +0 -42
  37. package/.next/required-server-files.json +0 -1
  38. package/.next/routes-manifest.json +0 -1
  39. package/.next/server/chunks/120.js +0 -435
  40. package/.next/server/chunks/123.js +0 -58
  41. package/.next/server/chunks/1394.js +0 -3801
  42. package/.next/server/chunks/1597.js +0 -151
  43. package/.next/server/chunks/1608.js +0 -515
  44. package/.next/server/chunks/2154.js +0 -206
  45. package/.next/server/chunks/247.js +0 -61
  46. package/.next/server/chunks/2502.js +0 -584
  47. package/.next/server/chunks/2914.js +0 -95
  48. package/.next/server/chunks/2922.js +0 -7293
  49. package/.next/server/chunks/3264.js +0 -67
  50. package/.next/server/chunks/3431.js +0 -7241
  51. package/.next/server/chunks/350.js +0 -142
  52. package/.next/server/chunks/3746.js +0 -250
  53. package/.next/server/chunks/3898.js +0 -240
  54. package/.next/server/chunks/4312.js +0 -674
  55. package/.next/server/chunks/4371.js +0 -1424
  56. package/.next/server/chunks/5098.js +0 -124
  57. package/.next/server/chunks/5335.js +0 -544
  58. package/.next/server/chunks/5576.js +0 -79
  59. package/.next/server/chunks/6280.js +0 -322
  60. package/.next/server/chunks/6465.js +0 -91
  61. package/.next/server/chunks/676.js +0 -32
  62. package/.next/server/chunks/6859.js +0 -959
  63. package/.next/server/chunks/6881.js +0 -320
  64. package/.next/server/chunks/6898.js +0 -149
  65. package/.next/server/chunks/7104.js +0 -235
  66. package/.next/server/chunks/7181.js +0 -664
  67. package/.next/server/chunks/7183.js +0 -79
  68. package/.next/server/chunks/8098.js +0 -246
  69. package/.next/server/chunks/810.js +0 -432
  70. package/.next/server/chunks/8287.js +0 -58
  71. package/.next/server/chunks/9143.js +0 -106
  72. package/.next/server/chunks/9557.js +0 -119
  73. package/.next/server/chunks/9854.js +0 -72
  74. package/.next/server/chunks/font-manifest.json +0 -1
  75. package/.next/server/font-manifest.json +0 -1
  76. package/.next/server/middleware-build-manifest.js +0 -1
  77. package/.next/server/middleware-manifest.json +0 -6
  78. package/.next/server/middleware-react-loadable-manifest.js +0 -1
  79. package/.next/server/pages/404.js.nft.json +0 -1
  80. package/.next/server/pages/500.js.nft.json +0 -1
  81. package/.next/server/pages/[...slug].js +0 -666
  82. package/.next/server/pages/[...slug].js.nft.json +0 -1
  83. package/.next/server/pages/[slug]/p.js +0 -2327
  84. package/.next/server/pages/[slug]/p.js.nft.json +0 -1
  85. package/.next/server/pages/_app.js +0 -2454
  86. package/.next/server/pages/_app.js.nft.json +0 -1
  87. package/.next/server/pages/_document.js +0 -304
  88. package/.next/server/pages/_document.js.nft.json +0 -1
  89. package/.next/server/pages/_error.js +0 -164
  90. package/.next/server/pages/_error.js.nft.json +0 -1
  91. package/.next/server/pages/account.js.nft.json +0 -1
  92. package/.next/server/pages/api/graphql.js +0 -315
  93. package/.next/server/pages/api/graphql.js.nft.json +0 -1
  94. package/.next/server/pages/api/preview.js +0 -118
  95. package/.next/server/pages/api/preview.js.nft.json +0 -1
  96. package/.next/server/pages/checkout.js.nft.json +0 -1
  97. package/.next/server/pages/en-US/404.html +0 -81
  98. package/.next/server/pages/en-US/500.html +0 -81
  99. package/.next/server/pages/en-US/account.html +0 -81
  100. package/.next/server/pages/en-US/checkout.html +0 -81
  101. package/.next/server/pages/en-US/login.html +0 -81
  102. package/.next/server/pages/en-US/s.html +0 -81
  103. package/.next/server/pages/en-US.html +0 -81
  104. package/.next/server/pages/en-US.json +0 -1
  105. package/.next/server/pages/index.js +0 -475
  106. package/.next/server/pages/index.js.nft.json +0 -1
  107. package/.next/server/pages/login.js.nft.json +0 -1
  108. package/.next/server/pages/s.js.nft.json +0 -1
  109. package/.next/server/pages-manifest.json +0 -16
  110. package/.next/server/webpack-api-runtime.js +0 -229
  111. package/.next/server/webpack-runtime.js +0 -229
  112. package/.next/static/chunks/143.dd8a556e6957baa1.js +0 -1
  113. package/.next/static/chunks/170.79b2f8527e327bca.js +0 -1
  114. package/.next/static/chunks/264-5b07911df63b8601.js +0 -1
  115. package/.next/static/chunks/351-a4e28d64f48c5269.js +0 -1
  116. package/.next/static/chunks/54.e6562383f8a1dfe7.js +0 -1
  117. package/.next/static/chunks/597.fc79494903e8bb84.js +0 -1
  118. package/.next/static/chunks/608.59e69b83f35d9c44.js +0 -1
  119. package/.next/static/chunks/651.7142f31ce1e052b3.js +0 -1
  120. package/.next/static/chunks/741.52f7fb873418346f.js +0 -1
  121. package/.next/static/chunks/781-e1b538e051ff4c3e.js +0 -1
  122. package/.next/static/chunks/98.97381d2021f86cd9.js +0 -1
  123. package/.next/static/chunks/996.98e590872c51f815.js +0 -1
  124. package/.next/static/chunks/framework-dfd14d7ce6600b03.js +0 -1
  125. package/.next/static/chunks/main-9746772201fe3ac1.js +0 -1
  126. package/.next/static/chunks/pages/404-3637ef83b3359df7.js +0 -1
  127. package/.next/static/chunks/pages/500-910883c20541d9ce.js +0 -1
  128. package/.next/static/chunks/pages/[...slug]-29d3b81ee0953846.js +0 -1
  129. package/.next/static/chunks/pages/[slug]/p-9b24055cb30ee7a8.js +0 -1
  130. package/.next/static/chunks/pages/_app-4aeb21d72aeea9b7.js +0 -1
  131. package/.next/static/chunks/pages/_error-a7a0c1d9bfbb4f38.js +0 -1
  132. package/.next/static/chunks/pages/account-b8fc5222ffe89b60.js +0 -1
  133. package/.next/static/chunks/pages/checkout-f8cb7cb22225ef9d.js +0 -1
  134. package/.next/static/chunks/pages/index-d48285f48d2a66ea.js +0 -1
  135. package/.next/static/chunks/pages/login-45cc84352bac2408.js +0 -1
  136. package/.next/static/chunks/pages/s-ba2868e14fedb65b.js +0 -1
  137. package/.next/static/chunks/polyfills-c67a75d1b6f99dc8.js +0 -1
  138. package/.next/static/chunks/webpack-f725b61675603493.js +0 -1
  139. package/.next/static/css/1f987650dd4e39d0.css +0 -1
  140. package/.next/static/css/3a57acf6e411f24d.css +0 -1
  141. package/.next/static/css/4abccf9803c3c356.css +0 -1
  142. package/.next/static/css/502746c995f64cce.css +0 -1
  143. package/.next/static/css/6507cb48401e73a4.css +0 -1
  144. package/.next/static/css/6f4d3e91f1d161a8.css +0 -1
  145. package/.next/static/kFT8gMGQbscGgKaZLxG_K/_buildManifest.js +0 -1
  146. package/.next/static/kFT8gMGQbscGgKaZLxG_K/_ssgManifest.js +0 -1
  147. package/.next/static/media/brandless-neutral.76ddf63a.png +0 -0
  148. package/.next/trace +0 -64
  149. package/public/~partytown/debug/partytown-atomics.js +0 -556
  150. package/public/~partytown/debug/partytown-media.js +0 -374
  151. package/public/~partytown/debug/partytown-sandbox-sw.js +0 -543
  152. package/public/~partytown/debug/partytown-sw.js +0 -59
  153. package/public/~partytown/debug/partytown-ww-atomics.js +0 -1789
  154. package/public/~partytown/debug/partytown-ww-sw.js +0 -1781
  155. package/public/~partytown/debug/partytown.js +0 -72
  156. package/public/~partytown/partytown-atomics.js +0 -2
  157. package/public/~partytown/partytown-media.js +0 -2
  158. package/public/~partytown/partytown-sw.js +0 -2
  159. package/public/~partytown/partytown.js +0 -2
  160. package/src/components/cms/RenderPageSections.tsx +0 -37
@@ -1,206 +0,0 @@
1
- "use strict";
2
- exports.id = 2154;
3
- exports.ids = [2154];
4
- exports.modules = {
5
-
6
- /***/ 2154:
7
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
8
-
9
-
10
- // EXPORTS
11
- __webpack_require__.d(__webpack_exports__, {
12
- "E": () => (/* reexport */ Image_Image)
13
- });
14
-
15
- // EXTERNAL MODULE: external "react"
16
- var external_react_ = __webpack_require__(6689);
17
- // EXTERNAL MODULE: ./node_modules/next/future/image.js
18
- var future_image = __webpack_require__(1608);
19
- var image_default = /*#__PURE__*/__webpack_require__.n(future_image);
20
- // EXTERNAL MODULE: ./faststore.config.js
21
- var faststore_config = __webpack_require__(7183);
22
- var faststore_config_default = /*#__PURE__*/__webpack_require__.n(faststore_config);
23
- ;// CONCATENATED MODULE: ./src/components/ui/Image/thumborUrlBuilder.ts
24
-
25
- const THUMBOR_SERVER = `https://${(faststore_config_default()).api.storeId}.vtexassets.com`;
26
-
27
- const cropSection = ({
28
- left,
29
- top,
30
- right,
31
- bottom
32
- }) => `${left}x${top}:${right}x${bottom}`;
33
-
34
- function filtersURIComponent(filters) {
35
- const elements = ['filters'];
36
- Object.keys(filters).forEach(name => {
37
- const parameters = filters[name];
38
- let stringParameters; // If we have several parameters, they were passed as an array
39
- // and now they need to be comma separated, otherwise there is just one to convert to a string
40
-
41
- if (Array.isArray(parameters)) {
42
- stringParameters = parameters.join(',');
43
- } // If true, we don't even need to do anything, we just have an empty string and insert ()
44
- // Ex: {grayscale: true} => grayscale()
45
- else if (parameters === true) {
46
- stringParameters = '';
47
- } else {
48
- stringParameters = String(parameters);
49
- }
50
-
51
- elements.push(`${name}(${stringParameters})`);
52
- });
53
- return elements.join(':');
54
- }
55
-
56
- const urlBuilder = (baseUrl, options) => {
57
- const preSizeComponents = [THUMBOR_SERVER, 'unsafe'];
58
- const postSizeComponents = []; // Add the trim parameter after unsafe if appliable
59
-
60
- options.trim && preSizeComponents.push('trim'); // Add the crop parameter if any
61
-
62
- options.manualCrop && preSizeComponents.push(cropSection(options.manualCrop)); // Add the fit-in parameter after crop if appliable
63
-
64
- options.fitIn && preSizeComponents.push('fit-in'); // Adds the horizontal alignement after the size
65
-
66
- postSizeComponents.push(options.horizontalAlign ?? 'center'); // Adds the vertical alignement after the size
67
-
68
- postSizeComponents.push(options.verticalAlign ?? 'middle'); // Adds the smart parameter if appliable
69
-
70
- options.smart && postSizeComponents.push('smart'); // Compile the filters and add them right before the URI
71
-
72
- const {
73
- filters
74
- } = options;
75
- filters && postSizeComponents.push(filtersURIComponent(filters)); // Finally, adds the real image uri
76
-
77
- postSizeComponents.push(encodeURIComponent(baseUrl));
78
- return (width, height) => {
79
- // Adds the final size parameter
80
- let finalSize = '';
81
-
82
- if (options.flipHorizontal) {
83
- finalSize += '-';
84
- }
85
-
86
- finalSize += `${width}x`;
87
-
88
- if (options.flipVertical) {
89
- finalSize += '-';
90
- }
91
-
92
- finalSize += `${height}`;
93
- return [...preSizeComponents, finalSize, ...postSizeComponents].join('/');
94
- };
95
- };
96
- ;// CONCATENATED MODULE: ./src/components/ui/Image/useImage.ts
97
- const _excluded = ["src", "width", "height", "options"];
98
-
99
- 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; }
100
-
101
- 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; }
102
-
103
- 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; }
104
-
105
- function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
106
-
107
- function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
108
-
109
-
110
-
111
- const FACTORS = [1, 2, 3];
112
- const LARGE_FACTOR = FACTORS[FACTORS.length - 1];
113
- const useImage = _ref => {
114
- let {
115
- src: baseUrl,
116
- width,
117
- height,
118
- options = {}
119
- } = _ref,
120
- rest = _objectWithoutProperties(_ref, _excluded);
121
-
122
- const {
123
- srcSet,
124
- src
125
- } = (0,external_react_.useMemo)(() => {
126
- const builder = urlBuilder(baseUrl, options);
127
- const srcs = FACTORS.map(factor => {
128
- const rescaledWidth = width * factor;
129
- return `${builder(rescaledWidth, height * factor)} ${rescaledWidth}w`;
130
- });
131
- return {
132
- src: builder(width * LARGE_FACTOR, height * LARGE_FACTOR),
133
- srcSet: srcs.join(', ')
134
- };
135
- }, [height, options, baseUrl, width]);
136
- return _objectSpread({
137
- src,
138
- srcSet,
139
- width: `${width}px`,
140
- height: `${height}px`
141
- }, rest);
142
- };
143
- // EXTERNAL MODULE: external "react/jsx-runtime"
144
- var jsx_runtime_ = __webpack_require__(997);
145
- ;// CONCATENATED MODULE: ./src/components/ui/Image/Image.tsx
146
- const Image_excluded = ["src", "width", "height", "quality"];
147
-
148
- function Image_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; }
149
-
150
- function Image_objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? Image_ownKeys(Object(source), !0).forEach(function (key) { Image_defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : Image_ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
151
-
152
- function Image_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; }
153
-
154
- function Image_objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = Image_objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
155
-
156
- function Image_objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
157
-
158
-
159
-
160
- // Next loader function does not handle all props as height and options,
161
- // so we use the useImage hook to handle the custom thumbor loader (VTEX CDN) along with unoptimized prop
162
- // https://nextjs.org/docs/api-reference/next/image#loader
163
-
164
-
165
-
166
- function Image(_ref) {
167
- let {
168
- src,
169
- width,
170
- height,
171
- quality
172
- } = _ref,
173
- otherProps = Image_objectWithoutProperties(_ref, Image_excluded);
174
-
175
- const {
176
- src: thumborSrc,
177
- alt
178
- } = useImage(Image_objectSpread({
179
- src: String(src),
180
- width: Number(width),
181
- height: Number(height),
182
- options: quality ? {
183
- filters: {
184
- quality
185
- }
186
- } : undefined
187
- }, otherProps));
188
- return /*#__PURE__*/jsx_runtime_.jsx((image_default()), Image_objectSpread({
189
- "data-fs-image": true,
190
- unoptimized: true,
191
- src: thumborSrc,
192
- width: width,
193
- height: height,
194
- alt: alt
195
- }, otherProps));
196
- }
197
-
198
- Image.displayName = 'Image';
199
- /* harmony default export */ const Image_Image = (/*#__PURE__*/(0,external_react_.memo)(Image));
200
- ;// CONCATENATED MODULE: ./src/components/ui/Image/index.ts
201
-
202
-
203
- /***/ })
204
-
205
- };
206
- ;
@@ -1,61 +0,0 @@
1
- "use strict";
2
- exports.id = 247;
3
- exports.ids = [247];
4
- exports.modules = {
5
-
6
- /***/ 7549:
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__(6689);
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__(2691);
15
-
16
-
17
- const Price = (0,react__WEBPACK_IMPORTED_MODULE_0__.forwardRef)(function Price({ value, as: Component = 'span', variant = 'selling', testId = 'fs-price', formatter = (price) => price, SRText, ...otherProps }, ref) {
18
- const formattedPrice = formatter(value, variant);
19
- return (react__WEBPACK_IMPORTED_MODULE_0___default().createElement(Component, { ref: ref, "data-fs-price": true, "data-fs-price-variant": variant, "data-testid": testId, ...otherProps },
20
- SRText && react__WEBPACK_IMPORTED_MODULE_0___default().createElement(___WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, { text: SRText }),
21
- formattedPrice));
22
- });
23
- /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (Price);
24
- //# sourceMappingURL=Price.js.map
25
-
26
- /***/ }),
27
-
28
- /***/ 5346:
29
- /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
30
-
31
- /* harmony export */ __webpack_require__.d(__webpack_exports__, {
32
- /* harmony export */ "P": () => (/* binding */ useFormattedPrice)
33
- /* harmony export */ });
34
- /* unused harmony export usePriceFormatter */
35
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6689);
36
- /* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);
37
- /* harmony import */ var _session__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5971);
38
-
39
-
40
- const usePriceFormatter = ({
41
- decimals
42
- } = {}) => {
43
- const {
44
- currency,
45
- locale
46
- } = (0,_session__WEBPACK_IMPORTED_MODULE_1__/* .useSession */ .kP)();
47
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(price => Intl.NumberFormat(locale, {
48
- style: 'currency',
49
- currency: currency.code,
50
- minimumFractionDigits: decimals ? 2 : 0
51
- }).format(price), [currency.code, locale, decimals]);
52
- };
53
- const useFormattedPrice = price => {
54
- const formatter = usePriceFormatter();
55
- return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(() => formatter(price), [formatter, price]);
56
- };
57
-
58
- /***/ })
59
-
60
- };
61
- ;