@plasmicpkgs/commerce 0.0.148 → 0.0.149

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.
@@ -2,7 +2,7 @@ import registerComponent from '@plasmicapp/host/registerComponent';
2
2
  import React, { useRef, useMemo, useContext, createContext, useCallback } from 'react';
3
3
  import { useForm, FormProvider, useFormContext, Controller } from 'react-hook-form';
4
4
  import { useMutablePlasmicQueryData } from '@plasmicapp/query';
5
- import { useSelector, DataProvider, PlasmicCanvasContext, repeatedElement } from '@plasmicapp/host';
5
+ import { GlobalActionsProvider, useSelector, DataProvider, PlasmicCanvasContext, repeatedElement } from '@plasmicapp/host';
6
6
  import Cookies from 'js-cookie';
7
7
  import debounce from 'debounce';
8
8
 
@@ -1090,6 +1090,30 @@ var defaultProduct = {
1090
1090
  options: []
1091
1091
  };
1092
1092
 
1093
+ var fetcher$1 = mutationFetcher;
1094
+ var fn$1 = function fn(provider) {
1095
+ var _provider$cart;
1096
+ return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useRemoveItem;
1097
+ };
1098
+ var useRemoveItem = function useRemoveItem(input) {
1099
+ var hook = useHook(fn$1);
1100
+ return useMutationHook(_extends({
1101
+ fetcher: fetcher$1
1102
+ }, hook))(input);
1103
+ };
1104
+
1105
+ var fetcher$2 = mutationFetcher;
1106
+ var fn$2 = function fn(provider) {
1107
+ var _provider$cart;
1108
+ return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useUpdateItem;
1109
+ };
1110
+ var useUpdateItem = function useUpdateItem(input) {
1111
+ var hook = useHook(fn$2);
1112
+ return useMutationHook(_extends({
1113
+ fetcher: fetcher$2
1114
+ }, hook))(input);
1115
+ };
1116
+
1093
1117
  var productSelector = "currentProduct";
