@jetshop/core 5.9.0 → 5.11.2
Sign up to get free protection for your applications and to get access to all the features.
- package/ChannelHandler/ChannelHandler.d.ts +9 -13
- package/ChannelHandler/ChannelHandler.js +24 -66
- package/ChannelHandler/ChannelHandler.js.map +1 -1
- package/ChannelHandler/channelUtils.d.ts +13 -0
- package/ChannelHandler/channelUtils.js +26 -15
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/ChannelHandler/redirectUtils.d.ts +3 -0
- package/ChannelHandler/redirectUtils.js +48 -0
- package/ChannelHandler/redirectUtils.js.map +1 -0
- package/ChannelHandler/redirectUtils.test.js +8 -0
- package/analytics/AnalyticsProvider.js +2 -1
- package/analytics/AnalyticsProvider.js.map +1 -1
- package/analytics/integrations/ga4.js +10 -1
- package/analytics/integrations/ga4.js.map +1 -1
- package/analytics/integrations/gtag/gtag.d.ts +0 -1
- package/analytics/integrations/gtag/gtag.js +48 -28
- package/analytics/integrations/gtag/gtag.js.map +1 -1
- package/analytics/integrations/gtm/index.d.ts +2 -2
- package/analytics/integrations/gtm/index.js +40 -27
- package/analytics/integrations/gtm/index.js.map +1 -1
- package/analytics/integrations/unslugify.d.ts +1 -0
- package/analytics/integrations/unslugify.js +16 -0
- package/analytics/integrations/unslugify.js.map +1 -0
- package/analytics/trackerRegistry.d.ts +2 -0
- package/analytics/trackerRegistry.js.map +1 -1
- package/analytics/utils/breadcrumbsWithoutProduct.d.ts +1 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js +9 -0
- package/analytics/utils/breadcrumbsWithoutProduct.js.map +1 -0
- package/boot/SharedTree.js +1 -1
- package/boot/SharedTree.js.map +1 -1
- package/boot/apollo.d.ts +5 -4
- package/boot/apollo.js +18 -18
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +7 -16
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/createRenderer.js +8 -7
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/index.js +2 -2
- package/boot/server/index.js.map +1 -1
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +53 -39
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +2 -2
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -1
- package/cart/AddToCartFormik.d.ts +2 -2
- package/cart/AddToCartFormik.js +11 -11
- package/cart/AddToCartFormik.js.map +1 -1
- package/cart/useAddToCart.d.ts +2 -2
- package/cart/useAddToCart.js +13 -12
- package/cart/useAddToCart.js.map +1 -1
- package/components/Auth/CustomerUpdateForm.js +7 -7
- package/components/Auth/CustomerUpdateForm.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.d.ts +1 -3
- package/components/ChannelContext/ChannelProvider.js +6 -13
- package/components/ChannelContext/ChannelProvider.js.map +1 -1
- package/components/ChannelContext/ChannelProvider.test.js +112 -0
- package/components/DynamicRoute/ProductRoute.d.ts +1 -0
- package/components/DynamicRoute/ProductRoute.js +16 -6
- package/components/DynamicRoute/ProductRoute.js.map +1 -1
- package/components/DynamicRoute/RouteResolver.js +1 -1
- package/components/DynamicRoute/RouteResolver.js.map +1 -1
- package/components/Head.js +4 -4
- package/components/Head.js.map +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.d.ts +1 -1
- package/components/Mutation/AddToCart/addToCartUtils.js +10 -3
- package/components/Mutation/AddToCart/addToCartUtils.js.map +1 -1
- package/components/Mutation/RemoveFromCart.d.ts +1 -1
- package/components/Mutation/RemoveFromCart.js +10 -1
- package/components/Mutation/RemoveFromCart.js.map +1 -1
- package/components/Mutation/cartMutationUtils.js +7 -6
- package/components/Mutation/cartMutationUtils.js.map +1 -1
- package/components/Mutation/useDecrementQuantity.js +8 -3
- package/components/Mutation/useDecrementQuantity.js.map +1 -1
- package/components/Mutation/useIncrementQuantity.js +8 -3
- package/components/Mutation/useIncrementQuantity.js.map +1 -1
- package/components/Mutation/useRemoveFromCart.js +10 -1
- package/components/Mutation/useRemoveFromCart.js.map +1 -1
- package/components/OpenGraph/OpenGraphProductData.js +3 -3
- package/components/OpenGraph/OpenGraphProductData.js.map +1 -1
- package/components/Query/CartProvider.js +32 -22
- package/components/Query/CartProvider.js.map +1 -1
- package/components/StructuredData/StructuredBreadcrumbData.d.ts +8 -3
- package/components/StructuredData/StructuredBreadcrumbData.js +42 -23
- package/components/StructuredData/StructuredBreadcrumbData.js.map +1 -1
- package/components/StructuredData/StructuredProductData.js +2 -2
- package/components/StructuredData/StructuredProductData.js.map +1 -1
- package/data/fragments/ProductListsFragments.gql +94 -0
- package/data/fragments/RouteMetaFragment.gql +18 -0
- package/data/mutations/productListMutations.gql +18 -0
- package/data/queries/ProductLists.gql +8 -0
- package/dependencies.d.ts +10 -1
- package/helpers/isRelativeUrl.d.ts +1 -0
- package/helpers/isRelativeUrl.js +5 -0
- package/helpers/isRelativeUrl.js.map +1 -0
- package/hooks/PackageProducts/usePackageProductItem.d.ts +2 -2
- package/hooks/ProductList/ProductListContext.js +49 -14
- package/hooks/ProductList/ProductListContext.js.map +1 -1
- package/hooks/ProductList/ProductLists.gql +0 -0
- package/hooks/ProductList/action-creators.d.ts +20 -7
- package/hooks/ProductList/action-creators.js +138 -44
- package/hooks/ProductList/action-creators.js.map +1 -1
- package/hooks/ProductList/index.d.ts +34 -8
- package/hooks/ProductList/index.js +19 -0
- package/hooks/ProductList/index.js.map +1 -1
- package/hooks/ProductList/list-transforms.d.ts +3 -2
- package/hooks/ProductList/list-transforms.js +22 -22
- package/hooks/ProductList/list-transforms.js.map +1 -1
- package/hooks/ProductList/list-transforms.test.js +103 -100
- package/hooks/ProductList/product-list-reducer.d.ts +37 -14
- package/hooks/ProductList/product-list-reducer.js +106 -43
- package/hooks/ProductList/product-list-reducer.js.map +1 -1
- package/hooks/ProductList/product-list-reducer.test.js +144 -82
- package/hooks/ProductList/useProductList.d.ts +2 -2
- package/hooks/ProductList/useProductList.js +12 -5
- package/hooks/ProductList/useProductList.js.map +1 -1
- package/hooks/ProductList/useProductListItems.d.ts +1 -1
- package/hooks/ProductList/useProductListItems.js +8 -6
- package/hooks/ProductList/useProductListItems.js.map +1 -1
- package/hooks/useAddMultipleToCart.js +11 -5
- package/hooks/useAddMultipleToCart.js.map +1 -1
- package/hooks/useProductVariants/useProductVariants.d.ts +1 -2
- package/hooks/useProductVariants/useProductVariants.js +1 -1
- package/hooks/useProductVariants/useProductVariants.js.map +1 -1
- package/hooks/useRoutePreload.js +2 -2
- package/hooks/useRoutePreload.js.map +1 -1
- package/package.json +5 -5
- package/resolvers/index.d.ts +3 -0
- package/resolvers/index.js +3 -0
- package/resolvers/index.js.map +1 -1
- package/sentry/client.js +9 -4
- package/sentry/client.js.map +1 -1
- package/sentry/common.d.ts +1 -0
- package/sentry/common.js +5 -0
- package/sentry/common.js.map +1 -0
- package/sentry/server.js +11 -2
- package/sentry/server.js.map +1 -1
- package/server/tracking/types.d.ts +1 -1
- package/time.d.ts +1 -0
- package/time.js +6 -0
- package/time.js.map +1 -0
- package/types.d.ts +1 -0
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useDecrementQuantity.js","sourceRoot":"","sources":["useDecrementQuantity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"useDecrementQuantity.js","sourceRoot":"","sources":["useDecrementQuantity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAMpG,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,yBAAyB,EACzB,SAAS,EACc;IACvB,eAAe,CACb,CAAC,SAAS,EACV,wDAAwD,CACzD,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IACpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW,CAAC,yBAAyB,EAAE;QAC3E,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAsB;;QACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,CAC/D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAC7B,CAAC;QACF,KAAK,CACH,iBAAiB,CAAC;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,QAAQ,EAAE,CAAC;YACX,iBAAiB;YACjB,QAAQ,EACN,yBAAyB,CAAC,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAC;gBAC5D,SAAS,CAAC,MAAA,MAAA,OAAO,CAAC,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;gBACxD,EAAE;SACL,CAAC,CACH,CAAC;QACF,OAAO,2BAA2B,CAAC;YACjC,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,MAAM;oBACN,MAAM;iBACP;aACF;YACD,kBAAkB,EAAE;gBAClB,qBAAqB,EAAE;oBACrB,IAAI,EAAE,sCAAsC,CAAC;wBAC3C,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,SAAS;qBACV,CAAC;oBACF,UAAU,EAAE,cAAc;iBAC3B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC"}
|
@@ -6,6 +6,8 @@ import throwErrorInDev from '../../helpers/throwErrorInDev';
|
|
6
6
|
import { useTracker } from '../../analytics/Analytics';
|
7
7
|
import { trackProductEvent } from '../../analytics/tracking';
|
8
8
|
import { useCart } from '../Query/CartProvider';
|
9
|
+
import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
|
10
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
9
11
|
export default function useIncrementQuantity({ incrementQuantityMutation, cartQuery }) {
|
10
12
|
throwErrorInDev(!cartQuery, `You forgot to pass 'cartQuery' to useIncrementQuantity`);
|
11
13
|
const track = useTracker();
|
@@ -16,13 +18,16 @@ export default function useIncrementQuantity({ incrementQuantityMutation, cartQu
|
|
16
18
|
onCompleted: () => localStorage.setItem('cartChange', '1')
|
17
19
|
});
|
18
20
|
function incrementQuantity({ itemId }) {
|
19
|
-
var _a;
|
20
|
-
const { product, variant: selectedVariation } = (_a = cart === null || cart === void 0 ? void 0 : cart.items) === null || _a === void 0 ? void 0 : _a.find(item => item.id === itemId);
|
21
|
+
var _a, _b, _c, _d;
|
22
|
+
const { product, variant: selectedVariation } = (_a = cart === null || cart === void 0 ? void 0 : cart.items) === null || _a === void 0 ? void 0 : _a.find((item) => item.id === itemId);
|
21
23
|
track(trackProductEvent({
|
22
24
|
action: 'add',
|
23
25
|
product,
|
24
26
|
quantity: 1,
|
25
|
-
selectedVariation
|
27
|
+
selectedVariation,
|
28
|
+
category: breadcrumbsWithoutProduct((_b = product.primaryRoute) === null || _b === void 0 ? void 0 : _b.breadcrumbs) ||
|
29
|
+
unSlugify((_d = (_c = product.canonicalCategory) === null || _c === void 0 ? void 0 : _c.primaryRoute) === null || _d === void 0 ? void 0 : _d.path) ||
|
30
|
+
''
|
26
31
|
}));
|
27
32
|
return incrementQuantityMutationFn({
|
28
33
|
variables: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useIncrementQuantity.js","sourceRoot":"","sources":["useIncrementQuantity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;
|
1
|
+
{"version":3,"file":"useIncrementQuantity.js","sourceRoot":"","sources":["useIncrementQuantity.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,sCAAsC,EAAE,MAAM,qBAAqB,CAAC;AAC7E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAKpG,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,EAC3C,yBAAyB,EACzB,SAAS,EACc;IACvB,eAAe,CACb,CAAC,SAAS,EACV,wDAAwD,CACzD,CAAC;IACF,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAEpC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,2BAA2B,CAAC,GAAG,WAAW,CAAC,yBAAyB,EAAE;QAC3E,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,SAAS,iBAAiB,CAAC,EAAE,MAAM,EAAsB;;QACvD,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,iBAAiB,EAAE,GAAG,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,KAAK,0CAAE,IAAI,CAC/D,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,CAC7B,CAAC;QACF,KAAK,CACH,iBAAiB,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,OAAO;YACP,QAAQ,EAAE,CAAC;YACX,iBAAiB;YACjB,QAAQ,EACN,yBAAyB,CAAC,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAC;gBAC5D,SAAS,CAAC,MAAA,MAAA,OAAO,CAAC,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;gBACxD,EAAE;SACL,CAAC,CACH,CAAC;QACF,OAAO,2BAA2B,CAAC;YACjC,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,MAAM;oBACN,MAAM;iBACP;aACF;YACD,kBAAkB,EAAE;gBAClB,qBAAqB,EAAE;oBACrB,IAAI,EAAE,sCAAsC,CAAC;wBAC3C,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,SAAS;qBACV,CAAC;oBACF,UAAU,EAAE,cAAc;iBAC3B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,iBAAiB,EAAE,CAAC;AAC/B,CAAC"}
|
@@ -5,6 +5,8 @@ import { useContext } from 'react';
|
|
5
5
|
import { useTracker } from '../../analytics/Analytics';
|
6
6
|
import { trackProductEvent } from '../../analytics/tracking';
|
7
7
|
import throwErrorInDev from '../../helpers/throwErrorInDev';
|
8
|
+
import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
|
9
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
8
10
|
export default function useRemoveFromCart({ removeFromCartMutation, cartQuery }) {
|
9
11
|
throwErrorInDev(!cartQuery, `You forgot to pass 'cartQuery' to useRemoveFromCart`);
|
10
12
|
const { cartId, setCartId } = useContext(CartIdContext);
|
@@ -14,7 +16,14 @@ export default function useRemoveFromCart({ removeFromCartMutation, cartQuery })
|
|
14
16
|
onCompleted: () => localStorage.setItem('cartChange', '1')
|
15
17
|
});
|
16
18
|
function removeFromCart({ itemId, product }) {
|
17
|
-
|
19
|
+
var _a, _b, _c;
|
20
|
+
track(trackProductEvent({
|
21
|
+
action: 'remove',
|
22
|
+
product,
|
23
|
+
category: breadcrumbsWithoutProduct((_a = product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
24
|
+
unSlugify((_c = (_b = product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
|
25
|
+
''
|
26
|
+
}));
|
18
27
|
return removeFromCartMutationFn({
|
19
28
|
variables: {
|
20
29
|
input: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"useRemoveFromCart.js","sourceRoot":"","sources":["useRemoveFromCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,eAAe,MAAM,+BAA+B,CAAC;
|
1
|
+
{"version":3,"file":"useRemoveFromCart.js","sourceRoot":"","sources":["useRemoveFromCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,mCAAmC,EAAE,MAAM,qBAAqB,CAAC;AAC1E,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAMpG,MAAM,CAAC,OAAO,UAAU,iBAAiB,CAAC,EACxC,sBAAsB,EACtB,SAAS,EACW;IACpB,eAAe,CACb,CAAC,SAAS,EACV,qDAAqD,CACtD,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAG,eAAe,EAAE,CAAC;IACjC,MAAM,CAAC,wBAAwB,CAAC,GAAG,WAAW,CAAC,sBAAsB,EAAE;QACrE,WAAW,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,YAAY,EAAE,GAAG,CAAC;KAC3D,CAAC,CAAC;IACH,SAAS,cAAc,CAAC,EACtB,MAAM,EACN,OAAO,EAIR;;QACC,KAAK,CACH,iBAAiB,CAAC;YAChB,MAAM,EAAE,QAAQ;YAChB,OAAO;YACP,QAAQ,EACN,yBAAyB,CAAC,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAC;gBAC5D,SAAS,CAAC,MAAA,MAAA,OAAO,CAAC,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;gBACxD,EAAE;SACL,CAAC,CACH,CAAC;QACF,OAAO,wBAAwB,CAAC;YAC9B,SAAS,EAAE;gBACT,KAAK,EAAE;oBACL,MAAM;oBACN,MAAM;iBACP;aACF;YACD,kBAAkB,EAAE;gBAClB,cAAc,EAAE;oBACd,IAAI,EAAE,mCAAmC,CAAC;wBACxC,MAAM;wBACN,MAAM;wBACN,MAAM;wBACN,SAAS;wBACT,SAAS;qBACV,CAAC;oBACF,UAAU,EAAE,cAAc;iBAC3B;aACF;SACF,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,cAAc,EAAE,CAAC;AAC5B,CAAC"}
|
@@ -16,7 +16,7 @@ export function getBrand(product, brandField = 'brand') {
|
|
16
16
|
}
|
17
17
|
}
|
18
18
|
export const OpenGraphProductData = ({ product, initialVariant, optionalFields = [] }) => {
|
19
|
-
var _a, _b, _c;
|
19
|
+
var _a, _b, _c, _d;
|
20
20
|
const { selectedVariant: variant } = useProductVariants(product, {
|
21
21
|
initialVariant
|
22
22
|
});
|
@@ -36,9 +36,9 @@ export const OpenGraphProductData = ({ product, initialVariant, optionalFields =
|
|
36
36
|
property: 'og:price:currency',
|
37
37
|
content: selectedChannel.currency.format.code
|
38
38
|
},
|
39
|
-
{ property: 'product:availability', content: prod.stockStatus.buyable },
|
39
|
+
{ property: 'product:availability', content: (_c = prod.stockStatus) === null || _c === void 0 ? void 0 : _c.buyable },
|
40
40
|
{ property: 'product:brand', content: brand },
|
41
|
-
{ property: 'product:category', content: (
|
41
|
+
{ property: 'product:category', content: (_d = product.canonicalCategory) === null || _d === void 0 ? void 0 : _d.name }
|
42
42
|
].filter((tag) => !overrides.includes(tag.property));
|
43
43
|
return (React.createElement(Helmet, null,
|
44
44
|
defaultTags.map((tag) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"OpenGraphProductData.js","sourceRoot":"","sources":["OpenGraphProductData.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAmB5C;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAC,OAAgB,EAAE,UAAU,GAAG,OAAO;;IAC7D,MAAM,KAAK,GAAQ,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,0CAAE,IAAI,CAC5C,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,UAAU,CAChC,CAAC;IACF,IAAI,KAAK,EAAE;QACT,OAAO,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,WAAW,CAAC;KAC3B;AACH,CAAC;AAED,MAAM,CAAC,MAAM,oBAAoB,GAAwC,CAAC,EACxE,OAAO,EACP,cAAc,EACd,cAAc,GAAG,EAAE,EACpB,EAAE,EAAE;;IACH,MAAM,EACJ,eAAe,EAAE,OAAO,EACzB,GAEG,kBAAkB,CAAC,OAAO,EAAE;QAC9B,cAAc;KACf,CAAC,CAAC;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAC7D,MAAM,EAAE,gBAAgB,EAAE,GAAG,aAAa,EAAE,CAAC;IAE7C,MAAM,IAAI,GAAG,OAAO,IAAI,OAAO,CAAC;IAChC,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;IAElD,MAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE5D,oEAAoE;IACpE,MAAM,WAAW,GAAG;QAClB;YACE,QAAQ,EAAE,+BAA+B;YACzC,OAAO,EAAE,MAAA,IAAI,CAAC,aAAa,0CAAE,MAAM;SACpC;QACD,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,MAAA,IAAI,CAAC,KAAK,0CAAE,MAAM,EAAE;QACjE;YACE,QAAQ,EAAE,mBAAmB;YAC7B,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI;SAC9C;QACD,EAAE,QAAQ,EAAE,sBAAsB,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,
|
1
|
+
{"version":3,"file":"OpenGraphProductData.js","sourceRoot":"","sources":["OpenGraphProductData.tsx"],"names":[],"mappings":"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"}
|
@@ -1,45 +1,55 @@
|
|
1
1
|
import { useQuery } from '@apollo/react-hooks';
|
2
|
-
import { useContext, useEffect } from 'react';
|
2
|
+
import { useContext, useEffect, useRef } from 'react';
|
3
3
|
import throwErrorInDev from '../../helpers/throwErrorInDev';
|
4
4
|
import { CartIdContext } from '../Cart/CartIdContext';
|
5
5
|
import debounce from 'lodash.debounce';
|
6
6
|
import { useTracker } from '../../analytics/Analytics';
|
7
7
|
import { trackCartEvent } from '../../analytics/tracking';
|
8
|
-
|
8
|
+
// We only want a single tracker to be attached even if we use `useCart` in multiple places in our app
|
9
|
+
let trackerAttached = false;
|
10
|
+
function useSingleCartTracker(result) {
|
9
11
|
var _a;
|
12
|
+
const track = useTracker();
|
13
|
+
useEffect(() => {
|
14
|
+
var _a, _b;
|
15
|
+
if (!trackerAttached) {
|
16
|
+
trackerAttached = true;
|
17
|
+
if (result.loading) {
|
18
|
+
}
|
19
|
+
else if ((_a = result.data) === null || _a === void 0 ? void 0 : _a.cart) {
|
20
|
+
if (result.data.cart.__optimistic) {
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
track(trackCartEvent({ cart: (_b = result.data) === null || _b === void 0 ? void 0 : _b.cart }));
|
24
|
+
}
|
25
|
+
}
|
26
|
+
return () => {
|
27
|
+
trackerAttached = false;
|
28
|
+
};
|
29
|
+
}
|
30
|
+
}, [result.loading, (_a = result.data) === null || _a === void 0 ? void 0 : _a.cart, track]);
|
31
|
+
}
|
32
|
+
export function useCart(cartQuery) {
|
10
33
|
const { cartId } = useContext(CartIdContext);
|
11
34
|
const result = useQuery(cartQuery, {
|
12
35
|
variables: { cartId },
|
13
|
-
skip: __IN_SERVER__
|
36
|
+
skip: __IN_SERVER__
|
14
37
|
});
|
15
|
-
|
16
|
-
useEffect(() => {
|
17
|
-
var _a;
|
18
|
-
if (result.loading) {
|
19
|
-
return;
|
20
|
-
}
|
21
|
-
else {
|
22
|
-
track(trackCartEvent({
|
23
|
-
cart: (_a = result.data) === null || _a === void 0 ? void 0 : _a.cart,
|
24
|
-
}));
|
25
|
-
}
|
26
|
-
}, [(_a = result.data) === null || _a === void 0 ? void 0 : _a.cart, track]);
|
38
|
+
useSingleCartTracker(result);
|
27
39
|
return { result, cart: result.data && result.data.cart };
|
28
40
|
}
|
29
41
|
const useLocalStorageCart = (refetch) => {
|
30
|
-
|
42
|
+
const debounceRefetch = useRef(null);
|
31
43
|
useEffect(() => {
|
32
44
|
const listener = (e) => {
|
33
45
|
const localStorageCart = localStorage.getItem('cartChange');
|
34
46
|
if (e.storageArea === localStorage &&
|
35
47
|
e.key === 'cartChange' &&
|
36
48
|
localStorageCart) {
|
37
|
-
if (debounceRefetch)
|
38
|
-
debounceRefetch.cancel();
|
39
|
-
debounceRefetch = debounce(() =>
|
40
|
-
|
41
|
-
}, 1500);
|
42
|
-
debounceRefetch();
|
49
|
+
if (debounceRefetch.current)
|
50
|
+
debounceRefetch.current.cancel();
|
51
|
+
debounceRefetch.current = debounce(() => refetch(), 1500);
|
52
|
+
debounceRefetch.current();
|
43
53
|
localStorage.removeItem('cartChange');
|
44
54
|
}
|
45
55
|
};
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CartProvider.js","sourceRoot":"","sources":["CartProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAE/C,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
1
|
+
{"version":3,"file":"CartProvider.js","sourceRoot":"","sources":["CartProvider.tsx"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,12 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { Route } from '../../types';
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
interface Crumb {
|
4
|
+
text: string;
|
5
|
+
path: string | null;
|
6
|
+
}
|
7
|
+
declare function StructuredBreadcrumbData({ parents, breadcrumbText, breadcrumbs }: {
|
8
|
+
breadcrumbs?: Crumb[];
|
9
|
+
parents?: Route[];
|
10
|
+
breadcrumbText?: string;
|
6
11
|
}): JSX.Element;
|
7
12
|
export { StructuredBreadcrumbData };
|
@@ -1,36 +1,55 @@
|
|
1
1
|
import React, { useContext } from 'react';
|
2
2
|
import ChannelContext from '../ChannelContext';
|
3
3
|
import { StructuredData } from './StructuredData';
|
4
|
-
function StructuredBreadcrumbData({ parents, breadcrumbText }) {
|
4
|
+
function StructuredBreadcrumbData({ parents, breadcrumbText, breadcrumbs }) {
|
5
5
|
const { selectedChannel } = useContext(ChannelContext);
|
6
|
-
|
7
|
-
if (parents && parents.length > 0) {
|
8
|
-
mappedParents = parents.map((parent, index) => {
|
9
|
-
var _a;
|
10
|
-
return {
|
11
|
-
'@type': 'ListItem',
|
12
|
-
position: parents.length - index,
|
13
|
-
name: (_a = parent.object) === null || _a === void 0 ? void 0 : _a.breadcrumbText.toString(),
|
14
|
-
item: `${selectedChannel.url}${parent.path}`
|
15
|
-
};
|
16
|
-
});
|
17
|
-
mappedParents.reverse();
|
6
|
+
if (breadcrumbs) {
|
18
7
|
const data = {
|
19
8
|
'@context': 'https://schema.org',
|
20
9
|
'@type': 'BreadcrumbList',
|
21
|
-
itemListElement:
|
22
|
-
|
23
|
-
{
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
}
|
28
|
-
|
10
|
+
itemListElement: breadcrumbs
|
11
|
+
.filter((crumb) => crumb.text)
|
12
|
+
.map((crumb, index) => ({
|
13
|
+
'@type': 'ListItem',
|
14
|
+
position: index + 1,
|
15
|
+
name: crumb.text,
|
16
|
+
item: crumb.path ? `${selectedChannel.url}${crumb.path}` : undefined
|
17
|
+
}))
|
29
18
|
};
|
30
19
|
return React.createElement(StructuredData, { json: data });
|
31
20
|
}
|
32
|
-
else
|
33
|
-
|
21
|
+
else {
|
22
|
+
// Deprecated, remove in next major
|
23
|
+
let mappedParents = [];
|
24
|
+
if (parents && parents.length > 0) {
|
25
|
+
mappedParents = parents
|
26
|
+
.filter((parent) => { var _a; return (_a = parent.object) === null || _a === void 0 ? void 0 : _a.breadcrumbText; })
|
27
|
+
.map((parent, index) => {
|
28
|
+
return {
|
29
|
+
'@type': 'ListItem',
|
30
|
+
position: parents.length - index,
|
31
|
+
name: parent.object.breadcrumbText.toString(),
|
32
|
+
item: `${selectedChannel.url}${parent.path}`
|
33
|
+
};
|
34
|
+
});
|
35
|
+
mappedParents.reverse();
|
36
|
+
const data = {
|
37
|
+
'@context': 'https://schema.org',
|
38
|
+
'@type': 'BreadcrumbList',
|
39
|
+
itemListElement: [
|
40
|
+
...mappedParents,
|
41
|
+
{
|
42
|
+
'@type': 'ListItem',
|
43
|
+
position: parents.length + 1,
|
44
|
+
name: breadcrumbText.toString()
|
45
|
+
}
|
46
|
+
]
|
47
|
+
};
|
48
|
+
return React.createElement(StructuredData, { json: data });
|
49
|
+
}
|
50
|
+
else
|
51
|
+
return null;
|
52
|
+
}
|
34
53
|
}
|
35
54
|
export { StructuredBreadcrumbData };
|
36
55
|
//# sourceMappingURL=StructuredBreadcrumbData.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"StructuredBreadcrumbData.js","sourceRoot":"","sources":["StructuredBreadcrumbData.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"StructuredBreadcrumbData.js","sourceRoot":"","sources":["StructuredBreadcrumbData.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAE1C,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAOlD,SAAS,wBAAwB,CAAC,EAChC,OAAO,EACP,cAAc,EACd,WAAW,EAKZ;IACC,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;IAEvD,IAAI,WAAW,EAAE;QACf,MAAM,IAAI,GAAgC;YACxC,UAAU,EAAE,oBAAoB;YAChC,OAAO,EAAE,gBAAgB;YACzB,eAAe,EAAE,WAAW;iBACzB,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC;iBAC7B,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;gBACtB,OAAO,EAAE,UAAU;gBACnB,QAAQ,EAAE,KAAK,GAAG,CAAC;gBACnB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,SAAS;aACrE,CAAC,CAAC;SACN,CAAC;QAEF,OAAO,oBAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;KACvC;SAAM;QACL,mCAAmC;QACnC,IAAI,aAAa,GAAe,EAAE,CAAC;QACnC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;YACjC,aAAa,GAAG,OAAO;iBACpB,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,MAAM,0CAAE,cAAc,CAAA,EAAA,CAAC;iBACjD,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;gBACrB,OAAO;oBACL,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,KAAK;oBAChC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE;oBAC7C,IAAI,EAAE,GAAG,eAAe,CAAC,GAAG,GAAG,MAAM,CAAC,IAAI,EAAE;iBAC7C,CAAC;YACJ,CAAC,CAAC,CAAC;YACL,aAAa,CAAC,OAAO,EAAE,CAAC;YAExB,MAAM,IAAI,GAAgC;gBACxC,UAAU,EAAE,oBAAoB;gBAChC,OAAO,EAAE,gBAAgB;gBACzB,eAAe,EAAE;oBACf,GAAG,aAAa;oBAChB;wBACE,OAAO,EAAE,UAAU;wBACnB,QAAQ,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC;wBAC5B,IAAI,EAAE,cAAc,CAAC,QAAQ,EAAE;qBAChC;iBACF;aACF,CAAC;YACF,OAAO,oBAAC,cAAc,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC;SACvC;;YAAM,OAAO,IAAI,CAAC;KACpB;AACH,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
|
@@ -14,7 +14,7 @@ const StructuredProductData = ({ product, initialVariant, extraFields = {} }) =>
|
|
14
14
|
'@type': 'Product',
|
15
15
|
name: product.name,
|
16
16
|
description: (product === null || product === void 0 ? void 0 : product.description) || (product === null || product === void 0 ? void 0 : product.shortDescription),
|
17
|
-
image: product.images.map(image => image.url),
|
17
|
+
image: (product.images || []).map((image) => image.url),
|
18
18
|
mpn: (product === null || product === void 0 ? void 0 : product.barcode) || product.articleNumber,
|
19
19
|
sku: product.articleNumber,
|
20
20
|
productID: product.articleNumber,
|
@@ -31,7 +31,7 @@ const StructuredProductData = ({ product, initialVariant, extraFields = {} }) =>
|
|
31
31
|
};
|
32
32
|
if (variant) {
|
33
33
|
baseProductData = Object.assign(Object.assign({}, baseProductData), { image: (variant === null || variant === void 0 ? void 0 : variant.images.length)
|
34
|
-
? variant.images.map(image => image.url)
|
34
|
+
? variant.images.map((image) => image.url)
|
35
35
|
: baseProductData.image, sku: (variant === null || variant === void 0 ? void 0 : variant.articleNumber) || baseProductData.sku, mpn: (variant === null || variant === void 0 ? void 0 : variant.barcode) || (variant === null || variant === void 0 ? void 0 : variant.articleNumber), offers: Object.assign(Object.assign({}, baseProductData.offers), { price: (_e = variant === null || variant === void 0 ? void 0 : variant.price) === null || _e === void 0 ? void 0 : _e.incVat, availability: (((_f = variant.stockStatus) === null || _f === void 0 ? void 0 : _f.buyable)
|
36
36
|
? 'http://schema.org/InStock'
|
37
37
|
: 'http://schema.org/OutOfStock') }) });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"StructuredProductData.js","sourceRoot":"","sources":["StructuredProductData.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,cAAc,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAepE,6DAA6D;AAC7D,MAAM,qBAAqB,GAAyC,CAAC,EACnE,OAAO,EACP,cAAc,EACd,WAAW,GAAG,EAAE,EACjB,EAAE,EAAE;;IACH,MAAM,EACJ,eAAe,EAAE,EAAE,QAAQ,EAAE,GAAG,EAAE,EACnC,GAAG,KAAK,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;IAErC,MAAM,EACJ,eAAe,EAAE,OAAO,EACzB,GAEG,kBAAkB,CAAC,OAAO,EAAE;QAC9B,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,eAAe,GAAyB;QAC1C,UAAU,EAAE,oBAAoB;QAChC,OAAO,EAAE,SAAS;QAClB,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,WAAW,EAAE,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,MAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,gBAAgB,CAAA;QAC9D,KAAK,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,
|
1
|
+
{"version":3,"file":"StructuredProductData.js","sourceRoot":"","sources":["StructuredProductData.tsx"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,94 @@
|
|
1
|
+
#import "@jetshop/core/data/fragments/BadgeFragment.gql"
|
2
|
+
#import "@jetshop/core/data/fragments/ProductPriceFragment.gql"
|
3
|
+
|
4
|
+
fragment MinimalProductListDetail on CustomerProductList {
|
5
|
+
id
|
6
|
+
name
|
7
|
+
# TODO
|
8
|
+
# typeId {...}
|
9
|
+
# description
|
10
|
+
items {
|
11
|
+
variant {
|
12
|
+
articleNumber
|
13
|
+
}
|
14
|
+
product {
|
15
|
+
articleNumber
|
16
|
+
}
|
17
|
+
}
|
18
|
+
}
|
19
|
+
|
20
|
+
fragment VariantDetail on ProductVariant {
|
21
|
+
id
|
22
|
+
articleNumber
|
23
|
+
values
|
24
|
+
stockStatus {
|
25
|
+
buyable
|
26
|
+
text
|
27
|
+
}
|
28
|
+
images {
|
29
|
+
modifiedDate
|
30
|
+
alt
|
31
|
+
title
|
32
|
+
url
|
33
|
+
}
|
34
|
+
}
|
35
|
+
|
36
|
+
fragment VariantsDetail on ProductVariants {
|
37
|
+
options {
|
38
|
+
name
|
39
|
+
values
|
40
|
+
}
|
41
|
+
values {
|
42
|
+
...VariantDetail
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
fragment ProductDetail on Product {
|
47
|
+
id
|
48
|
+
articleNumber
|
49
|
+
name
|
50
|
+
subName
|
51
|
+
hasConfigurations
|
52
|
+
hasVariants
|
53
|
+
isPreOrder
|
54
|
+
isPackage
|
55
|
+
stockStatus {
|
56
|
+
buyable
|
57
|
+
text
|
58
|
+
}
|
59
|
+
primaryRoute {
|
60
|
+
id
|
61
|
+
path
|
62
|
+
slug
|
63
|
+
}
|
64
|
+
...ProductPrice
|
65
|
+
badges {
|
66
|
+
...Badge
|
67
|
+
}
|
68
|
+
images {
|
69
|
+
modifiedDate
|
70
|
+
alt
|
71
|
+
title
|
72
|
+
url
|
73
|
+
}
|
74
|
+
variants {
|
75
|
+
...VariantsDetail
|
76
|
+
}
|
77
|
+
}
|
78
|
+
|
79
|
+
fragment ProductListFragment on CustomerProductList {
|
80
|
+
id
|
81
|
+
description
|
82
|
+
name
|
83
|
+
shareToken
|
84
|
+
items {
|
85
|
+
quantity
|
86
|
+
description
|
87
|
+
product {
|
88
|
+
...ProductDetail
|
89
|
+
}
|
90
|
+
variant {
|
91
|
+
...VariantDetail
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
@@ -0,0 +1,18 @@
|
|
1
|
+
#import "@jetshop/core/data/fragments/ProductListsFragments.gql"
|
2
|
+
|
3
|
+
## Create a product list
|
4
|
+
mutation CreateProductList($input: CreateCustomerProductListInput!) {
|
5
|
+
createCustomerProductList(input: $input) {
|
6
|
+
success
|
7
|
+
customerProductList {
|
8
|
+
...MinimalProductListDetail
|
9
|
+
}
|
10
|
+
}
|
11
|
+
}
|
12
|
+
|
13
|
+
## delete product list
|
14
|
+
mutation DeleteProductList($id: ID) {
|
15
|
+
deleteCustomerProductList(id: $id) {
|
16
|
+
success
|
17
|
+
}
|
18
|
+
}
|
package/dependencies.d.ts
CHANGED
@@ -11,7 +11,7 @@ declare module '@jetshop/intl/config';
|
|
11
11
|
declare module 'store-css';
|
12
12
|
declare module 'dnscache';
|
13
13
|
declare module 'isbot' {
|
14
|
-
export default function(userAgent: string): boolean;
|
14
|
+
export default function (userAgent: string): boolean;
|
15
15
|
}
|
16
16
|
declare module '*.gql' {
|
17
17
|
import { DocumentNode } from 'graphql';
|
@@ -32,6 +32,15 @@ declare module '@jetshop/core/data/mutations/accountMutations.gql' {
|
|
32
32
|
export const resetRequest: DocumentNode;
|
33
33
|
}
|
34
34
|
|
35
|
+
declare module '@jetshop/core/data/mutations/productListMutations.gql' {
|
36
|
+
export const CreateProductList: DocumentNode;
|
37
|
+
export const DeleteProductList: DocumentNode;
|
38
|
+
}
|
39
|
+
|
40
|
+
declare module '@jetshop/core/data/queries/ProductLists.gql' {
|
41
|
+
export const ProductLists: DocumentNode;
|
42
|
+
}
|
43
|
+
|
35
44
|
declare module '*.svg' {
|
36
45
|
import React = require('react');
|
37
46
|
|
@@ -0,0 +1 @@
|
|
1
|
+
export declare function isRelativeUrl(url?: string): boolean;
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"isRelativeUrl.js","sourceRoot":"","sources":["isRelativeUrl.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,GAAY;IACxC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IACjB,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC1E,CAAC"}
|
@@ -6,10 +6,10 @@ export declare function usePackageProductItem(item: PackageItem, updateItem: Upd
|
|
6
6
|
stockStatus: import("@jetshop/ui/Stock/StockStatusContainer").StockStatusContainerRender;
|
7
7
|
variantHandler: {
|
8
8
|
selectedVariant: import("../../types").ProductVariant;
|
9
|
-
validation: "
|
9
|
+
validation: import("../useProductVariants/useProductVariants").VariantValidation;
|
10
10
|
getSelectedValue: (option: import("../../types").ProductVariantOption) => string;
|
11
11
|
selectValue: (value: string, option: import("../../types").ProductVariantOption) => void;
|
12
|
-
validateSelection: (value: string, option: import("../../types").ProductVariantOption) => "
|
12
|
+
validateSelection: (value: string, option: import("../../types").ProductVariantOption) => import("../useProductVariants/useProductVariants").VariantValidation;
|
13
13
|
getVariantForSelection: (value: string, option: import("../../types").ProductVariantOption) => import("../../types").ProductVariant;
|
14
14
|
missingOptions: import("../../types").ProductVariantOption[];
|
15
15
|
getMissingOptions: () => import("../../types").ProductVariantOption[];
|