@rebuy/rebuy-hydrogen 3.0.0-beta.2 → 3.0.0-beta.4

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.
Files changed (95) hide show
  1. package/dist/components/AddToCartBtn/AddToCartBtn.d.ts.map +1 -1
  2. package/dist/components/AddToCartBtn/HydrogenAddToCartBtn.d.ts.map +1 -1
  3. package/dist/components/AddToCartBtn/HydrogenReactAddToCartBtn.d.ts.map +1 -1
  4. package/dist/components/ProductCard/ProductCard.d.ts.map +1 -1
  5. package/dist/components/ProductPrice/ProductPrice.d.ts +1 -1
  6. package/dist/components/ProductPrice/ProductPrice.d.ts.map +1 -1
  7. package/dist/components/VariantSelect/VariantSelect.d.ts +1 -1
  8. package/dist/components/VariantSelect/VariantSelect.d.ts.map +1 -1
  9. package/dist/hooks/titleLevel.d.ts.map +1 -1
  10. package/dist/index.css +88 -88
  11. package/dist/index.css.map +4 -4
  12. package/dist/index.js +187 -401
  13. package/dist/index.js.map +4 -4
  14. package/dist/index.mjs +187 -410
  15. package/dist/index.mjs.map +4 -4
  16. package/dist/providers/RebuyHydrogenContextProvider.d.ts +1 -1
  17. package/dist/providers/RebuyHydrogenContextProvider.d.ts.map +1 -1
  18. package/dist/providers/RebuyHydrogenReactContextProvider.d.ts.map +1 -1
  19. package/dist/providers/types.d.ts +1 -1
  20. package/dist/providers/types.d.ts.map +1 -1
  21. package/dist/types/rebuyCustom.d.ts.map +1 -1
  22. package/dist/types/shopify.d.ts.map +1 -1
  23. package/dist/types/widgets.d.ts +1 -1
  24. package/dist/types/widgets.d.ts.map +1 -1
  25. package/dist/utils/convertToRebuyProduct.d.ts.map +1 -1
  26. package/dist/utils/createContextParameters.d.ts.map +1 -1
  27. package/dist/utils/getEncodedAttributes.d.ts.map +1 -1
  28. package/dist/utils/getRebuyConfig.d.ts.map +1 -1
  29. package/dist/widgetContainer/RebuyWidgetContainer.d.ts +1 -1
  30. package/dist/widgetContainer/RebuyWidgetContainer.d.ts.map +1 -1
  31. package/dist/widgets/RebuyCompleteTheLook/RebuyCompleteTheLook.d.ts.map +1 -1
  32. package/dist/widgets/RebuyDynamicBundleProducts/BundleImages.d.ts.map +1 -1
  33. package/dist/widgets/RebuyDynamicBundleProducts/BundlePrice.d.ts.map +1 -1
  34. package/dist/widgets/RebuyDynamicBundleProducts/BundleSelection.d.ts +1 -1
  35. package/dist/widgets/RebuyDynamicBundleProducts/BundleSelection.d.ts.map +1 -1
  36. package/dist/widgets/RebuyDynamicBundleProducts/RebuyDynamicBundleProducts.d.ts.map +1 -1
  37. package/dist/widgets/RebuyDynamicBundleProducts/Select.d.ts.map +1 -1
  38. package/dist/widgets/RebuyProductAddOns/RebuyProductAddOnCard.d.ts.map +1 -1
  39. package/dist/widgets/RebuyProductAddOns/RebuyProductAddOns.d.ts.map +1 -1
  40. package/dist/widgets/RebuyProductAddOns/types.d.ts.map +1 -1
  41. package/dist/widgets/RebuyProductRecommendations/RebuyProductRecommendations.d.ts.map +1 -1
  42. package/package.json +66 -35
  43. package/src/components/AddToCartBtn/AddToCartBtn.tsx +0 -45
  44. package/src/components/AddToCartBtn/HydrogenAddToCartBtn.tsx +0 -43
  45. package/src/components/AddToCartBtn/HydrogenReactAddToCartBtn.tsx +0 -35
  46. package/src/components/AddToCartBtn/index.ts +0 -1
  47. package/src/components/AddToCartBtn/types.ts +0 -27
  48. package/src/components/ProductCard/ProductCard.tsx +0 -70
  49. package/src/components/ProductCard/index.ts +0 -1
  50. package/src/components/ProductCard/types.ts +0 -10
  51. package/src/components/ProductPrice/ProductPrice.tsx +0 -49
  52. package/src/components/ProductPrice/index.ts +0 -1
  53. package/src/components/Title/Title.tsx +0 -19
  54. package/src/components/Title/index.ts +0 -1
  55. package/src/components/Title/types.ts +0 -7
  56. package/src/components/VariantSelect/VariantSelect.tsx +0 -45
  57. package/src/components/VariantSelect/index.ts +0 -1
  58. package/src/components/VariantSelect/types.ts +0 -6
  59. package/src/context/RebuyContext.tsx +0 -9
  60. package/src/hooks/titleLevel.tsx +0 -42
  61. package/src/index.ts +0 -7
  62. package/src/providers/RebuyHydrogenContextProvider.tsx +0 -112
  63. package/src/providers/RebuyHydrogenReactContextProvider.tsx +0 -192
  64. package/src/providers/types.ts +0 -58
  65. package/src/queries/cart.queries.ts +0 -467
  66. package/src/types/common.ts +0 -8
  67. package/src/types/css.d.ts +0 -11
  68. package/src/types/env.d.ts +0 -12
  69. package/src/types/rebuy.d.ts +0 -31
  70. package/src/types/rebuyCustom.ts +0 -263
  71. package/src/types/rebuySmartCart.ts +0 -188
  72. package/src/types/shopify.ts +0 -142
  73. package/src/types/widgets.ts +0 -29
  74. package/src/utils/convertToRebuyProduct.tsx +0 -319
  75. package/src/utils/createContextParameters.ts +0 -142
  76. package/src/utils/getEncodedAttributes.ts +0 -11
  77. package/src/utils/getRebuyConfig.ts +0 -31
  78. package/src/widgetContainer/RebuyWidgetContainer.tsx +0 -183
  79. package/src/widgets/RebuyCompleteTheLook/RebuyCompleteTheLook.tsx +0 -50
  80. package/src/widgets/RebuyCompleteTheLook/index.ts +0 -1
  81. package/src/widgets/RebuyCompleteTheLook/types.ts +0 -5
  82. package/src/widgets/RebuyDynamicBundleProducts/BundleImages.tsx +0 -62
  83. package/src/widgets/RebuyDynamicBundleProducts/BundlePrice.tsx +0 -93
  84. package/src/widgets/RebuyDynamicBundleProducts/BundleSelection.tsx +0 -65
  85. package/src/widgets/RebuyDynamicBundleProducts/RebuyDynamicBundleProducts.tsx +0 -118
  86. package/src/widgets/RebuyDynamicBundleProducts/Select.tsx +0 -41
  87. package/src/widgets/RebuyDynamicBundleProducts/index.ts +0 -1
  88. package/src/widgets/RebuyDynamicBundleProducts/types.ts +0 -23
  89. package/src/widgets/RebuyProductAddOns/RebuyProductAddOnCard.tsx +0 -66
  90. package/src/widgets/RebuyProductAddOns/RebuyProductAddOns.tsx +0 -218
  91. package/src/widgets/RebuyProductAddOns/index.ts +0 -1
  92. package/src/widgets/RebuyProductAddOns/types.ts +0 -24
  93. package/src/widgets/RebuyProductRecommendations/RebuyProductRecommendations.tsx +0 -50
  94. package/src/widgets/RebuyProductRecommendations/index.ts +0 -1
  95. package/src/widgets/RebuyProductRecommendations/types.ts +0 -5
