@plasmicpkgs/commerce 0.0.13 → 0.0.14
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/dist/commerce.cjs.development.js +146 -9
- package/dist/commerce.cjs.development.js.map +1 -1
- package/dist/commerce.cjs.production.min.js +1 -1
- package/dist/commerce.cjs.production.min.js.map +1 -1
- package/dist/commerce.esm.js +146 -9
- package/dist/commerce.esm.js.map +1 -1
- package/dist/contexts.d.ts +10 -3
- package/dist/registerCategoryMedia.d.ts +10 -0
- package/dist/registerProductSlider.d.ts +14 -0
- package/dist/types/site.d.ts +11 -6
- package/package.json +2 -2
|
@@ -971,6 +971,7 @@ var defaultProduct = {
|
|
|
971
971
|
|
|
972
972
|
var ProductContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
973
973
|
var CategoryContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
974
|
+
var SliderContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
974
975
|
function ProductProvider(_ref) {
|
|
975
976
|
var product = _ref.product,
|
|
976
977
|
children = _ref.children;
|
|
@@ -995,6 +996,20 @@ function CategoryProvider(_ref2) {
|
|
|
995
996
|
var useCategoryContext = function useCategoryContext() {
|
|
996
997
|
return React.useContext(CategoryContext);
|
|
997
998
|
};
|
|
999
|
+
function ProductSliderProvider(_ref3) {
|
|
1000
|
+
var mediaIndex = _ref3.mediaIndex,
|
|
1001
|
+
onClick = _ref3.onClick,
|
|
1002
|
+
children = _ref3.children;
|
|
1003
|
+
return React__default.createElement(SliderContext.Provider, {
|
|
1004
|
+
value: mediaIndex,
|
|
1005
|
+
key: mediaIndex
|
|
1006
|
+
}, React__default.cloneElement(React__default.isValidElement(children) ? children : React__default.createElement(React__default.Fragment, null), {
|
|
1007
|
+
onClick: onClick
|
|
1008
|
+
}));
|
|
1009
|
+
}
|
|
1010
|
+
var useProductSliderContext = function useProductSliderContext() {
|
|
1011
|
+
return React.useContext(SliderContext);
|
|
1012
|
+
};
|
|
998
1013
|
|
|
999
1014
|
var _excluded = ["children"];
|
|
1000
1015
|
var Commerce = /*#__PURE__*/React.createContext({});
|
|
@@ -1774,6 +1789,38 @@ function registerCategoryLink(loader, customCategoryLinkMeta) {
|
|
|
1774
1789
|
doRegisterComponent(CategoryLink, customCategoryLinkMeta != null ? customCategoryLinkMeta : categoryLinkMeta);
|
|
1775
1790
|
}
|
|
1776
1791
|
|
|
1792
|
+
var categoryMediaMeta = {
|
|
1793
|
+
name: "plasmic-commerce-category-media",
|
|
1794
|
+
displayName: "Category Media",
|
|
1795
|
+
props: {
|
|
1796
|
+
mediaIndex: "number"
|
|
1797
|
+
},
|
|
1798
|
+
importPath: "@plasmicpkgs/commerce",
|
|
1799
|
+
importName: "CategoryMedia"
|
|
1800
|
+
};
|
|
1801
|
+
function CategoryMedia(props) {
|
|
1802
|
+
var _image$url;
|
|
1803
|
+
|
|
1804
|
+
var className = props.className,
|
|
1805
|
+
_props$mediaIndex = props.mediaIndex,
|
|
1806
|
+
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex;
|
|
1807
|
+
var category = useCategoryContext();
|
|
1808
|
+
var image = category != null && category.images ? category.images[mediaIndex] : undefined;
|
|
1809
|
+
return React__default.createElement("img", {
|
|
1810
|
+
alt: (category == null ? void 0 : category.name) || "Category Image",
|
|
1811
|
+
src: (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "",
|
|
1812
|
+
loading: "lazy",
|
|
1813
|
+
className: className
|
|
1814
|
+
});
|
|
1815
|
+
}
|
|
1816
|
+
function registerCategoryMedia(loader, customCategoryMediaMeta) {
|
|
1817
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
1818
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
1819
|
+
};
|
|
1820
|
+
|
|
1821
|
+
doRegisterComponent(CategoryMedia, customCategoryMediaMeta != null ? customCategoryMediaMeta : categoryMediaMeta);
|
|
1822
|
+
}
|
|
1823
|
+
|
|
1777
1824
|
var fetcher$3 = SWRFetcher;
|
|
1778
1825
|
|
|
1779
1826
|
var fn$3 = function fn(provider) {
|
|
@@ -2163,11 +2210,12 @@ function ProductMedia(props) {
|
|
|
2163
2210
|
_props$mediaIndex = props.mediaIndex,
|
|
2164
2211
|
mediaIndex = _props$mediaIndex === void 0 ? 0 : _props$mediaIndex;
|
|
2165
2212
|
var product = useProduct();
|
|
2166
|
-
var
|
|
2213
|
+
var sliderContext = useProductSliderContext();
|
|
2214
|
+
var image = product == null ? void 0 : product.images[sliderContext != null ? sliderContext : mediaIndex];
|
|
2167
2215
|
return React__default.createElement("img", {
|
|
2168
|
-
alt: (product == null ? void 0 : product.name) ||
|
|
2216
|
+
alt: (product == null ? void 0 : product.name) || "Product Image",
|
|
2169
2217
|
src: product ? (_image$url = image == null ? void 0 : image.url) != null ? _image$url : "" : placeholderImage,
|
|
2170
|
-
loading:
|
|
2218
|
+
loading: "lazy",
|
|
2171
2219
|
className: className
|
|
2172
2220
|
});
|
|
2173
2221
|
}
|
|
@@ -2263,6 +2311,90 @@ function registerProductQuantity(loader, customProductQuantityMeta) {
|
|
|
2263
2311
|
doRegisterComponent(ProductQuantity, customProductQuantityMeta != null ? customProductQuantityMeta : productQuantityMeta);
|
|
2264
2312
|
}
|
|
2265
2313
|
|
|
2314
|
+
var productSliderMeta = {
|
|
2315
|
+
name: "plasmic-commerce-product-slider",
|
|
2316
|
+
displayName: "Product Slider",
|
|
2317
|
+
props: {
|
|
2318
|
+
thumbsVisible: {
|
|
2319
|
+
type: "number",
|
|
2320
|
+
description: "Number of thumbs visible",
|
|
2321
|
+
defaultValue: 4,
|
|
2322
|
+
defaultValueHint: 4
|
|
2323
|
+
},
|
|
2324
|
+
slideContainer: {
|
|
2325
|
+
type: "slot",
|
|
2326
|
+
defaultValue: {
|
|
2327
|
+
type: "vbox",
|
|
2328
|
+
children: [{
|
|
2329
|
+
type: "component",
|
|
2330
|
+
name: "plasmic-commerce-product-media"
|
|
2331
|
+
}]
|
|
2332
|
+
}
|
|
2333
|
+
},
|
|
2334
|
+
thumbsContainer: {
|
|
2335
|
+
type: "slot",
|
|
2336
|
+
defaultValue: {
|
|
2337
|
+
type: "hbox",
|
|
2338
|
+
children: [{
|
|
2339
|
+
type: "component",
|
|
2340
|
+
name: "plasmic-commerce-product-media"
|
|
2341
|
+
}]
|
|
2342
|
+
}
|
|
2343
|
+
},
|
|
2344
|
+
slideSelected: {
|
|
2345
|
+
type: "number",
|
|
2346
|
+
defaultValue: 0,
|
|
2347
|
+
defaultValueHint: 0,
|
|
2348
|
+
description: "Current slide selected"
|
|
2349
|
+
}
|
|
2350
|
+
},
|
|
2351
|
+
importPath: "@plasmicpkgs/commerce",
|
|
2352
|
+
importName: "ProductSlider"
|
|
2353
|
+
};
|
|
2354
|
+
function ProductSlider(props) {
|
|
2355
|
+
var className = props.className,
|
|
2356
|
+
slideContainer = props.slideContainer,
|
|
2357
|
+
thumbsContainer = props.thumbsContainer,
|
|
2358
|
+
_props$thumbsVisible = props.thumbsVisible,
|
|
2359
|
+
thumbsVisible = _props$thumbsVisible === void 0 ? 4 : _props$thumbsVisible,
|
|
2360
|
+
_props$slideSelected = props.slideSelected,
|
|
2361
|
+
slideSelected = _props$slideSelected === void 0 ? 0 : _props$slideSelected;
|
|
2362
|
+
var product = useProduct();
|
|
2363
|
+
|
|
2364
|
+
var _React$useState = React__default.useState(slideSelected),
|
|
2365
|
+
selected = _React$useState[0],
|
|
2366
|
+
setSelected = _React$useState[1];
|
|
2367
|
+
|
|
2368
|
+
var maximumRight = product.images.length - thumbsVisible;
|
|
2369
|
+
var leftIndex = Math.min(maximumRight, Math.max(0, selected - 1));
|
|
2370
|
+
return React__default.createElement("div", {
|
|
2371
|
+
className: className
|
|
2372
|
+
}, React__default.createElement(ProductSliderProvider, {
|
|
2373
|
+
mediaIndex: selected,
|
|
2374
|
+
children: slideContainer
|
|
2375
|
+
}), React__default.createElement("div", {
|
|
2376
|
+
style: {
|
|
2377
|
+
display: "grid",
|
|
2378
|
+
gridTemplateColumns: "repeat(" + thumbsVisible + ", 1fr)"
|
|
2379
|
+
}
|
|
2380
|
+
}, product.images.slice(leftIndex, leftIndex + thumbsVisible).map(function (image, i) {
|
|
2381
|
+
return host.repeatedElement(i === 0, React__default.createElement(ProductSliderProvider, {
|
|
2382
|
+
mediaIndex: leftIndex + i,
|
|
2383
|
+
children: thumbsContainer,
|
|
2384
|
+
onClick: function onClick() {
|
|
2385
|
+
return setSelected(leftIndex + i);
|
|
2386
|
+
}
|
|
2387
|
+
}));
|
|
2388
|
+
})));
|
|
2389
|
+
}
|
|
2390
|
+
function registerProductSlider(loader, customProductSliderMeta) {
|
|
2391
|
+
var doRegisterComponent = function doRegisterComponent() {
|
|
2392
|
+
return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
|
|
2393
|
+
};
|
|
2394
|
+
|
|
2395
|
+
doRegisterComponent(ProductSlider, customProductSliderMeta != null ? customProductSliderMeta : productSliderMeta);
|
|
2396
|
+
}
|
|
2397
|
+
|
|
2266
2398
|
var productTextFieldMeta = {
|
|
2267
2399
|
name: "plasmic-commerce-product-text-field",
|
|
2268
2400
|
displayName: "Product Text Field",
|
|
@@ -2295,14 +2427,14 @@ function ProductTextField(props) {
|
|
|
2295
2427
|
var value;
|
|
2296
2428
|
|
|
2297
2429
|
if (field === "description") {
|
|
2298
|
-
|
|
2430
|
+
var _product$descriptionH;
|
|
2431
|
+
|
|
2432
|
+
return React__default.createElement("div", {
|
|
2299
2433
|
className: className,
|
|
2300
2434
|
dangerouslySetInnerHTML: {
|
|
2301
|
-
__html: product.descriptionHtml
|
|
2435
|
+
__html: (_product$descriptionH = product.descriptionHtml) != null ? _product$descriptionH : product.description
|
|
2302
2436
|
}
|
|
2303
|
-
})
|
|
2304
|
-
className: className
|
|
2305
|
-
}, product.description);
|
|
2437
|
+
});
|
|
2306
2438
|
} else {
|
|
2307
2439
|
value = product[field];
|
|
2308
2440
|
}
|
|
@@ -2402,7 +2534,10 @@ var product = {
|
|
|
2402
2534
|
__proto__: null
|
|
2403
2535
|
};
|
|
2404
2536
|
|
|
2405
|
-
|
|
2537
|
+
/*
|
|
2538
|
+
Forked from https://github.com/vercel/commerce/tree/main/packages/commerce/src
|
|
2539
|
+
Changes: Added CategoryImage
|
|
2540
|
+
*/
|
|
2406
2541
|
|
|
2407
2542
|
var site = {
|
|
2408
2543
|
__proto__: null
|
|
@@ -2418,10 +2553,12 @@ function registerAll(loader) {
|
|
|
2418
2553
|
registerProductQuantity(loader);
|
|
2419
2554
|
registerProductVariantPicker(loader);
|
|
2420
2555
|
registerProductBox(loader);
|
|
2556
|
+
registerProductSlider(loader);
|
|
2421
2557
|
registerProductLink(loader);
|
|
2422
2558
|
registerCategoryCollection(loader);
|
|
2423
2559
|
registerCategoryField(loader);
|
|
2424
2560
|
registerCategoryLink(loader);
|
|
2561
|
+
registerCategoryMedia(loader);
|
|
2425
2562
|
}
|
|
2426
2563
|
|
|
2427
2564
|
exports.AddToCartButton = AddToCartButton;
|