@q2devel/q2-core 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/cart/Cart.service.d.ts.map +1 -1
- package/dist/api/cart/Cart.service.js +2 -4
- package/dist/api/products/getProducts.d.ts.map +1 -1
- package/dist/api/products/getProducts.js +22 -10
- package/dist/context/cart/BasketContext.js +2 -2
- package/dist/types/products/Product.d.ts +5 -1
- package/dist/types/products/Product.d.ts.map +1 -1
- package/dist/utils/generalHelper.js +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cart.service.d.ts","sourceRoot":"","sources":["../../../api/cart/Cart.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,qBAAqB,EAErB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAQ7B,eAAO,MAAM,WAAW,GACtB,KAAK,WAAW,EAChB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAkEd,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,aAAa,MAAM,EACnB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"Cart.service.d.ts","sourceRoot":"","sources":["../../../api/cart/Cart.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,OAAO,CAAC;AAG3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,IAAI,EACJ,QAAQ,EACR,qBAAqB,EAErB,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAQ7B,eAAO,MAAM,WAAW,GACtB,KAAK,WAAW,EAChB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAkEd,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,aAAa,MAAM,EACnB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAuDd,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,KAAK,WAAW,EAChB,aAAa,MAAM,GAAG,SAAS,EAC/B,SAAS,gBAAgB,EACzB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,iBAAiB,CAmB3B,CAAC;AAGF,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,SAAS,MAAM,EACf,QAAQ,MAAM,EACd,SAAS,qBAAqB,EAC9B,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,QAAQ,CAOlB,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,KAAK,WAAW,EAChB,SAAS,MAAM,EACf,SAAS,qBAAqB,EAC9B,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CASd,CAAC;AAEF,eAAO,MAAM,SAAS,GACpB,KAAK,WAAW,EAChB,QAAQ,MAAM,EACd,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,WAAW,EAChB,QAAQ,MAAM,EACd,YAAY,MAAM,EAClB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAYd,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,KAAK,WAAW,EAChB,QAAQ,MAAM,EACd,UAAU,MAAM,EAChB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,IAAI,CAKd,CAAC;AAEF,eAAO,MAAM,YAAY,GACvB,KAAK,WAAW,EAChB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,MAAM,CAQhB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,EAAE,KAAK,CAAC;QACV,EAAE,EAAE,MAAM,CAAC;QACX,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,QAAQ,EAAE,CAAC;QACtB,KAAK,EAAE;YACL,MAAM,EAAE,MAAM,CAAC;YACf,aAAa,EAAE,MAAM,CAAC;YACtB,SAAS,EAAE,MAAM,CAAC;SACnB,CAAC;QACF,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;CACJ,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,WAAW,EAChB,SAAQ,kBAAuB,KAC9B,OAAO,CAAC,oBAAoB,CA8C9B,CAAC"}
|
|
@@ -41,7 +41,7 @@ export const getUserCart = async (ctx, config = {}) => {
|
|
|
41
41
|
drupalOrderItemId: item.drupal_internal__order_item_id || 0,
|
|
42
42
|
type: variationProduct.type,
|
|
43
43
|
variation_name: variationProduct.title || '',
|
|
44
|
-
|
|
44
|
+
variation_images: images.length
|
|
45
45
|
? images.map((img) => ({
|
|
46
46
|
href: ctx.makeAbsoluteUrl(img.field_media_image?.uri?.url),
|
|
47
47
|
alt: img.name,
|
|
@@ -67,8 +67,6 @@ export const getCurrentCart = async (ctx, activeToken, config = {}) => {
|
|
|
67
67
|
if (!activeToken)
|
|
68
68
|
throw new Error('Missing activeToken in context');
|
|
69
69
|
const { data } = await ctx.axios.get(`/jsonapi/carts?cartToken=${activeToken}&include=order_items,order_items.purchased_entity,order_items.purchased_entity.product_id,order_items.purchased_entity.product_id.field_image,order_items.purchased_entity.product_id.field_image.field_media_image`, { ...config, headers: getHeaders(ctx, config.headers) });
|
|
70
|
-
console.log('getCurrentCart data:', data);
|
|
71
|
-
console.log('getCurrentCart config:', activeToken);
|
|
72
70
|
if (!data.data || data.data.length === 0) {
|
|
73
71
|
return {
|
|
74
72
|
data: {
|
|
@@ -91,7 +89,7 @@ export const getCurrentCart = async (ctx, activeToken, config = {}) => {
|
|
|
91
89
|
drupalOrderItemId: item.drupal_internal__order_item_id || 0,
|
|
92
90
|
type: variationProduct.type,
|
|
93
91
|
variation_name: variationProduct.title || '',
|
|
94
|
-
|
|
92
|
+
variation_images: images.length
|
|
95
93
|
? images.map((img) => ({
|
|
96
94
|
href: ctx.makeAbsoluteUrl(img.field_media_image?.uri?.url),
|
|
97
95
|
alt: img.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getProducts.d.ts","sourceRoot":"","sources":["../../../api/products/getProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAuB,MAAM,8BAA8B,CAAC;AAE5E,KAAK,iBAAiB,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,WAAW,EAChB,
|
|
1
|
+
{"version":3,"file":"getProducts.d.ts","sourceRoot":"","sources":["../../../api/products/getProducts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C,OAAO,EAAE,OAAO,EAAuB,MAAM,8BAA8B,CAAC;AAE5E,KAAK,iBAAiB,GAAG;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAC;QAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC,CAAC;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,WAAW,GACtB,KAAK,WAAW,EAChB,2FAiBG,iBAAiB,KACnB,OAAO,CAAC,OAAO,EAAE,CA4GnB,CAAC;AAGF,KAAK,qBAAqB,GAAG;IAC3B,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,KAAK,WAAW,EAChB,6BAIG,qBAAqB,KACvB,OAAO,CAAC,MAAM,CAkChB,CAAC"}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { DrupalJsonApiParams } from 'drupal-jsonapi-params';
|
|
2
2
|
import mapIncludedResources from '../../utils/mapIncludedResources';
|
|
3
3
|
import { getDiscountPercent, handleSortChange } from '../../utils/generalHelper';
|
|
4
|
-
export const getProducts = async (ctx, { categoryId, productId, searchTerm, limit, offset, filters = [], sort = '', tag = '', include = [
|
|
4
|
+
export const getProducts = async (ctx, { categoryId, productId, searchTerm, limit, offset, filters = [], sort = '', tag = '', include = [
|
|
5
|
+
'product_id',
|
|
6
|
+
'product_id.field_category',
|
|
7
|
+
'product_id.field_image',
|
|
8
|
+
'product_id.field_image.field_media_image',
|
|
9
|
+
'field_image.field_media_image',
|
|
10
|
+
], cache = true, }) => {
|
|
5
11
|
const cacheKey = ['products', ctx.locale,
|
|
6
12
|
categoryId?.length ? `cat:${categoryId.join(',')}` : '',
|
|
7
13
|
productId ? `id:${productId}` : '',
|
|
@@ -16,7 +22,9 @@ export const getProducts = async (ctx, { categoryId, productId, searchTerm, limi
|
|
|
16
22
|
// const cached = await ctx.getCache<Product[]>(cacheKey);
|
|
17
23
|
// if (cached) return cached;
|
|
18
24
|
// }
|
|
19
|
-
const params = new DrupalJsonApiParams()
|
|
25
|
+
const params = new DrupalJsonApiParams()
|
|
26
|
+
.addInclude(include)
|
|
27
|
+
.addFilter('langcode', ctx.locale);
|
|
20
28
|
if (tag)
|
|
21
29
|
params.addFilter(`product_id.${tag}`, '1');
|
|
22
30
|
if (categoryId)
|
|
@@ -42,7 +50,8 @@ export const getProducts = async (ctx, { categoryId, productId, searchTerm, limi
|
|
|
42
50
|
const resolvedProducts = mapIncludedResources(data);
|
|
43
51
|
const mappedProducts = resolvedProducts.map((item) => {
|
|
44
52
|
const default_product = item.product_id;
|
|
45
|
-
const
|
|
53
|
+
const default_images = default_product.field_image ?? [];
|
|
54
|
+
const variation_images = item.field_image ?? [];
|
|
46
55
|
const discountPercent = getDiscountPercent(item.price, item.list_price);
|
|
47
56
|
//optional badges -demo purposes
|
|
48
57
|
const badges = [
|
|
@@ -68,15 +77,16 @@ export const getProducts = async (ctx, { categoryId, productId, searchTerm, limi
|
|
|
68
77
|
type: item.type,
|
|
69
78
|
variation_name: item.title,
|
|
70
79
|
sku: item.field_sku ?? '',
|
|
71
|
-
description: default_product.
|
|
80
|
+
description: default_product.field_description?.processed ?? '',
|
|
72
81
|
price: item?.list_price?.number ? item.list_price.number : item.price?.number ?? 0,
|
|
73
82
|
discountPercent,
|
|
74
83
|
product_id: default_product.drupal_internal__product_id,
|
|
75
84
|
product_name: default_product.title,
|
|
76
85
|
changed: item.changed,
|
|
77
86
|
category: default_product.field_category ?? '',
|
|
78
|
-
|
|
79
|
-
|
|
87
|
+
variation_images: variation_images.field_media_image?.uri?.url ? [{ href: ctx.makeAbsoluteUrl(variation_images.field_media_image?.uri?.url), alt: item.title }] : [{ href: '/q2_logo.png', alt: 'Q2' }],
|
|
88
|
+
default_images: default_images.length > 0
|
|
89
|
+
? default_images.map((img) => ({
|
|
80
90
|
href: ctx.makeAbsoluteUrl(img.field_media_image?.uri?.url),
|
|
81
91
|
alt: img.name,
|
|
82
92
|
}))
|
|
@@ -92,9 +102,9 @@ export const getProducts = async (ctx, { categoryId, productId, searchTerm, limi
|
|
|
92
102
|
field_shipping: default_product.field_shipping ?? [],
|
|
93
103
|
};
|
|
94
104
|
});
|
|
95
|
-
if (cache && ctx.setCache) {
|
|
96
|
-
|
|
97
|
-
}
|
|
105
|
+
// if (cache && ctx.setCache) {
|
|
106
|
+
// await ctx.setCache(cacheKey, mappedProducts);
|
|
107
|
+
// }
|
|
98
108
|
return mappedProducts;
|
|
99
109
|
};
|
|
100
110
|
export const getProductCount = async (ctx, { categoryId = [], tag = '', cache = true, }) => {
|
|
@@ -113,7 +123,9 @@ export const getProductCount = async (ctx, { categoryId = [], tag = '', cache =
|
|
|
113
123
|
if (tag) {
|
|
114
124
|
params.addFilter(`product_id.${tag}`, '1');
|
|
115
125
|
}
|
|
116
|
-
params
|
|
126
|
+
params
|
|
127
|
+
.addFilter('langcode', ctx.locale)
|
|
128
|
+
.addPageLimit(1);
|
|
117
129
|
const url = ctx.locale === ctx.defaultLocale
|
|
118
130
|
? `/jsonapi/index/variation`
|
|
119
131
|
: `/${ctx.locale}/jsonapi/index/variation`;
|
|
@@ -18,7 +18,6 @@ export const BasketProvider = ({ children, ctx }) => {
|
|
|
18
18
|
const [drupalOrderId, setDrupalOrderId] = useState(null);
|
|
19
19
|
const { getExistingCartToken, createCartToken, cartToken } = useGetCartToken(ctx);
|
|
20
20
|
const activeToken = cartToken;
|
|
21
|
-
console.log('Aktivní token:', activeToken);
|
|
22
21
|
const { data: userCartData, isLoading: isUserCartLoading, refetch: refetchUserCart, isFetching: isUserCartFetching, } = useGetUserCart(ctx);
|
|
23
22
|
const { data: guestCartData, isLoading: isGuestCartLoading, refetch: refetchGuestCart, isFetching: isGuestCartFetching, } = useGetCurrentCart({ activeToken: activeToken ?? undefined, ctx });
|
|
24
23
|
const cartData = ctx.userId ? userCartData : guestCartData;
|
|
@@ -64,11 +63,12 @@ export const BasketProvider = ({ children, ctx }) => {
|
|
|
64
63
|
variation_uuid: item.variation_uuid,
|
|
65
64
|
type: 'product',
|
|
66
65
|
variation_name: item.variation_name,
|
|
66
|
+
product_name: item.product_name,
|
|
67
67
|
description: '',
|
|
68
68
|
price: priceNumber,
|
|
69
69
|
formattedPrice: formatPrice(priceNumber, ctx.locale),
|
|
70
70
|
quantity: item.quantity,
|
|
71
|
-
|
|
71
|
+
variation_images: item.images || [],
|
|
72
72
|
category: '',
|
|
73
73
|
field_news: item.field_news || false,
|
|
74
74
|
field_aftersale: item.field_aftersale || false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../../types/products/Product.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"Product.d.ts","sourceRoot":"","sources":["../../../types/products/Product.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,OAAO,GAAG;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,GAAG,CAAC;IACd,gBAAgB,EAAE;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,cAAc,EAAE;QACd,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;IACJ,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAGhC,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;KACf,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC;IACnB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;IACvB,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC;IACtB,cAAc,CAAC,EAAE,GAAG,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,6BAA6B,EAAE,MAAM,CAAC;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE;QAClB,eAAe,EAAE,MAAM,CAAC;QACxB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,UAAU,CAAC,EAAE;QACX,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,iBAAiB,CAAC,EAAE;YAClB,GAAG,CAAC,EAAE;gBACJ,GAAG,EAAE,MAAM,CAAC;aACb,CAAC;SACH,CAAC;QACF,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,EAAE,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE;QACP,IAAI,EAAE,MAAM,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,EAAE,CAAC;CACL,CAAC"}
|
|
@@ -12,9 +12,9 @@ export function handleSortChange(id) {
|
|
|
12
12
|
case 'title-DESC':
|
|
13
13
|
return { title: 'title', direction: 'DESC' };
|
|
14
14
|
case 'price-ASC':
|
|
15
|
-
return { title: '
|
|
15
|
+
return { title: 'number', direction: 'ASC' };
|
|
16
16
|
case 'price-DESC':
|
|
17
|
-
return { title: '
|
|
17
|
+
return { title: 'number', direction: 'DESC' };
|
|
18
18
|
default:
|
|
19
19
|
return null;
|
|
20
20
|
}
|