1094
1118
  function ProductProvider(_ref) {
1095
1119
  var product = _ref.product,
@@ -1138,6 +1162,84 @@ function ProductMediaProvider(_ref3) {
1138
1162
  var useProductMediaContext = function useProductMediaContext() {
1139
1163
  return useSelector(mediaSelector);
1140
1164
  };
1165
+ function CartActionsProvider(props) {
1166
+ var _addItem = useAddItem();
1167
+ var _removeItem = useRemoveItem();
1168
+ var _updateItem = useUpdateItem();
1169
+ var actions = React.useMemo(function () {
1170
+ return {
1171
+ addItem: function addItem(_ref4) {
1172
+ var productId = _ref4.productId,
1173
+ variantId = _ref4.variantId,
1174
+ quantity = _ref4.quantity;
1175
+ _addItem({
1176
+ productId: productId,
1177
+ variantId: variantId,
1178
+ quantity: quantity
1179
+ });
1180
+ },
1181
+ updateItem: function updateItem(_ref5) {
1182
+ var lineItemId = _ref5.lineItemId,
1183
+ quantity = _ref5.quantity;
1184
+ _updateItem({
1185
+ id: lineItemId,
1186
+ quantity: quantity
1187
+ });
1188
+ },
1189
+ removeItem: function removeItem(_ref6) {
1190
+ var lineItemId = _ref6.lineItemId;
1191
+ _removeItem({
1192
+ id: lineItemId
1193
+ });
1194
+ }
1195
+ };
1196
+ }, [_addItem, _removeItem, _updateItem]);
1197
+ return React.createElement(GlobalActionsProvider, {
1198
+ contextName: props.globalContextName,
1199
+ actions: actions
1200
+ }, props.children);
1201
+ }
1202
+ var globalActionsRegistrations = {
1203
+ addItem: {
1204
+ displayName: "Add item to cart",
1205
+ parameters: {
1206
+ productId: {
1207
+ displayName: "Product Id",
1208
+ type: "string"
1209
+ },
1210
+ variantId: {
1211
+ displayName: "Variant Id",
1212
+ type: "string"
1213
+ },
1214
+ quantity: {
1215
+ displayName: "Quantity",
1216
+ type: "number"
1217
+ }
1218
+ }
1219
+ },
1220
+ updateItem: {
1221
+ displayName: "Update item in cart",
1222
+ parameters: {
1223
+ lineItemId: {
1224
+ displayName: "Line Item Id",
1225
+ type: "string"
1226
+ },
1227
+ quantity: {
1228
+ displayName: "New Quantity",
1229
+ type: "number"
1230
+ }
1231
+ }
1232
+ },
1233
+ removeItem: {
1234
+ displayName: "Remove item from cart",
1235
+ parameters: {
1236
+ lineItemId: {
1237
+ displayName: "Line Item Id",
1238
+ type: "string"
1239
+ }
1240
+ }
1241
+ }
1242
+ };
1141
1243
 
1142
1244
  var addToCartButtonMeta = {
1143
1245
  name: "plasmic-commerce-add-to-cart-button",
@@ -1214,7 +1316,7 @@ function registerAddToCartButton(loader, customAddToCartButtonMeta) {
1214
1316
  doRegisterComponent(AddToCartButton, customAddToCartButtonMeta != null ? customAddToCartButtonMeta : addToCartButtonMeta);
1215
1317
  }
1216
1318
 
1217
- var fetcher$1 = /*#__PURE__*/function () {
1319
+ var fetcher$3 = /*#__PURE__*/function () {
1218
1320
  var _ref2 = /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee(_ref) {
1219
1321
  var options, cartId, fetch;
1220
1322
  return runtime_1.wrap(function _callee$(_context) {
@@ -1247,16 +1349,16 @@ var fetcher$1 = /*#__PURE__*/function () {
1247
1349
  return _ref2.apply(this, arguments);
1248
1350
  };
1249
1351
  }();
1250
- var fn$1 = function fn(provider) {
1352
+ var fn$3 = function fn(provider) {
1251
1353
  var _provider$cart;
1252
1354
  return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useCart;
1253
1355
  };
1254
1356
  var useCart = function useCart(input) {
1255
1357
  var _hook$fetcher;
1256
- var hook = useHook(fn$1);
1358
+ var hook = useHook(fn$3);
1257
1359
  var _useCommerce = useCommerce(),
1258
1360
  cartCookie = _useCommerce.cartCookie;
1259
- var fetcherFn = (_hook$fetcher = hook.fetcher) != null ? _hook$fetcher : fetcher$1;
1361
+ var fetcherFn = (_hook$fetcher = hook.fetcher) != null ? _hook$fetcher : fetcher$3;
1260
1362
  var wrapper = function wrapper(context) {
1261
1363
  context.input.cartId = Cookies.get(cartCookie);
1262
1364
  return fetcherFn(context);
@@ -1381,15 +1483,40 @@ function registerCart(loader, customCartMeta) {
1381
1483
  doRegisterComponent(CartComponent, customCartMeta != null ? customCartMeta : cartMeta);
1382
1484
  }
1383
1485
 
1384
- var fetcher$2 = SWRFetcher;
1385
- var fn$2 = function fn(provider) {
1486
+ var cartProviderMeta = {
1487
+ name: "plasmic-commerce-cart-provider",
1488
+ displayName: "Cart Provider",
1489
+ props: {
1490
+ children: "slot"
1491
+ },
1492
+ providesData: true,
1493
+ importPath: "@plasmicpkgs/commerce",
1494
+ importName: "CartProvider"
1495
+ };
1496
+ function CartProvider(props) {
1497
+ var _useCart = useCart(),
1498
+ data = _useCart.data;
1499
+ return React.createElement(DataProvider, {
1500
+ data: data,
1501
+ name: "cart"
1502
+ }, props.children);
1503
+ }
1504
+ function registerCartProvider(loader, customCartProviderMeta) {
1505
+ var doRegisterComponent = function doRegisterComponent() {
1506
+ return loader ? loader.registerComponent.apply(loader, arguments) : registerComponent.apply(void 0, arguments);
1507
+ };
1508
+ doRegisterComponent(CartProvider, customCartProviderMeta != null ? customCartProviderMeta : cartProviderMeta);
1509
+ }
1510
+
1511
+ var fetcher$4 = SWRFetcher;
1512
+ var fn$4 = function fn(provider) {
1386
1513
  var _provider$site;
1387
1514
  return (_provider$site = provider.site) == null ? void 0 : _provider$site.useCategories;
1388
1515
  };
1389
1516
  var useCategories = function useCategories(input) {
1390
- var hook = useHook(fn$2);
1517
+ var hook = useHook(fn$4);
1391
1518
  return useSWRHook(_extends({
1392
- fetcher: fetcher$2
1519
+ fetcher: fetcher$4
1393
1520
  }, hook))(input);
1394
1521
  };
1395
1522
 
@@ -1641,27 +1768,27 @@ function registerCategoryMedia(loader, customCategoryMediaMeta) {
1641
1768
  doRegisterComponent(CategoryMedia, customCategoryMediaMeta != null ? customCategoryMediaMeta : categoryMediaMeta);
1642
1769
  }
1643
1770
 
1644
- var fetcher$3 = SWRFetcher;
1645
- var fn$3 = function fn(provider) {
1771
+ var fetcher$5 = SWRFetcher;
1772
+ var fn$5 = function fn(provider) {
1646
1773
  var _provider$products;
1647
1774
  return (_provider$products = provider.products) == null ? void 0 : _provider$products.useProduct;
1648
1775
  };
1649
1776
  var useProduct$1 = function useProduct(input) {
1650
- var hook = useHook(fn$3);
1777
+ var hook = useHook(fn$5);
1651
1778
  return useSWRHook(_extends({
1652
- fetcher: fetcher$3
1779
+ fetcher: fetcher$5
1653
1780
  }, hook))(input);
1654
1781
  };
1655
1782
 
1656
- var fetcher$4 = SWRFetcher;
1657
- var fn$4 = function fn(provider) {
1783
+ var fetcher$6 = SWRFetcher;
1784
+ var fn$6 = function fn(provider) {
1658
1785
  var _provider$products;
1659
1786
  return (_provider$products = provider.products) == null ? void 0 : _provider$products.useSearch;
1660
1787
  };
1661
1788
  var useSearch = function useSearch(input) {
1662
- var hook = useHook(fn$4);
1789
+ var hook = useHook(fn$6);
1663
1790
  return useSWRHook(_extends({
1664
- fetcher: fetcher$4
1791
+ fetcher: fetcher$6
1665
1792
  }, hook))(input);
1666
1793
  };
1667
1794
 
@@ -1772,15 +1899,15 @@ function registerProductBox(loader, customProductBoxMeta) {
1772
1899
  doRegisterComponent(ProductBox, customProductBoxMeta != null ? customProductBoxMeta : productBoxMeta);
1773
1900
  }
1774
1901
 
1775
- var fetcher$5 = SWRFetcher;
1776
- var fn$5 = function fn(provider) {
1902
+ var fetcher$7 = SWRFetcher;
1903
+ var fn$7 = function fn(provider) {
1777
1904
  var _provider$site;
1778
1905
  return (_provider$site = provider.site) == null ? void 0 : _provider$site.useBrands;
1779
1906
  };
1780
1907
  var useBrands = function useBrands(input) {
1781
- var hook = useHook(fn$5);
1908
+ var hook = useHook(fn$7);
1782
1909
  return useSWRHook(_extends({
1783
- fetcher: fetcher$5
1910
+ fetcher: fetcher$7
1784
1911
  }, hook))(input);
1785
1912
  };
1786
1913
 
@@ -2368,30 +2495,6 @@ function registerProductVariantPicker(loader, customProductVariantPickerMeta) {
2368
2495
  doRegisterComponent(ProductVariantPicker, customProductVariantPickerMeta != null ? customProductVariantPickerMeta : productVariantPickerMeta);
2369
2496
  }
2370
2497
 
2371
- var fetcher$6 = mutationFetcher;
2372
- var fn$6 = function fn(provider) {
2373
- var _provider$cart;
2374
- return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useRemoveItem;
2375
- };
2376
- var useRemoveItem = function useRemoveItem(input) {
2377
- var hook = useHook(fn$6);
2378
- return useMutationHook(_extends({
2379
- fetcher: fetcher$6
2380
- }, hook))(input);
2381
- };
2382
-
2383
- var fetcher$7 = mutationFetcher;
2384
- var fn$7 = function fn(provider) {
2385
- var _provider$cart;
2386
- return (_provider$cart = provider.cart) == null ? void 0 : _provider$cart.useUpdateItem;
2387
- };
2388
- var useUpdateItem = function useUpdateItem(input) {
2389
- var hook = useHook(fn$7);
2390
- return useMutationHook(_extends({
2391
- fetcher: fetcher$7
2392
- }, hook))(input);
2393
- };
2394
-
2395
2498
 
2396
2499
 
2397
2500
  var cart = {
@@ -2420,6 +2523,7 @@ function registerAll(loader) {
2420
2523
  registerProductMedia(loader);
2421
2524
  registerProductMediaCollection(loader);
2422
2525
  registerCart(loader);
2526
+ registerCartProvider(loader);
2423
2527
  registerAddToCartButton(loader);
2424
2528
  registerProductQuantity(loader);
2425
2529
  registerProductVariantPicker(loader);
@@ -2432,5 +2536,5 @@ function registerAll(loader) {
2432
2536
  registerCategoryMedia(loader);
2433
2537
  }
2434
2538
 
2435
- export { AddToCartButton, CartComponent, cart as CartType, CategoryCollection, CategoryField, CategoryLink, CategoryMedia, CommerceError, CoreCommerceProvider, FetcherError, ProductBox, ProductCollection, ProductLink, ProductMedia, ProductMediaCollection, defaultProduct as ProductPlaceholder, ProductPriceComponent, ProductQuantity, ProductSlider, ProductTextField, product as ProductTypes, ProductVariantPicker, site as SiteTypes, ValidationError, addToCartButtonMeta, cartMeta, categoryCollectionMeta, categoryFieldMeta, categoryLinkMeta, categoryMediaMeta, fetcher$4 as fetcher, getCommerceProvider, productBoxMeta, productCollectionMeta, productLinkMeta, productMediaCollectionMeta, productMediaMeta, productPriceMeta, productQuantityMeta, productSliderMeta, productTextFieldMeta, productVariantPickerMeta, registerAddToCartButton, registerAll, registerCart, registerCategoryCollection, registerCategoryField, registerCategoryLink, registerCategoryMedia, registerProductBox, registerProductCollection, registerProductLink, registerProductMedia, registerProductMediaCollection, registerProductPrice, registerProductQuantity, registerProductSlider, registerProductVariantPicker, registerTextField, useAddItem, useBrands, useCart, useCategories, useCommerce, useProduct$1 as useProduct, useRemoveItem, useSearch, useUpdateItem };
2539
+ export { AddToCartButton, CartActionsProvider, CartComponent, CartProvider, cart as CartType, CategoryCollection, CategoryField, CategoryLink, CategoryMedia, CommerceError, CoreCommerceProvider, FetcherError, ProductBox, ProductCollection, ProductLink, ProductMedia, ProductMediaCollection, defaultProduct as ProductPlaceholder, ProductPriceComponent, ProductQuantity, ProductSlider, ProductTextField, product as ProductTypes, ProductVariantPicker, site as SiteTypes, ValidationError, addToCartButtonMeta, cartMeta, cartProviderMeta, categoryCollectionMeta, categoryFieldMeta, categoryLinkMeta, categoryMediaMeta, fetcher$6 as fetcher, getCommerceProvider, globalActionsRegistrations, productBoxMeta, productCollectionMeta, productLinkMeta, productMediaCollectionMeta, productMediaMeta, productPriceMeta, productQuantityMeta, productSliderMeta, productTextFieldMeta, productVariantPickerMeta, registerAddToCartButton, registerAll, registerCart, registerCartProvider, registerCategoryCollection, registerCategoryField, registerCategoryLink, registerCategoryMedia, registerProductBox, registerProductCollection, registerProductLink, registerProductMedia, registerProductMediaCollection, registerProductPrice, registerProductQuantity, registerProductSlider, registerProductVariantPicker, registerTextField, useAddItem, useBrands, useCart, useCategories, useCommerce, useProduct$1 as useProduct, useRemoveItem, useSearch, useUpdateItem };
2436
2540
  //# sourceMappingURL=commerce.esm.js.map