@@ -1,218 +0,0 @@
1
- import { Money } from '@shopify/hydrogen-react';
2
- import { useCallback, useEffect, useState } from 'react';
3
-
4
- import { RebuyProductAddOnCard } from './RebuyProductAddOnCard';
5
-
6
- import styles from './RebuyProductAddOns.module.css';
7
-
8
- import type {
9
- CurrencyCode,
10
- MoneyV2,
11
- } from '@shopify/hydrogen-react/storefront-api-types';
12
- import type { RebuyProduct } from '~/types/rebuyCustom';
13
- import type { RebuyProductAddOnProps } from '~/widgets/RebuyProductAddOns/types';
14
-
15
- import { AddToCartBtn } from '~/components/AddToCartBtn';
16
- import { Title } from '~/components/Title';
17
- import { getTitleLevel } from '~/hooks/titleLevel';
18
- import { convertToRebuyProduct } from '~/utils/convertToRebuyProduct';
19
-
20
- export const RebuyProductAddOns = (props: RebuyProductAddOnProps) => {
21
- const {
22
- addToCartCallback,
23
- customTitle = `These pair with ${props.product?.title}`,
24
- customTitleLevel = 'h2',
25
- customTitleStyle,
26
- includeMainProduct = false,
27
- isHydrogenReact,
28
- learnMoreText = 'Learn more',
29
- outOfStockText = 'Out of stock',
30
- product,
31
- products = [],
32
- addToCartBtnText = 'Add to cart',
33
- subtotalText = 'Add-ons Subtotal: ',
34
- withProductText = `With ${product?.title}: `,
35
- } = props;
36
-
37
- const [addedItems, setAddedItems] = useState<RebuyProduct[]>(products);
38
-
39
- const [subtotalWithProduct, setSubtotalWithProduct] = useState<MoneyV2>();
40
- const [subtotalWithOutProduct, setSubtotalWithOutProduct] =
41
- useState<MoneyV2>();
42
-
43
- useEffect(() => {
44
- let initialTotal = 0;
45
- let currencyCode = 'USD' as CurrencyCode;
46
-
47
- products.map((product) => {
48
- product.selectedVariant = product.variants.nodes[0];
49
- product.selected = true;
50
-
51
- if (product.selectedVariant?.priceV2) {
52
- initialTotal += Number(product.selectedVariant.priceV2.amount);
53
- currencyCode = (product.selectedVariant.priceV2.currencyCode ||
54
- 'USD') as CurrencyCode;
55
- }
56
- });
57
-
58
- setSubtotalWithProduct({
59
- amount: String(initialTotal),
60
- currencyCode,
61
- });
62
-
63
- setSubtotalWithOutProduct({
64
- amount: String(
65
- initialTotal -
66
- Number(
67
- isHydrogenReact
68
- ? product?.selectedVariant?.price.amount
69
- : product?.selectedOrFirstAvailableVariant?.price
70
- .amount
71
- )
72
- ),
73
- currencyCode,
74
- });
75
- setAddedItems(products);
76
- if (includeMainProduct) {
77
- setAddedItems([
78
- convertToRebuyProduct(isHydrogenReact || false, product),
79
- ...products,
80
- ]);
81
- } else {
82
- setAddedItems(products);
83
- }
84
- }, [products, product, isHydrogenReact, includeMainProduct]);
85
-
86
- const handleChange = useCallback(
87
- (event: React.ChangeEvent<HTMLInputElement>, product: RebuyProduct) => {
88
- const newProducts = [...products];
89
- const productIndex = newProducts.findIndex(
90
- (p) => p.id === product.id
91
- );
92
-
93
- if (productIndex !== -1) {
94
- newProducts[productIndex] = {
95
- ...newProducts[productIndex],
96
- selected: event.target.checked,
97
- };
98
-
99
- product.selected = event.target.checked;
100
-
101
- if (event.target.checked) {
102
- setAddedItems((prev) => [...prev, product]);
103
- } else {
104
- setAddedItems((prev) =>
105
- prev.filter((item) => item.id !== product.id)
106
- );
107
- }
108
- }
109
- },
110
- [products]
111
- );
112
-
113
- useEffect(() => {
114
- let total = 0;
115
- let currencyCode = 'USD' as CurrencyCode;
116
-
117
- addedItems.forEach((item) => {
118
- if (item.selected && item.selectedVariant?.priceV2) {
119
- total += Number(item.selectedVariant.priceV2.amount);
120
- currencyCode = (item.selectedVariant.priceV2.currencyCode ||
121
- 'USD') as CurrencyCode;
122
- }
123
- });
124
-
125
- setSubtotalWithProduct({
126
- amount: String(total),
127
- currencyCode,
128
- });
129
-
130
- setSubtotalWithOutProduct({
131
- amount: String(
132
- total -
133
- Number(
134
- isHydrogenReact
135
- ? product?.selectedVariant?.price.amount
136
- : product?.selectedOrFirstAvailableVariant?.price
137
- .amount
138
- )
139
- ),
140
- currencyCode,
141
- });
142
- }, [addedItems, product, isHydrogenReact]);
143
-
144
- if (products.length === 0) {
145
- console.log('RebuyProductAddOns: No products found');
146
- return null;
147
- }
148
-
149
- return (
150
- <div className={styles.container}>
151
- <Title
152
- level={getTitleLevel(customTitleLevel)}
153
- style={customTitleStyle}
154
- text={customTitle}
155
- />
156
- <ul className={styles.productAddOnsList}>
157
- {products.map((product) => (
158
- <li key={product.id}>
159
- <RebuyProductAddOnCard
160
- handleChange={handleChange}
161
- learnMoreText={learnMoreText}
162
- outOfStockText={outOfStockText}
163
- product={product}
164
- titleLevel={getTitleLevel(customTitleLevel, true)}
165
- />
166
- </li>
167
- ))}
168
- </ul>
169
- <div className={styles.productAddOnsFooter}>
170
- <div className={styles.moneyContainer}>
171
- {subtotalText}
172
- {subtotalWithOutProduct && (
173
- <Money
174
- data={subtotalWithOutProduct}
175
- withoutTrailingZeros
176
- />
177
- )}
178
- </div>
179
- {includeMainProduct && (
180
- <div className={styles.moneyContainer}>
181
- {withProductText}
182
- {subtotalWithProduct && (
183
- <Money
184
- data={subtotalWithProduct}
185
- withoutTrailingZeros
186
- />
187
- )}
188
- </div>
189
- )}
190
- <div className={styles.addCartBtnContainer}>
191
- {includeMainProduct ? (
192
- <AddToCartBtn
193
- addToCartBtnText={addToCartBtnText}
194
- addToCartCallback={addToCartCallback}
195
- disabled={addedItems.length === 0}
196
- isHydrogenReact={isHydrogenReact}
197
- moneyData={subtotalWithProduct}
198
- selectedVariants={addedItems.map(
199
- (item) => item.selectedVariant
200
- )}
201
- />
202
- ) : (
203
- <AddToCartBtn
204
- addToCartBtnText={addToCartBtnText}
205
- addToCartCallback={addToCartCallback}
206
- disabled={addedItems.length === 0}
207
- isHydrogenReact={isHydrogenReact}
208
- moneyData={subtotalWithOutProduct}
209
- selectedVariants={addedItems.map(
210
- (item) => item.selectedVariant
211
- )}
212
- />
213
- )}
214
- </div>
215
- </div>
216
- </div>
217
- );
218
- };
@@ -1 +0,0 @@
1
- export * from './RebuyProductAddOns';
@@ -1,24 +0,0 @@
1
- import type { ProductCardTitleLevel } from '~/types/common';
2
- import type { RebuyProduct } from '~/types/rebuyCustom';
3
- import type { WidgetChildProps } from '~/types/widgets';
4
-
5
- export type RebuyProductAddOnProps = {
6
- addToCartBtnText?: string;
7
- includeMainProduct?: boolean;
8
- learnMoreText?: string;
9
- outOfStockText?: string;
10
- subtotalText?: string;
11
- withProductText?: string;
12
- } & WidgetChildProps;
13
-
14
- export type RebuyProductAddOnCardProps = {
15
- handleChange: (
16
- event: React.ChangeEvent<HTMLInputElement>,
17
- product: RebuyProduct
18
- ) => void;
19
-
20
- learnMoreText?: string;
21
- outOfStockText?: string;
22
- product: RebuyProduct;
23
- titleLevel: ProductCardTitleLevel;
24
- };
@@ -1,50 +0,0 @@
1
- import styles from './RebuyProductRecommendations.module.css';
2
-
3
- import type { RebuyProductRecommendationsProps } from './types';
4
-
5
- import { ProductCard } from '~/components/ProductCard';
6
- import { Title } from '~/components/Title';
7
- import { getTitleLevel } from '~/hooks/titleLevel';
8
-
9
- export const RebuyProductRecommendations = (
10
- props: RebuyProductRecommendationsProps
11
- ) => {
12
- const {
13
- addToCartBtnText = 'Add to cart',
14
- addToCartCallback,
15
- customTitle = `These pair with ${props.product?.title}`,
16
- customTitleLevel = 'h2',
17
- customTitleStyle,
18
- products = [],
19
- } = props;
20
-
21
- if (products.length === 0) {
22
- console.log('RebuyProductRecommendations: No products found');
23
- return null;
24
- }
25
- return (
26
- <section className={styles.container}>
27
- <Title
28
- level={getTitleLevel(customTitleLevel)}
29
- style={customTitleStyle}
30
- text={customTitle}
31
- />
32
- <ul className={styles.productGrid}>
33
- {products.map((product) => (
34
- <li className={styles.productItem} key={product.id}>
35
- <ProductCard
36
- addToCartBtnText={addToCartBtnText}
37
- addToCartCallback={addToCartCallback}
38
- isHydrogenReact={props.isHydrogenReact}
39
- product={product}
40
- productCardTitleLevel={getTitleLevel(
41
- customTitleLevel,
42
- true
43
- )}
44
- />
45
- </li>
46
- ))}
47
- </ul>
48
- </section>
49
- );
50
- };
@@ -1 +0,0 @@
1
- export { RebuyProductRecommendations } from './RebuyProductRecommendations';
@@ -1,5 +0,0 @@
1
- import type { WidgetChildProps } from '~/types/widgets';
2
-
3
- export type RebuyProductRecommendationsProps = {
4
- addToCartBtnText?: string;
5
- } & WidgetChildProps;