@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
@@ -7,7 +7,7 @@ import React, { useContext, useMemo } from 'react';
|
|
7
7
|
import { getAddressInputFieldName, getCustomerUpdateInput, useCustomerQuery, useCustomerUpdateMutation } from './useCustomer';
|
8
8
|
export function getBillingAddressFieldsToRender(fields) {
|
9
9
|
return fields
|
10
|
-
.map(field => {
|
10
|
+
.map((field) => {
|
11
11
|
const name = `billingAddress.${getAddressInputFieldName(field.name)}`;
|
12
12
|
if (name === `billingAddress.countryCode`) {
|
13
13
|
// omit changing `countryCode` for now
|
@@ -26,7 +26,7 @@ export function getBillingAddressFieldsToRender(fields) {
|
|
26
26
|
}
|
27
27
|
export function getDeliveryAddressFieldsToRender(fields, index) {
|
28
28
|
return fields
|
29
|
-
.map(field => {
|
29
|
+
.map((field) => {
|
30
30
|
const name = `deliveryAddresses[${index}].${getAddressInputFieldName(field.name)}`;
|
31
31
|
if (name === `deliveryAddresses[${index}].countryCode`) {
|
32
32
|
// omit changing `countryCode` for now
|
@@ -52,7 +52,7 @@ export const CustomerUpdateFormProvider = ({ render, onSubmit, onSubmitSuccess,
|
|
52
52
|
const { billingAddressFields, deliveryAddressFields, pidField } = useMemo(() => formFieldsFromSettings(countrySettings, isBusinessCustomer), [countrySettings, isBusinessCustomer]);
|
53
53
|
const billingAddressFieldsToRender = useMemo(() => getBillingAddressFieldsToRender(billingAddressFields), [billingAddressFields]);
|
54
54
|
const deliveryAddressIndex = customer &&
|
55
|
-
customer.deliveryAddresses.findIndex(a => a.id === deliveryAddressId);
|
55
|
+
customer.deliveryAddresses.findIndex((a) => a.id === deliveryAddressId);
|
56
56
|
const deliveryAddressFieldsToRender = useMemo(() => deliveryAddressIndex > -1
|
57
57
|
? getDeliveryAddressFieldsToRender(deliveryAddressFields, deliveryAddressIndex)
|
58
58
|
: [], [deliveryAddressFields, deliveryAddressIndex]);
|
@@ -80,12 +80,12 @@ export const CustomerUpdateFormProvider = ({ render, onSubmit, onSubmitSuccess,
|
|
80
80
|
const customerUpdateMutation = useCustomerUpdateMutation({
|
81
81
|
customerQuery: customerProfileQuery
|
82
82
|
});
|
83
|
-
return loading ? null : (React.createElement(Formik, { initialValues: initialValues, validate: values => {
|
83
|
+
return loading ? null : (React.createElement(Formik, { initialValues: initialValues, validate: (values) => {
|
84
84
|
const errors = {};
|
85
85
|
const pidFieldName = pidField.name;
|
86
86
|
if (pidFieldName in values &&
|
87
87
|
pidField.required &&
|
88
|
-
values[pidFieldName].trim().length === 0) {
|
88
|
+
(values[pidFieldName] || '').trim().length === 0) {
|
89
89
|
errors[pidFieldName] = t('This field is required');
|
90
90
|
}
|
91
91
|
const billingAddress = billingAddressValidator(values.billingAddress);
|
@@ -109,14 +109,14 @@ export const CustomerUpdateFormProvider = ({ render, onSubmit, onSubmitSuccess,
|
|
109
109
|
actions.resetForm();
|
110
110
|
onSubmitSuccess && onSubmitSuccess();
|
111
111
|
})
|
112
|
-
.catch(err => {
|
112
|
+
.catch((err) => {
|
113
113
|
logError(true, err);
|
114
114
|
actions.setSubmitting(false);
|
115
115
|
actions.setStatus({
|
116
116
|
globalError: t('Something went wrong saving information. Try again?')
|
117
117
|
});
|
118
118
|
});
|
119
|
-
}, render: props => (React.createElement(Form, null, render(Object.assign(Object.assign({}, props), { billingAddressFields: billingAddressFieldsToRender, deliveryAddressFields: deliveryAddressFieldsToRender, pidField,
|
119
|
+
}, render: (props) => (React.createElement(Form, null, render(Object.assign(Object.assign({}, props), { billingAddressFields: billingAddressFieldsToRender, deliveryAddressFields: deliveryAddressFieldsToRender, pidField,
|
120
120
|
setCountryCode, countries: selectedChannel.countries })))) }));
|
121
121
|
};
|
122
122
|
//# sourceMappingURL=CustomerUpdateForm.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CustomerUpdateForm.js","sourceRoot":"","sources":["CustomerUpdateForm.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACb,MAAM,sDAAsD,CAAC;AAC9D,OAAO,cAAc,MAAM,yCAAyC,CAAC;AACrE,OAAO,QAAQ,MAAM,gCAAgC,CAAC;AAEtD,OAAO,CAAC,MAAM,eAAe,CAAC;AAC9B,OAAO,EAAE,IAAI,EAAE,MAAM,EAA6B,MAAM,QAAQ,CAAC;AAEjE,OAAO,KAAK,EAAE,EAAa,UAAU,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAE9D,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EAChB,yBAAyB,EAC1B,MAAM,eAAe,CAAC;AAyBvB,MAAM,UAAU,+BAA+B,CAC7C,MAA+B;IAE/B,OAAO,MAAM;SACV,GAAG,CAAC,KAAK,
|
1
|
+
{"version":3,"file":"CustomerUpdateForm.js","sourceRoot":"","sources":["CustomerUpdateForm.tsx"],"names":[],"mappings":"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"}
|
@@ -1,12 +1,10 @@
|
|
1
1
|
import React from 'react';
|
2
|
-
import ApolloClient from 'apollo-client';
|
3
2
|
import { BootOptions } from '../ConfigProvider';
|
4
3
|
import { ChannelHandler } from '../../ChannelHandler/ChannelHandler';
|
5
4
|
export interface ChannelProviderProps {
|
6
|
-
client: ApolloClient<any>;
|
7
5
|
channelHandler: ChannelHandler;
|
8
6
|
children?: React.ReactNode;
|
9
7
|
config: BootOptions;
|
10
8
|
}
|
11
|
-
declare const ChannelProvider: ({
|
9
|
+
declare const ChannelProvider: ({ channelHandler, children, config }: ChannelProviderProps) => JSX.Element;
|
12
10
|
export default ChannelProvider;
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import React, { useMemo } from 'react';
|
2
2
|
import ChannelContext from './ChannelContext';
|
3
|
-
const ChannelProvider = ({
|
3
|
+
const ChannelProvider = ({ channelHandler, children, config }) => {
|
4
4
|
const { channels, selectedChannel, recommendedChannel } = channelHandler;
|
5
5
|
const value = useMemo(() => {
|
6
6
|
const updateChannelSingleDomain = (newChannel) => {
|
7
|
-
channelHandler.updateChannel({ config,
|
7
|
+
channelHandler.updateChannel({ config, newChannel });
|
8
8
|
};
|
9
9
|
const channelsById = {};
|
10
|
-
|
11
|
-
|
10
|
+
channels &&
|
11
|
+
channels.forEach((channel) => {
|
12
12
|
channelsById[channel.id] = channel;
|
13
13
|
});
|
14
14
|
return {
|
@@ -17,16 +17,9 @@ const ChannelProvider = ({ client, channelHandler, children, config }) => {
|
|
17
17
|
channels,
|
18
18
|
selectedChannel,
|
19
19
|
channelsById,
|
20
|
-
basename: channelHandler.getChannelBasename()
|
20
|
+
basename: channelHandler.getChannelBasename() // TODO This isn't used anywhere?
|
21
21
|
};
|
22
|
-
}, [
|
23
|
-
channelHandler,
|
24
|
-
channels,
|
25
|
-
client,
|
26
|
-
config,
|
27
|
-
recommendedChannel,
|
28
|
-
selectedChannel
|
29
|
-
]);
|
22
|
+
}, [channelHandler, channels, config, recommendedChannel, selectedChannel]);
|
30
23
|
return (React.createElement(ChannelContext.Provider, { value: value }, children));
|
31
24
|
};
|
32
25
|
export default ChannelProvider;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ChannelProvider.js","sourceRoot":"","sources":["ChannelProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,cAAmC,MAAM,kBAAkB,CAAC;
|
1
|
+
{"version":3,"file":"ChannelProvider.js","sourceRoot":"","sources":["ChannelProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,cAAmC,MAAM,kBAAkB,CAAC;AAWnE,MAAM,eAAe,GAAG,CAAC,EACvB,cAAc,EACd,QAAQ,EACR,MAAM,EACe,EAAE,EAAE;IACzB,MAAM,EAAE,QAAQ,EAAE,eAAe,EAAE,kBAAkB,EAAE,GAAG,cAAc,CAAC;IACzE,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE;QACzB,MAAM,yBAAyB,GAAG,CAAC,UAA2B,EAAE,EAAE;YAChE,cAAc,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACvD,CAAC,CAAC;QAEF,MAAM,YAAY,GAA+B,EAAE,CAAC;QAEpD,QAAQ;YACN,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC3B,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC;YACrC,CAAC,CAAC,CAAC;QAEL,OAAO;YACL,kBAAkB;YAClB,aAAa,EAAE,yBAAyB;YACxC,QAAQ;YACR,eAAe;YACf,YAAY;YACZ,QAAQ,EAAE,cAAc,CAAC,kBAAkB,EAAE,CAAC,iCAAiC;SAChF,CAAC;IACJ,CAAC,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,EAAE,eAAe,CAAC,CAAC,CAAC;IAE5E,OAAO,CACL,oBAAC,cAAc,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,IAAG,QAAQ,CAA2B,CAC5E,CAAC;AACJ,CAAC,CAAC;AACF,eAAe,eAAe,CAAC"}
|
@@ -0,0 +1,112 @@
|
|
1
|
+
import React, { useContext } from 'react';
|
2
|
+
import { render } from '@testing-library/react';
|
3
|
+
import ChannelContext, { ChannelProvider } from '../ChannelContext/';
|
4
|
+
import { ChannelHandler } from '../../ChannelHandler/ChannelHandler';
|
5
|
+
import { createSelectedChannel } from '../../ChannelHandler/channelUtils';
|
6
|
+
import { channels } from '@jetshop/core/test-utils/variables';
|
7
|
+
|
8
|
+
function SelectedChannel() {
|
9
|
+
const { selectedChannel } = useContext(ChannelContext);
|
10
|
+
return <div id="selected-channel">{selectedChannel.displayName}</div>;
|
11
|
+
}
|
12
|
+
|
13
|
+
describe('ChannelProvider', () => {
|
14
|
+
const selectedChannel = createSelectedChannel(channels[0]);
|
15
|
+
|
16
|
+
const oldWindowLocation = window.location;
|
17
|
+
let mockAssign = jest.fn();
|
18
|
+
|
19
|
+
beforeAll(() => {
|
20
|
+
// Mock the window.location object so we can test redirects
|
21
|
+
delete window.location;
|
22
|
+
window.location = Object.defineProperties(
|
23
|
+
{},
|
24
|
+
{
|
25
|
+
...Object.getOwnPropertyDescriptors(oldWindowLocation),
|
26
|
+
assign: {
|
27
|
+
configurable: true,
|
28
|
+
value: mockAssign
|
29
|
+
}
|
30
|
+
}
|
31
|
+
);
|
32
|
+
});
|
33
|
+
|
34
|
+
beforeEach(() => {
|
35
|
+
window.location.assign.mockReset();
|
36
|
+
});
|
37
|
+
|
38
|
+
afterAll(() => {
|
39
|
+
window.location = oldWindowLocation;
|
40
|
+
});
|
41
|
+
|
42
|
+
test('Selected channel should be available', () => {
|
43
|
+
const channelHandler = new ChannelHandler({
|
44
|
+
selectedChannel,
|
45
|
+
channels
|
46
|
+
});
|
47
|
+
|
48
|
+
render(
|
49
|
+
<ChannelProvider channelHandler={channelHandler}>
|
50
|
+
<SelectedChannel />
|
51
|
+
</ChannelProvider>
|
52
|
+
);
|
53
|
+
const selectedChannelElement = document.getElementById('selected-channel');
|
54
|
+
|
55
|
+
expect(selectedChannelElement.textContent).toBe(
|
56
|
+
selectedChannel.displayName
|
57
|
+
);
|
58
|
+
});
|
59
|
+
|
60
|
+
function sleep(ms) {
|
61
|
+
return new Promise((resolve) => setTimeout(resolve, ms));
|
62
|
+
}
|
63
|
+
|
64
|
+
test('Updating a channel', async () => {
|
65
|
+
const newChannel = createSelectedChannel(channels[1]);
|
66
|
+
const newPath = '/foo/bar';
|
67
|
+
|
68
|
+
const channelHandler = new ChannelHandler({
|
69
|
+
selectedChannel,
|
70
|
+
channels,
|
71
|
+
getPrimaryRoutePath: () => Promise.resolve(newPath)
|
72
|
+
});
|
73
|
+
|
74
|
+
render(
|
75
|
+
<ChannelProvider
|
76
|
+
channelHandler={channelHandler}
|
77
|
+
config={{ preserveRedirect: true }}
|
78
|
+
>
|
79
|
+
<SelectedChannel />
|
80
|
+
</ChannelProvider>
|
81
|
+
);
|
82
|
+
channelHandler.updateChannel({
|
83
|
+
config: { preserveRedirect: true },
|
84
|
+
newChannel
|
85
|
+
});
|
86
|
+
const selectedChannelElement = document.getElementById('selected-channel');
|
87
|
+
|
88
|
+
expect(selectedChannelElement.textContent).not.toBe(newChannel.name);
|
89
|
+
|
90
|
+
expect(selectedChannelElement.textContent).toBe(
|
91
|
+
selectedChannel.displayName
|
92
|
+
);
|
93
|
+
|
94
|
+
// NOTE
|
95
|
+
// We need to sleep briefly here, otherwise the call to
|
96
|
+
// window.location.assign is not detected(!) in .toHaveBeenCalled()
|
97
|
+
await sleep(10);
|
98
|
+
|
99
|
+
// Updating a channel should trigger a redirect
|
100
|
+
expect(window.location.assign).toHaveBeenCalled();
|
101
|
+
|
102
|
+
const newUrl = new URL(window.location.assign.mock.calls[0][0]);
|
103
|
+
expect(newUrl.pathname).toBe(newPath);
|
104
|
+
expect(newUrl.searchParams.get('channel')).toBe(newChannel.name);
|
105
|
+
expect(newUrl.searchParams.get('channelCountry')).toBe(
|
106
|
+
newChannel.country.code
|
107
|
+
);
|
108
|
+
expect(newUrl.searchParams.get('culture')).toBe(
|
109
|
+
newChannel.language.culture
|
110
|
+
);
|
111
|
+
});
|
112
|
+
});
|
@@ -8,6 +8,7 @@ export interface ProductProps {
|
|
8
8
|
export interface ProductRouteProps {
|
9
9
|
component: ComponentType<ProductProps>;
|
10
10
|
result: QueryResult;
|
11
|
+
partialProduct?: Partial<Product>;
|
11
12
|
}
|
12
13
|
declare const ProductRoute: (props: ProductRouteProps) => JSX.Element;
|
13
14
|
export default ProductRoute;
|
@@ -17,10 +17,14 @@ import { useShopConfig } from '../../hooks/useShopConfig';
|
|
17
17
|
import ProductConfigurationProvider from '../ProductConfigurationProvider/ProductConfigurationProvider';
|
18
18
|
import { StructuredProductData } from '../StructuredData';
|
19
19
|
import { OpenGraphProductData } from '../OpenGraph';
|
20
|
+
import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
|
21
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
20
22
|
const ProductRoute = (props) => {
|
21
23
|
var _a, _b, _c;
|
22
|
-
const { component: ProductPage } = props, rest = __rest(props, ["component"]);
|
23
|
-
const product = ((_b = (_a = props.result.data) === null || _a === void 0 ? void 0 : _a.route) === null || _b === void 0 ? void 0 : _b.object) ||
|
24
|
+
const { component: ProductPage, partialProduct } = props, rest = __rest(props, ["component", "partialProduct"]);
|
25
|
+
const product = ((_b = (_a = props.result.data) === null || _a === void 0 ? void 0 : _a.route) === null || _b === void 0 ? void 0 : _b.object) ||
|
26
|
+
((_c = props.result.data) === null || _c === void 0 ? void 0 : _c.product) ||
|
27
|
+
partialProduct;
|
24
28
|
const { structuredData, openGraph } = useShopConfig();
|
25
29
|
const location = useLocation();
|
26
30
|
const track = useTracker();
|
@@ -31,14 +35,20 @@ const ProductRoute = (props) => {
|
|
31
35
|
? !!openGraph.disableDefaultProductData
|
32
36
|
: false;
|
33
37
|
useEffect(() => {
|
34
|
-
var _a;
|
35
|
-
product
|
38
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
39
|
+
if (((_b = (_a = props.result.data) === null || _a === void 0 ? void 0 : _a.route) === null || _b === void 0 ? void 0 : _b.object) || ((_c = props.result.data) === null || _c === void 0 ? void 0 : _c.product)) {
|
40
|
+
const category = breadcrumbsWithoutProduct(((_e = (_d = props.result.data) === null || _d === void 0 ? void 0 : _d.route) === null || _e === void 0 ? void 0 : _e.breadcrumbs) ||
|
41
|
+
((_h = (_g = (_f = props.result.data) === null || _f === void 0 ? void 0 : _f.product) === null || _g === void 0 ? void 0 : _g.primaryRoute) === null || _h === void 0 ? void 0 : _h.breadcrumbs)) ||
|
42
|
+
unSlugify((_k = (_j = product.canonicalCategory) === null || _j === void 0 ? void 0 : _j.primaryRoute) === null || _k === void 0 ? void 0 : _k.path) ||
|
43
|
+
'';
|
36
44
|
track(trackProductEvent({
|
37
45
|
action: 'view',
|
38
46
|
product,
|
39
|
-
list: (
|
47
|
+
list: (_l = location.state) === null || _l === void 0 ? void 0 : _l.list,
|
48
|
+
category
|
40
49
|
}));
|
41
|
-
|
50
|
+
}
|
51
|
+
}, [location.state, product, track, props.result.data]);
|
42
52
|
return (React.createElement(React.Fragment, null,
|
43
53
|
product && (React.createElement(React.Fragment, null,
|
44
54
|
!disableStructuredProductData && (React.createElement(StructuredProductData, { product: product })),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ProductRoute.js","sourceRoot":"","sources":["ProductRoute.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,KAAK,EAAE,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,4BAA4B,MAAM,8DAA8D,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;
|
1
|
+
{"version":3,"file":"ProductRoute.js","sourceRoot":"","sources":["ProductRoute.tsx"],"names":[],"mappings":"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"}
|
@@ -42,7 +42,7 @@ const RouteResolver = ({ productPage, categoryPage, contentPage, notFoundPage: N
|
|
42
42
|
} })));
|
43
43
|
}
|
44
44
|
else if (isRouteType(state, result, 'Product')) {
|
45
|
-
return React.createElement(ProductRoute, { result: result, component: productPage });
|
45
|
+
return (React.createElement(ProductRoute, { result: result, partialProduct: state === null || state === void 0 ? void 0 : state.product, component: productPage }));
|
46
46
|
}
|
47
47
|
else if (isRouteType(state, result, 'Category')) {
|
48
48
|
return React.createElement(CategoryRoute, { result: result, component: categoryPage });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["RouteResolver.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwB,MAAM,OAAO,CAAC;AAC7C,OAAO,YAA8B,MAAM,gBAAgB,CAAC;AAC5D,OAAO,aAAgC,MAAM,iBAAiB,CAAC;AAC/D,OAAO,YAA8B,MAAM,gBAAgB,CAAC;AAE5D,OAAO,MAAM,MAAM,UAAU,CAAC;AAE9B,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,mCAAmC,CAAC;AAEjE,MAAM,WAAW,GAAG,CAAC,KAAU,EAAE,MAAmB,EAAE,IAAY,EAAE,EAAE;;IACpE,IAAI,MAAM,CAAC,KAAK,EAAE;QAChB,OAAO,KAAK,CAAC;KACd;IACD,MAAM,SAAS,GAAG,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,CAAC;IAC9B,MAAM,SAAS,GAAG,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAM,0CAAE,UAAU,CAAC;IAC1D,MAAM,UAAU,GAAG,CAAC,MAAM,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC;IACjD,IAAI,UAAU,EAAE;QACd,OAAO,KAAK,CAAC;KACd;SAAM;QACL,OAAO,SAAS,KAAK,IAAI,IAAI,SAAS,KAAK,IAAI,CAAC;KACjD;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,MAAqC,EAAE,EAAE;;IAC7D,MAAM,SAAS,GACb,MAAA,MAAA,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,KAAK,0CAAE,aAAa,0CAAG,CAAC,CAAC,0CAAE,UAAU,0CAAE,IAAI,mCAAI,EAAE,CAAC;IAE5D,MAAM,KAAK,GAAG,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,KAAK,CAAC;IAElC,OAAO,CACL,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;QAChC,CAAC,KAAK;QACN,CAAC,OAAO,MAAM,KAAK,WAAW,IAAK,MAAc,CAAC,eAAe,KAAK,KAAK,CAAC,CAC7E,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,CAAC,WAAsB,EAAE,EAAE,CACzC,WAAW,CAAC,CAAC,CAAC,oBAAC,WAAW,OAAG,CAAC,CAAC,CAAC,8CAAqB,CAAC;AAExD,MAAM,aAAa,GAAG,CAAC,EACrB,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EAAE,YAAY,EAC1B,SAAS,EACT,WAAW,EACX,MAAM,EACN,QAAQ,EACR,KAAK,EACL,MAAM,EAaP,EAAE,EAAE;;IACH,WAAW,CAAC,MAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAc,0CAAE,UAAU,CAAC,CAAC;IAE9D,IAAI,CAAC,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,KAAK,0CAAE,IAAI,mCAAI,QAAQ,CAAC,KAAK,QAAQ,EAAE;QACxD,OAAO,CACL,oBAAC,MAAM,IAAC,IAAI,EAAE,GAAG;YACf,oBAAC,QAAQ,IACP,EAAE,EAAE;oBACF,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI;oBAChC,KAAK,kCACA,KAAK,KACR,IAAI,EAAE,MAAC,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,IAAI,0CAAE,KAAK,0CAAE,MAAc,0CAAE,UAAU,GACvD;oBACD,MAAM;iBACP,GACD,CACK,CACV,CAAC;KACH;SAAM,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE;QAChD,OAAO,oBAAC,YAAY,
|
1
|
+
{"version":3,"file":"RouteResolver.js","sourceRoot":"","sources":["RouteResolver.tsx"],"names":[],"mappings":"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"}
|
package/components/Head.js
CHANGED
@@ -28,7 +28,7 @@ const Head = ({ data, route }) => {
|
|
28
28
|
var _a;
|
29
29
|
const { search } = useLocation();
|
30
30
|
const queryStringObject = qs.parse(search, { ignoreQueryPrefix: true });
|
31
|
-
Object.keys(queryStringObject).forEach(key => {
|
31
|
+
Object.keys(queryStringObject).forEach((key) => {
|
32
32
|
!queryParamsWhitelist.includes(key) && delete queryStringObject[key];
|
33
33
|
});
|
34
34
|
const whiteListedSearch = qs.stringify(queryStringObject, {
|
@@ -39,7 +39,7 @@ const Head = ({ data, route }) => {
|
|
39
39
|
const metaTags = ((_a = data === null || data === void 0 ? void 0 : data.head) === null || _a === void 0 ? void 0 : _a.metaTags) || [];
|
40
40
|
const href = (route === null || route === void 0 ? void 0 : route.canonicalPath) &&
|
41
41
|
`${selectedChannel.url}${route.canonicalPath}${whiteListedSearch}`;
|
42
|
-
useWarningInDev(route && !route.alternateRoutes, `You must include the
|
42
|
+
useWarningInDev(route && !route.alternateRoutes, `You must include the RouteMetaFragment in your RouteQuery.gql
|
43
43
|
Please see https://gitlab.jetshop.se/jetshop/flight/blob/master/packages/template-trend/src/components/RouteQuery.gql for an example
|
44
44
|
`);
|
45
45
|
const { openGraph } = useShopConfig();
|
@@ -58,10 +58,10 @@ const Head = ({ data, route }) => {
|
|
58
58
|
React.createElement(Helmet, null,
|
59
59
|
React.createElement("html", { lang: lang }),
|
60
60
|
(data === null || data === void 0 ? void 0 : data.head) && React.createElement("title", null, data.head.title),
|
61
|
-
metaTags.map(tag => (React.createElement("meta", { name: tag.name, content: tag.content, key: tag.name }))),
|
61
|
+
metaTags.map((tag) => (React.createElement("meta", { name: tag.name, content: tag.content, key: tag.name }))),
|
62
62
|
route &&
|
63
63
|
route.alternateRoutes &&
|
64
|
-
route.alternateRoutes.map(alternateRoute => renderAlternateRoutes(alternateRoute, channelsById)),
|
64
|
+
route.alternateRoutes.map((alternateRoute) => renderAlternateRoutes(alternateRoute, channelsById)),
|
65
65
|
href && React.createElement("link", { rel: "canonical", href: href })),
|
66
66
|
!disableOpenGraphGeneralData && (React.createElement(OpenGraphGeneralPageData, { route: route, data: data })),
|
67
67
|
(route === null || route === void 0 ? void 0 : route.canonicalPath) === '/' && React.createElement(SiteLinksSearchStructuredData, null)));
|
package/components/Head.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Head.js","sourceRoot":"","sources":["Head.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAWlE,OAAO,KAAK,EAAE,EAAM,UAAU,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,eAAe,MAAM,0BAA0B,CAAC;AACvD,OAAO,cAAc,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,EAAE,wBAAwB,EAAE,MAAM,oCAAoC,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAClE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAYjE,SAAS,qBAAqB,CAC5B,cAA8B,EAC9B,YAEC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IACxB,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC;IACnC,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,KAAK,GAAG,EAAE,CAAC;IACf,IAAI,OAAO,CAAC,eAAe,CAAC,OAAO,KAAK,cAAc,CAAC,OAAO,EAAE;QAC9D,KAAK,GAAG,YAAY,cAAc,CAAC,OAAO,EAAE,CAAC;QAC7C,gBAAgB,GAAG,IAAI,sBAAsB,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;KACzE;IAED,MAAM,IAAI,GAAG,GAAG,GAAG,GAAG,gBAAgB,GAAG,KAAK,GAAG,KAAK,EAAE,CAAC;IACzD,OAAO,CACL,8BACE,GAAG,EAAE,IAAI,GAAG,cAAc,CAAC,OAAO,EAClC,GAAG,EAAC,WAAW,EACf,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,OAAO,GACxD,CACH,CAAC;AACJ,CAAC;AACD,MAAM,oBAAoB,GAAG,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,IAAI,GAAkB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE;;IAC9C,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IACjC,MAAM,iBAAiB,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,GAAG,
|
1
|
+
{"version":3,"file":"Head.js","sourceRoot":"","sources":["Head.tsx"],"names":[],"mappings":"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"}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import { Product, ProductVariant } from '../../../types';
|
2
2
|
import { AddToCartFormikValues, AddToCartFormProps, AddToCartCallbackOptions } from '../AddToCartFormik';
|
3
3
|
export declare function getArticleNumber(product: Product, selectedVariation: ProductVariant): string;
|
4
|
-
export declare function useTrackProductAdd(selectedVariation: ProductVariant): (product:
|
4
|
+
export declare function useTrackProductAdd(selectedVariation: ProductVariant): (product: Product, quantity: number) => void;
|
5
5
|
export declare function getCommentsFromFormikValues(values: AddToCartFormikValues): {
|
6
6
|
name: string;
|
7
7
|
value: string;
|
@@ -1,24 +1,31 @@
|
|
1
1
|
import { useTracker } from '@jetshop/core/analytics/Analytics';
|
2
2
|
import { useCallback } from 'react';
|
3
3
|
import { trackProductEvent } from '@jetshop/core/analytics/tracking';
|
4
|
+
import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
|
5
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
4
6
|
export function getArticleNumber(product, selectedVariation) {
|
5
|
-
|
7
|
+
var _a, _b;
|
8
|
+
return ((_b = (_a = product === null || product === void 0 ? void 0 : product.variants) === null || _a === void 0 ? void 0 : _a.values) === null || _b === void 0 ? void 0 : _b.length) > 0
|
6
9
|
? selectedVariation === null || selectedVariation === void 0 ? void 0 : selectedVariation.articleNumber
|
7
10
|
: product === null || product === void 0 ? void 0 : product.articleNumber;
|
8
11
|
}
|
9
12
|
export function useTrackProductAdd(selectedVariation) {
|
10
13
|
const track = useTracker();
|
11
14
|
return useCallback(function trackProductVariant(product, quantity) {
|
15
|
+
var _a, _b, _c;
|
12
16
|
track(trackProductEvent({
|
13
17
|
action: 'add',
|
14
18
|
product,
|
15
19
|
quantity,
|
16
|
-
selectedVariation
|
20
|
+
selectedVariation,
|
21
|
+
category: breadcrumbsWithoutProduct((_a = product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
22
|
+
unSlugify((_c = (_b = product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
|
23
|
+
''
|
17
24
|
}));
|
18
25
|
}, [selectedVariation, track]);
|
19
26
|
}
|
20
27
|
export function getCommentsFromFormikValues(values) {
|
21
|
-
return Object.keys(values.comments).map(name => {
|
28
|
+
return Object.keys(values.comments).map((name) => {
|
22
29
|
return {
|
23
30
|
name,
|
24
31
|
value: values.comments[name]
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"addToCartUtils.js","sourceRoot":"","sources":["addToCartUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;
|
1
|
+
{"version":3,"file":"addToCartUtils.js","sourceRoot":"","sources":["addToCartUtils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAE/D,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAMrE,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAEpG,MAAM,UAAU,gBAAgB,CAC9B,OAAgB,EAChB,iBAAiC;;IAEjC,OAAO,CAAA,MAAA,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,0CAAE,MAAM,0CAAE,MAAM,IAAG,CAAC;QAC1C,CAAC,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,aAAa;QAClC,CAAC,CAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,iBAAiC;IAClE,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,OAAO,WAAW,CAChB,SAAS,mBAAmB,CAAC,OAAgB,EAAE,QAAgB;;QAC7D,KAAK,CACH,iBAAiB,CAAC;YAChB,MAAM,EAAE,KAAK;YACb,OAAO;YACP,QAAQ;YACR,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;IACJ,CAAC,EACD,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAC3B,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,MAA6B;IACvE,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC/C,OAAO;YACL,IAAI;YACJ,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;SAC7B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,EAC/B,kBAAkB,EAClB,eAAe,EACf,MAAM,EACN,SAAS,EAMV;IACC,OAAO,CAAC,EAAE,IAAI,EAAO,EAAE,EAAE;QACvB,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,MAAM,EAAE;YAChD,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SACrD;QACD,kBAAkB,IAAI,kBAAkB,CAAC,eAAe,CAAC,CAAC;IAC5D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAC7B,gBAAgB,EAChB,eAAe,EAIhB;IACC,OAAO,CAAC,KAAU,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,CAAC;QAC3C,IAAI,CAAC,gBAAgB,EAAE;YACrB,MAAM,KAAK,CAAC;SACb;QACD,gBAAgB,iCAAM,eAAe,KAAE,KAAK,IAAG,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/// <reference types="react" />
|
2
2
|
import { CartMutationProps } from './cartMutationUtils';
|
3
|
-
declare type RemoveFromCartProps =
|
3
|
+
declare type RemoveFromCartProps = CartMutationProps;
|
4
4
|
declare const RemoveFromCart: ({ cartQuery, children }: RemoveFromCartProps) => JSX.Element;
|
5
5
|
export default RemoveFromCart;
|
@@ -6,6 +6,8 @@ import { Mutation } from 'react-apollo';
|
|
6
6
|
import { getRemoveFromCartOptimisticResponse } from './cartMutationUtils';
|
7
7
|
import { CartIdContext } from '../Cart/CartIdContext';
|
8
8
|
import throwErrorInDev from '../../helpers/throwErrorInDev';
|
9
|
+
import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
|
10
|
+
import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
|
9
11
|
const RemoveFromCart = function RemoveFromCart({ cartQuery, children }) {
|
10
12
|
throwErrorInDev(!cartQuery, `You forgot to pass 'cartQuery' to RemoveFromCart`);
|
11
13
|
const { cartId, setCartId } = useContext(CartIdContext);
|
@@ -15,7 +17,14 @@ const RemoveFromCart = function RemoveFromCart({ cartQuery, children }) {
|
|
15
17
|
}
|
16
18
|
}, mutation: removeFromCart }, (mutate, { client }) => {
|
17
19
|
return children((itemId, product) => {
|
18
|
-
|
20
|
+
var _a, _b, _c;
|
21
|
+
track(trackProductEvent({
|
22
|
+
action: 'remove',
|
23
|
+
product,
|
24
|
+
category: breadcrumbsWithoutProduct((_a = product.primaryRoute) === null || _a === void 0 ? void 0 : _a.breadcrumbs) ||
|
25
|
+
unSlugify((_c = (_b = product.canonicalCategory) === null || _b === void 0 ? void 0 : _b.primaryRoute) === null || _c === void 0 ? void 0 : _c.path) ||
|
26
|
+
''
|
27
|
+
}));
|
19
28
|
return mutate({
|
20
29
|
variables: {
|
21
30
|
input: {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"RemoveFromCart.js","sourceRoot":"","sources":["RemoveFromCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAoC,MAAM,cAAc,CAAC;AAC1E,OAAO,EAEL,mCAAmC,EACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,+BAA+B,CAAC;
|
1
|
+
{"version":3,"file":"RemoveFromCart.js","sourceRoot":"","sources":["RemoveFromCart.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAEhF,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAoC,MAAM,cAAc,CAAC;AAC1E,OAAO,EAEL,mCAAmC,EACpC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;AAIpG,MAAM,cAAc,GAAG,SAAS,cAAc,CAAC,EAC7C,SAAS,EACT,QAAQ,EACY;IACpB,eAAe,CACb,CAAC,SAAS,EACV,kDAAkD,CACnD,CAAC;IAEF,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,UAAU,EAAE,CAAC;IAE3B,OAAO,CACL,oBAAC,QAAQ,IACP,WAAW,EAAE,CAAC,IAA6C,EAAE,EAAE;YAC7D,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;aAChD;QACH,CAAC,EACD,QAAQ,EAAE,cAAc,IAEvB,CAAC,MAAwB,EAAE,EAAE,MAAM,EAAkB,EAAE,EAAE;QACxD,OAAO,QAAQ,CAAC,CAAC,MAAc,EAAE,OAAgB,EAAE,EAAE;;YACnD,KAAK,CACH,iBAAiB,CAAC;gBAChB,MAAM,EAAE,QAAQ;gBAChB,OAAO;gBACP,QAAQ,EACN,yBAAyB,CAAC,MAAA,OAAO,CAAC,YAAY,0CAAE,WAAW,CAAC;oBAC5D,SAAS,CAAC,MAAA,MAAA,OAAO,CAAC,iBAAiB,0CAAE,YAAY,0CAAE,IAAI,CAAC;oBACxD,EAAE;aACL,CAAC,CACH,CAAC;YACF,OAAO,MAAM,CAAC;gBACZ,SAAS,EAAE;oBACT,KAAK,EAAE;wBACL,MAAM;wBACN,MAAM;qBACP;iBACF;gBACD,kBAAkB,EAAE;oBAClB,cAAc,EAAE;wBACd,IAAI,EAAE,mCAAmC,CAAC;4BACxC,MAAM;4BACN,MAAM;4BACN,MAAM;4BACN,SAAS;4BACT,SAAS;yBACV,CAAC;wBACF,UAAU,EAAE,cAAc;qBAC3B;iBACF;aACF,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CACQ,CACZ,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
@@ -2,6 +2,7 @@ import throwErrorInDev from '../../helpers/throwErrorInDev';
|
|
2
2
|
export const TEMP_CART_ID = 'TEMP_CART_ID';
|
3
3
|
export const getAddToCartOptimisticResponse = (product, quantity = 1, cartId, client, cartQuery) => {
|
4
4
|
const defaultOptimisticCart = {
|
5
|
+
__optimistic: true,
|
5
6
|
id: TEMP_CART_ID,
|
6
7
|
totalQuantity: quantity,
|
7
8
|
__typename: 'Cart',
|
@@ -38,7 +39,7 @@ export const getAddToCartOptimisticResponse = (product, quantity = 1, cartId, cl
|
|
38
39
|
const newTotalQuantity = cart.totalQuantity + quantity;
|
39
40
|
const newItemQuantity = cart.items[index].quantity + quantity;
|
40
41
|
// Already in cart, increase/decrease quantity
|
41
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { totalQuantity: newTotalQuantity, items: [
|
42
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { __optimistic: true, totalQuantity: newTotalQuantity, items: [
|
42
43
|
...cart.items.slice(0, index),
|
43
44
|
...(newItemQuantity > 0
|
44
45
|
? [
|
@@ -50,7 +51,7 @@ export const getAddToCartOptimisticResponse = (product, quantity = 1, cartId, cl
|
|
50
51
|
return optimisticCart;
|
51
52
|
}
|
52
53
|
else {
|
53
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { totalQuantity: cart.totalQuantity + quantity });
|
54
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { __optimistic: true, totalQuantity: cart.totalQuantity + quantity });
|
54
55
|
return optimisticCart;
|
55
56
|
}
|
56
57
|
}
|
@@ -69,7 +70,7 @@ export const getDecrementQuantityOptimisticResponse = ({ itemId, client, cartId,
|
|
69
70
|
variables: { cartId }
|
70
71
|
});
|
71
72
|
const items = cart.items.map((item) => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity: item.quantity - 1 }) : item);
|
72
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { items });
|
73
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { items, __optimistic: true });
|
73
74
|
return optimisticCart;
|
74
75
|
};
|
75
76
|
export const getIncrementQuantityOptimisticResponse = ({ itemId, client, cartId, cartQuery }) => {
|
@@ -79,7 +80,7 @@ export const getIncrementQuantityOptimisticResponse = ({ itemId, client, cartId,
|
|
79
80
|
variables: { cartId }
|
80
81
|
});
|
81
82
|
const items = cart.items.map((item) => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity: item.quantity + 1 }) : item);
|
82
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { items });
|
83
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { items, __optimistic: true });
|
83
84
|
return optimisticCart;
|
84
85
|
};
|
85
86
|
export const getRemoveFromCartOptimisticResponse = ({ itemId, client, cartId, setCartId, cartQuery }) => {
|
@@ -92,7 +93,7 @@ export const getRemoveFromCartOptimisticResponse = ({ itemId, client, cartId, se
|
|
92
93
|
if (items.length === 0) {
|
93
94
|
setCartId(null);
|
94
95
|
}
|
95
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { items });
|
96
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { items, __optimistic: true });
|
96
97
|
return optimisticCart;
|
97
98
|
};
|
98
99
|
export const getSetQuantityOptimisticResponse = ({ itemId, quantity, client, cartId, cartQuery }) => {
|
@@ -102,7 +103,7 @@ export const getSetQuantityOptimisticResponse = ({ itemId, quantity, client, car
|
|
102
103
|
variables: { cartId }
|
103
104
|
});
|
104
105
|
const items = cart.items.map((item) => item.id === itemId ? Object.assign(Object.assign({}, item), { quantity }) : item);
|
105
|
-
const optimisticCart = Object.assign(Object.assign({}, cart), { items });
|
106
|
+
const optimisticCart = Object.assign(Object.assign({}, cart), { items, __optimistic: true });
|
106
107
|
return optimisticCart;
|
107
108
|
};
|
108
109
|
//# sourceMappingURL=cartMutationUtils.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"cartMutationUtils.js","sourceRoot":"","sources":["cartMutationUtils.ts"],"names":[],"mappings":"AAKA,OAAO,eAAe,MAAM,+BAA+B,CAAC;AAS5D,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAC5C,OAAgB,EAChB,
|
1
|
+
{"version":3,"file":"cartMutationUtils.js","sourceRoot":"","sources":["cartMutationUtils.ts"],"names":[],"mappings":"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"}
|
@@ -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 useDecrementQuantity({ decrementQuantityMutation, cartQuery }) {
|
10
12
|
throwErrorInDev(!cartQuery, `You forgot to pass 'cartQuery' to useDecrementQuantity`);
|
11
13
|
const track = useTracker();
|
@@ -16,13 +18,16 @@ export default function useDecrementQuantity({ decrementQuantityMutation, cartQu
|
|
16
18
|
onCompleted: () => localStorage.setItem('cartChange', '1')
|
17
19
|
});
|
18
20
|
function decrementQuantity({ 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: 'remove',
|
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 decrementQuantityMutationFn({
|
28
33
|
variables: {
|