@constructor-io/constructorio-ui-plp 1.5.0 → 1.6.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/constructorio-ui-plp-bundled.js +12 -12
- package/lib/cjs/components/CioPlp/CioPlp.js +2 -2
- package/lib/cjs/components/ProductCard/ProductCard.js +24 -21
- package/lib/cjs/components/ProductCard/index.js +0 -1
- package/lib/cjs/components/RenderPropsWrapper/CustomHtmlRender.js +24 -0
- package/lib/cjs/components/RenderPropsWrapper/RenderPropsWrapper.js +15 -0
- package/lib/cjs/hooks/useCioPlpProvider.js +3 -1
- package/lib/cjs/hooks/useGroups.js +7 -1
- package/lib/cjs/hooks/useOptionsList.js +7 -5
- package/lib/cjs/utils/itemFieldGetters.js +6 -1
- package/lib/cjs/version.js +1 -1
- package/lib/mjs/components/CioPlp/CioPlp.js +2 -2
- package/lib/mjs/components/ProductCard/ProductCard.js +23 -21
- package/lib/mjs/components/ProductCard/index.js +0 -1
- package/lib/mjs/components/RenderPropsWrapper/CustomHtmlRender.js +20 -0
- package/lib/mjs/components/RenderPropsWrapper/RenderPropsWrapper.js +11 -0
- package/lib/mjs/hooks/useCioPlpProvider.js +3 -1
- package/lib/mjs/hooks/useGroups.js +8 -2
- package/lib/mjs/hooks/useOptionsList.js +8 -6
- package/lib/mjs/utils/itemFieldGetters.js +3 -0
- package/lib/mjs/version.js +1 -1
- package/lib/types/components/ProductCard/ProductCard.d.ts +1 -51
- package/lib/types/components/ProductCard/index.d.ts +0 -1
- package/lib/types/components/RenderPropsWrapper/CustomHtmlRender.d.ts +7 -0
- package/lib/types/components/RenderPropsWrapper/RenderPropsWrapper.d.ts +25 -0
- package/lib/types/hooks/useGroups.d.ts +6 -1
- package/lib/types/hooks/useOptionsList.d.ts +5 -0
- package/lib/types/hooks/usePagination.d.ts +10 -0
- package/lib/types/index.d.ts +0 -1
- package/lib/types/types.d.ts +59 -1
- package/lib/types/utils/itemFieldGetters.d.ts +2 -1
- package/lib/types/version.d.ts +1 -1
- package/package.json +1 -1
package/lib/types/types.d.ts
CHANGED
|
@@ -16,6 +16,7 @@ export interface ItemFieldGetters {
|
|
|
16
16
|
getRolloverImage: (item: Item | Variation) => string | undefined;
|
|
17
17
|
getSwatchPreview: (variation: Variation) => string;
|
|
18
18
|
getSwatches: (item: Item, retrievePrice: ItemFieldGetters['getPrice'], retrieveSwatchPreview: ItemFieldGetters['getSwatchPreview'], retrieveSalePrice: ItemFieldGetters['getSalePrice'], retrieveRolloverImage: ItemFieldGetters['getRolloverImage']) => SwatchItem[] | undefined;
|
|
19
|
+
getIsHiddenGroupField: (group: PlpItemGroup) => boolean | undefined;
|
|
19
20
|
}
|
|
20
21
|
export interface Formatters {
|
|
21
22
|
formatPrice: (price?: number) => string;
|
|
@@ -28,6 +29,60 @@ export interface Callbacks {
|
|
|
28
29
|
onSwatchClick?: (event: React.MouseEvent, swatch: SwatchItem) => void;
|
|
29
30
|
onRedirect?: (url: string) => void;
|
|
30
31
|
}
|
|
32
|
+
interface ProductCardBaseProps {
|
|
33
|
+
/**
|
|
34
|
+
* Constructor's Transformed API Item Object.
|
|
35
|
+
*/
|
|
36
|
+
item: Item;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Props that will be passed to the renderProps function
|
|
40
|
+
*/
|
|
41
|
+
export interface ProductCardRenderProps extends ProductCardProps {
|
|
42
|
+
/**
|
|
43
|
+
* Function to format the price. Defaults to "$0.00".
|
|
44
|
+
* Set globally at the CioPlp provider level.
|
|
45
|
+
*/
|
|
46
|
+
formatPrice: (price: number) => string;
|
|
47
|
+
/**
|
|
48
|
+
* Object containing information about the current product, variation
|
|
49
|
+
*/
|
|
50
|
+
productInfo: ProductInfoObject;
|
|
51
|
+
/**
|
|
52
|
+
* Callback to run on add-to-cart event.
|
|
53
|
+
* Set globally at the CioPlp provider level.
|
|
54
|
+
*/
|
|
55
|
+
onAddToCart: (event: React.MouseEvent, item: Item, revenue: number, selectedVariation: string) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Callback to run on Product Card Click.
|
|
58
|
+
* Set globally at the CioPlp provider level.
|
|
59
|
+
*/
|
|
60
|
+
onClick: (event: React.MouseEvent, item: Item) => void;
|
|
61
|
+
/**
|
|
62
|
+
* Callback to run on Product Card Mouse Enter.
|
|
63
|
+
* Set globally at the CioPlp provider level.
|
|
64
|
+
*/
|
|
65
|
+
onMouseEnter: (event: React.MouseEvent, item: Item) => void;
|
|
66
|
+
/**
|
|
67
|
+
* Callback to run on Product Card Mouse Leave.
|
|
68
|
+
* Set globally at the CioPlp provider level.
|
|
69
|
+
*/
|
|
70
|
+
onMouseLeave: (event: React.MouseEvent, item: Item) => void;
|
|
71
|
+
/**
|
|
72
|
+
* Boolean to show/hide the rollover image.
|
|
73
|
+
*/
|
|
74
|
+
isRolloverImageShown: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Data Attributes to surface on parent div of product card.
|
|
77
|
+
*/
|
|
78
|
+
productCardCnstrcDataAttributes: CnstrcData;
|
|
79
|
+
}
|
|
80
|
+
export type ProductCardProps = IncludeRenderProps<ProductCardBaseProps, ProductCardRenderProps>;
|
|
81
|
+
export interface RenderOverrides {
|
|
82
|
+
productCard?: {
|
|
83
|
+
renderHtml?: (props: ProductCardRenderProps) => HTMLElement | ReactNode;
|
|
84
|
+
};
|
|
85
|
+
}
|
|
31
86
|
export type PlpSearchData = PlpSearchDataResults | PlpSearchDataRedirect;
|
|
32
87
|
export interface PlpSearchDataResults {
|
|
33
88
|
resultId: string;
|
|
@@ -96,6 +151,7 @@ export interface PlpContextValue {
|
|
|
96
151
|
formatters: Formatters;
|
|
97
152
|
callbacks: Callbacks;
|
|
98
153
|
urlHelpers: UrlHelpers;
|
|
154
|
+
renderOverrides: RenderOverrides;
|
|
99
155
|
}
|
|
100
156
|
export interface PrimaryColorStyles {
|
|
101
157
|
'--primary-color-h': string;
|
|
@@ -154,6 +210,7 @@ export interface CioPlpProviderProps {
|
|
|
154
210
|
formatters?: Partial<Formatters>;
|
|
155
211
|
callbacks?: Partial<Callbacks>;
|
|
156
212
|
itemFieldGetters?: Partial<ItemFieldGetters>;
|
|
213
|
+
renderOverrides?: Partial<RenderOverrides>;
|
|
157
214
|
urlHelpers?: Partial<UrlHelpers>;
|
|
158
215
|
initialSearchResponse?: SearchResponse;
|
|
159
216
|
initialBrowseResponse?: GetBrowseResultsResponse;
|
|
@@ -234,7 +291,7 @@ export interface PlpItemGroup {
|
|
|
234
291
|
groupId: string;
|
|
235
292
|
displayName: string;
|
|
236
293
|
count: number;
|
|
237
|
-
data:
|
|
294
|
+
data: Record<string, any> | null;
|
|
238
295
|
children: Array<PlpItemGroup>;
|
|
239
296
|
parents: Pick<PlpItemGroup, 'groupId' | 'displayName'>[];
|
|
240
297
|
}
|
|
@@ -242,6 +299,7 @@ export type CnstrcData = Record<`data-cnstrc-${string}`, string | number | boole
|
|
|
242
299
|
export type PropsWithChildren<P> = P & {
|
|
243
300
|
children?: ReactNode;
|
|
244
301
|
};
|
|
302
|
+
export type RenderPropsChildren<RenderProps> = ((props: RenderProps) => ReactNode) | ReactNode;
|
|
245
303
|
/**
|
|
246
304
|
* Composes a type for a Component that accepts
|
|
247
305
|
* - Props P,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { ItemFieldGetters, Item, SwatchItem, Variation } from '../types';
|
|
1
|
+
import { ItemFieldGetters, Item, SwatchItem, Variation, PlpItemGroup } from '../types';
|
|
2
2
|
export declare function getPrice(item: Item | Variation): number;
|
|
3
3
|
export declare function getSalePrice(item: Item | Variation): number | undefined;
|
|
4
4
|
export declare function getRolloverImage(item: Item | Variation): string | undefined;
|
|
5
5
|
export declare function getSwatches(item: Item, retrievePrice: ItemFieldGetters['getPrice'], retrieveSwatchPreview: ItemFieldGetters['getSwatchPreview'], retrieveSalePrice: ItemFieldGetters['getSalePrice'], retrieveRolloverImage: ItemFieldGetters['getRolloverImage']): SwatchItem[] | undefined;
|
|
6
6
|
export declare function getSwatchPreview(variation: Variation): string;
|
|
7
|
+
export declare function getIsHiddenGroupField(group: PlpItemGroup): any;
|
package/lib/types/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const _default: "1.
|
|
1
|
+
declare const _default: "1.6.1";
|
|
2
2
|
export default _default;
|