@rebuy/rebuy-hydrogen 3.0.0-beta.15 → 3.0.0-beta.16
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/README.md +157 -0
- package/dist/constants/debug.d.ts +2 -1
- package/dist/constants/debug.d.ts.map +1 -1
- package/dist/index.css +42 -27
- package/dist/index.css.map +3 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +215 -25
- package/dist/index.js.map +4 -4
- package/dist/index.mjs +228 -38
- package/dist/index.mjs.map +4 -4
- package/dist/smart-cart/components/SmartCartContainer/SmartCartContainer.d.ts.map +1 -1
- package/dist/types/common.d.ts +7 -0
- package/dist/types/common.d.ts.map +1 -1
- package/dist/types/rebuyCustom.d.ts +0 -1
- package/dist/types/rebuyCustom.d.ts.map +1 -1
- package/dist/widgetContainer/RebuyWidgetContainer.d.ts.map +1 -1
- package/dist/widgets/RebuyProductViewed/RebuyProductViewed.d.ts +3 -0
- package/dist/widgets/RebuyProductViewed/RebuyProductViewed.d.ts.map +1 -0
- package/dist/widgets/RebuyProductViewed/index.d.ts +2 -0
- package/dist/widgets/RebuyProductViewed/index.d.ts.map +1 -0
- package/dist/widgets/RebuyProductViewed/types.d.ts +8 -0
- package/dist/widgets/RebuyProductViewed/types.d.ts.map +1 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/RebuyRecentlyViewedProducts.d.ts +3 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/RebuyRecentlyViewedProducts.d.ts.map +1 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/index.d.ts +2 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/index.d.ts.map +1 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/types.d.ts +11 -0
- package/dist/widgets/RebuyRecentlyViewedProducts/types.d.ts.map +1 -0
- package/dist/zustandStores/productViewed.d.ts +9 -0
- package/dist/zustandStores/productViewed.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.mjs
CHANGED
@@ -3612,7 +3612,7 @@ var RebuyHydrogenReactContextProvider = ({
|
|
3612
3612
|
|
3613
3613
|
// src/smart-cart/components/SmartCartContainer/SmartCartContainer.tsx
|
3614
3614
|
import clsx13 from "clsx";
|
3615
|
-
import React11, { useMemo as useMemo20 } from "react";
|
3615
|
+
import React11, { useCallback as useCallback14, useEffect as useEffect21, useMemo as useMemo20, useRef as useRef13 } from "react";
|
3616
3616
|
|
3617
3617
|
// src/smart-cart/components/_Layouts/AnchorSlot.tsx
|
3618
3618
|
import { useMemo as useMemo19 } from "react";
|
@@ -8659,10 +8659,25 @@ var SmartCartContainer_default = result22;
|
|
8659
8659
|
// src/smart-cart/components/SmartCartContainer/SmartCartContainer.tsx
|
8660
8660
|
import { jsx as jsx40, jsxs as jsxs24 } from "react/jsx-runtime";
|
8661
8661
|
var SmartCartContainer = ({ containerId }) => {
|
8662
|
-
const {
|
8662
|
+
const { config, getItemCount, hideCart, isVisible } = useSmartCart();
|
8663
|
+
const containerRef = useRef13(null);
|
8664
|
+
const previousFocusRef = useRef13(null);
|
8663
8665
|
const components = useMemo20(() => config && Array.isArray(config.components) ? config.components : [], [config]);
|
8664
|
-
const
|
8665
|
-
|
8666
|
+
const handleClose = useCallback14(() => {
|
8667
|
+
hideCart();
|
8668
|
+
if (previousFocusRef.current) {
|
8669
|
+
previousFocusRef.current.focus();
|
8670
|
+
}
|
8671
|
+
}, [hideCart]);
|
8672
|
+
useEffect21(() => {
|
8673
|
+
if (isVisible) {
|
8674
|
+
previousFocusRef.current = document.activeElement;
|
8675
|
+
const closeButton = containerRef.current?.querySelector("#rebuy-cart-close");
|
8676
|
+
if (closeButton instanceof HTMLElement) {
|
8677
|
+
closeButton.focus();
|
8678
|
+
}
|
8679
|
+
}
|
8680
|
+
}, [isVisible]);
|
8666
8681
|
const backgroundClassName = clsx13(SmartCartContainer_default["rebuy-smart-cart__overlay-background"], {
|
8667
8682
|
[SmartCartContainer_default["rebuy-smart-cart__overlay-background--visible"]]: isVisible
|
8668
8683
|
});
|
@@ -8688,17 +8703,18 @@ var SmartCartContainer = ({ containerId }) => {
|
|
8688
8703
|
const titleBarComponent = components.find((c) => c.type === "title_bar");
|
8689
8704
|
const ariaLabelledBy = titleBarComponent ? `rebuy-title-${titleBarComponent.component_id}` : defaultTitleId;
|
8690
8705
|
return /* @__PURE__ */ jsxs24(React11.Fragment, { children: [
|
8691
|
-
/* @__PURE__ */ jsx40("div", {
|
8706
|
+
/* @__PURE__ */ jsx40("div", { className: backgroundClassName, onClick: handleClose }),
|
8692
8707
|
/* @__PURE__ */ jsxs24(
|
8693
8708
|
"div",
|
8694
8709
|
{
|
8695
|
-
"aria-hidden": !isVisible,
|
8696
8710
|
"aria-labelledby": ariaLabelledBy,
|
8697
8711
|
"aria-modal": "true",
|
8698
8712
|
className: flyoutContainerClasses,
|
8699
8713
|
"data-rebuy-cart-layout": config?.layout || "single",
|
8700
8714
|
id: containerId || "rebuy-cart-react",
|
8715
|
+
ref: containerRef,
|
8701
8716
|
role: "dialog",
|
8717
|
+
tabIndex: -1,
|
8702
8718
|
children: [
|
8703
8719
|
/* @__PURE__ */ jsxs24("header", { className: SmartCartContainer_default["rebuy-smart-cart__header"], "data-rebuy-cart-anchor": "header", children: [
|
8704
8720
|
/* @__PURE__ */ jsxs24("div", { className: SmartCartContainer_default["rebuy-smart-cart__header-top-bar"], "data-rebuy-cart-header-top-bar": "", children: [
|
@@ -8743,21 +8759,10 @@ var RebuySmartCart = () => {
|
|
8743
8759
|
import { RebuyClient as RebuyClient3 } from "@rebuy/rebuy";
|
8744
8760
|
import * as Utilities5 from "@rebuy/rebuy/utilities";
|
8745
8761
|
import { flattenConnection as flattenConnection4 } from "@shopify/hydrogen";
|
8746
|
-
import React12, { useContext as useContext4, useEffect as
|
8762
|
+
import React12, { useContext as useContext4, useEffect as useEffect22, useMemo as useMemo21, useState as useState21 } from "react";
|
8747
8763
|
var RebuyWidgetContainerBase = ({ children, ...props }) => {
|
8748
|
-
const {
|
8749
|
-
|
8750
|
-
collection,
|
8751
|
-
collectionId,
|
8752
|
-
dataSource,
|
8753
|
-
limit,
|
8754
|
-
options,
|
8755
|
-
product,
|
8756
|
-
productId,
|
8757
|
-
variant,
|
8758
|
-
variantId
|
8759
|
-
} = props;
|
8760
|
-
const { apiKey: apiKeyFromContext, loadingStatus: configLoadingStatus, rebuyConfig } = useRebuyConfig();
|
8764
|
+
const { collection, collectionId, dataSource, limit, options, product, productId, variant, variantId } = props;
|
8765
|
+
const { apiKey, loadingStatus: configLoadingStatus, rebuyConfig } = useRebuyConfig();
|
8761
8766
|
const rebuyContext = useContext4(RebuyContext);
|
8762
8767
|
const [rebuyApiClient, setRebuyApiClient] = useState21(null);
|
8763
8768
|
const [initialized, setInitialized] = useState21(false);
|
@@ -8766,10 +8771,9 @@ var RebuyWidgetContainerBase = ({ children, ...props }) => {
|
|
8766
8771
|
const shopifyCollectionId = collection?.id ?? collectionId ?? null;
|
8767
8772
|
const [products, setProducts] = useState21([]);
|
8768
8773
|
const [metadata, setMetadata] = useState21();
|
8769
|
-
|
8770
|
-
|
8771
|
-
|
8772
|
-
const client = new RebuyClient3(finalApiKey);
|
8774
|
+
useEffect22(() => {
|
8775
|
+
if (!rebuyApiClient && apiKey && configLoadingStatus === "success") {
|
8776
|
+
const client = new RebuyClient3(apiKey);
|
8773
8777
|
const currentEndpoint = dataSource || "/api/v1/products/recommended";
|
8774
8778
|
if (rebuyContext?.contextParameters) {
|
8775
8779
|
const filteredParams = filterContextForWidgetEndpoints(rebuyContext.contextParameters, currentEndpoint);
|
@@ -8781,8 +8785,8 @@ var RebuyWidgetContainerBase = ({ children, ...props }) => {
|
|
8781
8785
|
setRebuyApiClient(client);
|
8782
8786
|
setInitialized(true);
|
8783
8787
|
}
|
8784
|
-
}, [
|
8785
|
-
|
8788
|
+
}, [apiKey, rebuyApiClient, configLoadingStatus, options, rebuyContext, dataSource]);
|
8789
|
+
useEffect22(() => {
|
8786
8790
|
if (rebuyApiClient && rebuyContext?.contextParameters) {
|
8787
8791
|
const currentEndpoint = dataSource || "/api/v1/products/recommended";
|
8788
8792
|
const filteredParams = filterContextForWidgetEndpoints(rebuyContext.contextParameters, currentEndpoint);
|
@@ -8809,7 +8813,7 @@ var RebuyWidgetContainerBase = ({ children, ...props }) => {
|
|
8809
8813
|
}
|
8810
8814
|
return req;
|
8811
8815
|
}, [dataSource, shopifyProductId, shopifyVariantId, shopifyCollectionId, limit]);
|
8812
|
-
|
8816
|
+
useEffect22(() => {
|
8813
8817
|
let isMounted = true;
|
8814
8818
|
if (!rebuyApiClient || !initialized || configLoadingStatus !== "success") return;
|
8815
8819
|
const fetchData = async () => {
|
@@ -8848,7 +8852,7 @@ var RebuyWidgetContainerBase = ({ children, ...props }) => {
|
|
8848
8852
|
);
|
8849
8853
|
const childProps = {
|
8850
8854
|
...props,
|
8851
|
-
apiKey
|
8855
|
+
apiKey,
|
8852
8856
|
cacheKey: rebuyConfig?.shop?.cache_key,
|
8853
8857
|
key: product?.id,
|
8854
8858
|
metadata,
|
@@ -8896,7 +8900,7 @@ var RebuyCompleteTheLook = (props) => {
|
|
8896
8900
|
};
|
8897
8901
|
|
8898
8902
|
// src/widgets/RebuyDynamicBundleProducts/RebuyDynamicBundleProducts.tsx
|
8899
|
-
import { useCallback as
|
8903
|
+
import { useCallback as useCallback15, useEffect as useEffect23, useState as useState22 } from "react";
|
8900
8904
|
|
8901
8905
|
// src/utils/convertToRebuyProduct.tsx
|
8902
8906
|
var convertToRebuyProduct = (isHydrogenReact, product) => {
|
@@ -9290,7 +9294,7 @@ var RebuyDynamicBundleProducts = (props) => {
|
|
9290
9294
|
products = []
|
9291
9295
|
} = props;
|
9292
9296
|
const [bundleProducts, setBundleProducts] = useState22([]);
|
9293
|
-
|
9297
|
+
useEffect23(() => {
|
9294
9298
|
const mainProduct = convertToRebuyProduct(isHydrogenReact || false, product);
|
9295
9299
|
const formattedProducts = products.map((product2) => {
|
9296
9300
|
return {
|
@@ -9301,14 +9305,14 @@ var RebuyDynamicBundleProducts = (props) => {
|
|
9301
9305
|
});
|
9302
9306
|
setBundleProducts([mainProduct, ...formattedProducts]);
|
9303
9307
|
}, [product, products, isHydrogenReact]);
|
9304
|
-
const onToggleBundleItem =
|
9308
|
+
const onToggleBundleItem = useCallback15(
|
9305
9309
|
(product2) => {
|
9306
9310
|
product2.selected = !product2.selected;
|
9307
9311
|
setBundleProducts([...bundleProducts]);
|
9308
9312
|
},
|
9309
9313
|
[bundleProducts]
|
9310
9314
|
);
|
9311
|
-
const onSelectVariant =
|
9315
|
+
const onSelectVariant = useCallback15(
|
9312
9316
|
(product2, variant_id) => {
|
9313
9317
|
const variant = product2.variants.nodes.find(({ id }) => id === variant_id);
|
9314
9318
|
if (variant) {
|
@@ -9354,7 +9358,7 @@ var RebuyDynamicBundleProducts = (props) => {
|
|
9354
9358
|
|
9355
9359
|
// src/widgets/RebuyProductAddOns/RebuyProductAddOns.tsx
|
9356
9360
|
import { Money as Money5 } from "@shopify/hydrogen-react";
|
9357
|
-
import { useCallback as
|
9361
|
+
import { useCallback as useCallback16, useEffect as useEffect24, useState as useState23 } from "react";
|
9358
9362
|
|
9359
9363
|
// src/widgets/RebuyProductAddOns/RebuyProductAddOnCard.tsx
|
9360
9364
|
import { Image as Image3 } from "@shopify/hydrogen";
|
@@ -9427,7 +9431,7 @@ var RebuyProductAddOns = (props) => {
|
|
9427
9431
|
const [addedItems, setAddedItems] = useState23(products);
|
9428
9432
|
const [subtotalWithProduct, setSubtotalWithProduct] = useState23();
|
9429
9433
|
const [subtotalWithOutProduct, setSubtotalWithOutProduct] = useState23();
|
9430
|
-
|
9434
|
+
useEffect24(() => {
|
9431
9435
|
let initialTotal = 0;
|
9432
9436
|
let currencyCode = "USD";
|
9433
9437
|
products.map((product2) => {
|
@@ -9457,7 +9461,7 @@ var RebuyProductAddOns = (props) => {
|
|
9457
9461
|
setAddedItems(products);
|
9458
9462
|
}
|
9459
9463
|
}, [products, product, isHydrogenReact, includeMainProduct]);
|
9460
|
-
const handleChange =
|
9464
|
+
const handleChange = useCallback16(
|
9461
9465
|
(event, product2) => {
|
9462
9466
|
const newProducts = [...products];
|
9463
9467
|
const productIndex = newProducts.findIndex((p) => p.id === product2.id);
|
@@ -9476,7 +9480,7 @@ var RebuyProductAddOns = (props) => {
|
|
9476
9480
|
},
|
9477
9481
|
[products]
|
9478
9482
|
);
|
9479
|
-
|
9483
|
+
useEffect24(() => {
|
9480
9484
|
let total = 0;
|
9481
9485
|
let currencyCode = "USD";
|
9482
9486
|
addedItems.forEach((item) => {
|
@@ -9549,7 +9553,7 @@ var RebuyProductAddOns = (props) => {
|
|
9549
9553
|
};
|
9550
9554
|
|
9551
9555
|
// src/widgets/RebuyProductRecommendations/RebuyProductRecommendations.module.css
|
9552
|
-
var result26 = { "container": "RebuyProductRecommendations_container", "productGrid": "RebuyProductRecommendations_productGrid"
|
9556
|
+
var result26 = { "container": "RebuyProductRecommendations_container", "productGrid": "RebuyProductRecommendations_productGrid" };
|
9553
9557
|
var RebuyProductRecommendations_default = result26;
|
9554
9558
|
|
9555
9559
|
// src/widgets/RebuyProductRecommendations/RebuyProductRecommendations.tsx
|
@@ -9569,7 +9573,7 @@ var RebuyProductRecommendations = (props) => {
|
|
9569
9573
|
}
|
9570
9574
|
return /* @__PURE__ */ jsxs32("section", { className: RebuyProductRecommendations_default.container, children: [
|
9571
9575
|
/* @__PURE__ */ jsx50(Title, { level: getTitleLevel(customTitleLevel), style: customTitleStyle, text: customTitle }),
|
9572
|
-
/* @__PURE__ */ jsx50("ul", { className: RebuyProductRecommendations_default.productGrid, children: products.map((product) => /* @__PURE__ */ jsx50("li", {
|
9576
|
+
/* @__PURE__ */ jsx50("ul", { className: RebuyProductRecommendations_default.productGrid, children: products.map((product) => /* @__PURE__ */ jsx50("li", { children: /* @__PURE__ */ jsx50(
|
9573
9577
|
ProductCard,
|
9574
9578
|
{
|
9575
9579
|
addToCartBtnText,
|
@@ -9582,6 +9586,190 @@ var RebuyProductRecommendations = (props) => {
|
|
9582
9586
|
] });
|
9583
9587
|
};
|
9584
9588
|
|
9589
|
+
// src/widgets/RebuyProductViewed/RebuyProductViewed.tsx
|
9590
|
+
import { RebuyClient as RebuyClient4 } from "@rebuy/rebuy";
|
9591
|
+
import * as Utilities6 from "@rebuy/rebuy/utilities";
|
9592
|
+
import { useEffect as useEffect25, useMemo as useMemo22, useState as useState24 } from "react";
|
9593
|
+
|
9594
|
+
// src/zustandStores/productViewed.ts
|
9595
|
+
import { create as create2 } from "zustand";
|
9596
|
+
var useProductViewedStore = create2((set) => ({
|
9597
|
+
customerId: null,
|
9598
|
+
setCustomerId: (customerId) => set({ customerId }),
|
9599
|
+
setUuid: (uuid) => set({ uuid }),
|
9600
|
+
uuid: null
|
9601
|
+
}));
|
9602
|
+
|
9603
|
+
// src/widgets/RebuyProductViewed/RebuyProductViewed.tsx
|
9604
|
+
var RebuyProductViewed = ({ ...props }) => {
|
9605
|
+
const { apiKey: apiKeyFromContext } = useRebuyConfig();
|
9606
|
+
const { customerId, product, productHandle, productId } = props;
|
9607
|
+
const [event, setEvent] = useState24(null);
|
9608
|
+
const [Rebuy, setRebuy] = useState24(null);
|
9609
|
+
const shopifyProductId = product?.id ?? productId ?? null;
|
9610
|
+
const [initialized, setInitialized] = useState24(false);
|
9611
|
+
const { setCustomerId, setUuid } = useProductViewedStore();
|
9612
|
+
const request = useMemo22(() => {
|
9613
|
+
const request2 = {
|
9614
|
+
parameters: {}
|
9615
|
+
};
|
9616
|
+
if (shopifyProductId) {
|
9617
|
+
const productNumericId = Utilities6.getIdFromGraphUrl(shopifyProductId, "Product");
|
9618
|
+
if (productNumericId !== null) {
|
9619
|
+
request2.parameters.shopify_product_id = productNumericId.toString();
|
9620
|
+
}
|
9621
|
+
} else if (productHandle) {
|
9622
|
+
request2.parameters.shopify_product_handle = productHandle;
|
9623
|
+
}
|
9624
|
+
return request2;
|
9625
|
+
}, [productHandle, shopifyProductId]);
|
9626
|
+
useEffect25(() => {
|
9627
|
+
const recordView = async () => {
|
9628
|
+
if (!Rebuy) {
|
9629
|
+
return;
|
9630
|
+
}
|
9631
|
+
try {
|
9632
|
+
const response = await Rebuy.trackProductViewed(request.parameters);
|
9633
|
+
setEvent(response.data);
|
9634
|
+
if (response.data === "Received" && request.parameters.uuid) {
|
9635
|
+
setUuid(request.parameters.uuid);
|
9636
|
+
if (customerId && customerId !== "") {
|
9637
|
+
setCustomerId(customerId);
|
9638
|
+
}
|
9639
|
+
}
|
9640
|
+
} catch (error) {
|
9641
|
+
console.error("Error tracking product view:", error);
|
9642
|
+
}
|
9643
|
+
};
|
9644
|
+
if (!initialized && apiKeyFromContext) {
|
9645
|
+
const client = new RebuyClient4(apiKeyFromContext);
|
9646
|
+
setRebuy(client);
|
9647
|
+
setInitialized(true);
|
9648
|
+
return;
|
9649
|
+
}
|
9650
|
+
recordView();
|
9651
|
+
}, [request.parameters, initialized, apiKeyFromContext, Rebuy]);
|
9652
|
+
if (Object.keys(request.parameters).length === 0) {
|
9653
|
+
console.warn("No parameters!");
|
9654
|
+
return;
|
9655
|
+
}
|
9656
|
+
return null;
|
9657
|
+
};
|
9658
|
+
|
9659
|
+
// src/widgets/RebuyRecentlyViewedProducts/RebuyRecentlyViewedProducts.tsx
|
9660
|
+
import { RebuyClient as RebuyClient5 } from "@rebuy/rebuy";
|
9661
|
+
import { flattenConnection as flattenConnection5 } from "@shopify/hydrogen";
|
9662
|
+
import { useContext as useContext5, useEffect as useEffect26, useMemo as useMemo23, useState as useState25 } from "react";
|
9663
|
+
|
9664
|
+
// src/widgets/RebuyRecentlyViewedProducts/RebuyRecentlyViewedProducts.module.css
|
9665
|
+
var result27 = { "rebuy-recently-viewed-products-container": "RebuyRecentlyViewedProducts_rebuy-recently-viewed-products-container", "product-grid": "RebuyRecentlyViewedProducts_product-grid" };
|
9666
|
+
var RebuyRecentlyViewedProducts_default = result27;
|
9667
|
+
|
9668
|
+
// src/widgets/RebuyRecentlyViewedProducts/RebuyRecentlyViewedProducts.tsx
|
9669
|
+
import { jsx as jsx51, jsxs as jsxs33 } from "react/jsx-runtime";
|
9670
|
+
var RebuyRecentlyViewedProducts = (props) => {
|
9671
|
+
const {
|
9672
|
+
addToCartBtnText = "Add to cart",
|
9673
|
+
addToCartCallback,
|
9674
|
+
customTitle = `Your recently viewed products`,
|
9675
|
+
customTitleLevel = "h2",
|
9676
|
+
customTitleStyle,
|
9677
|
+
limit,
|
9678
|
+
options,
|
9679
|
+
productId
|
9680
|
+
} = props;
|
9681
|
+
const { customerId, uuid } = useProductViewedStore();
|
9682
|
+
const { apiKey, loadingStatus: configLoadingStatus, rebuyConfig } = useRebuyConfig();
|
9683
|
+
const rebuyContext = useContext5(RebuyContext);
|
9684
|
+
const [rebuyApiClient, setRebuyApiClient] = useState25(null);
|
9685
|
+
const [initialized, setInitialized] = useState25(false);
|
9686
|
+
const [products, setProducts] = useState25([]);
|
9687
|
+
const [metadata, setMetadata] = useState25();
|
9688
|
+
const rebuyConfigKey = rebuyConfig?.shop?.cache_key;
|
9689
|
+
const endpoint = customerId && customerId !== "" ? `/api/v1/products/viewed?key=${rebuyConfigKey}&customer_id=${customerId}` : `/api/v1/products/viewed?key=${rebuyConfigKey}&uuid=${uuid}`;
|
9690
|
+
useEffect26(() => {
|
9691
|
+
if (!rebuyApiClient && apiKey && configLoadingStatus === "success") {
|
9692
|
+
const client = new RebuyClient5(apiKey);
|
9693
|
+
if (rebuyContext?.contextParameters) {
|
9694
|
+
const filteredParams = filterContextForWidgetEndpoints(rebuyContext.contextParameters, endpoint);
|
9695
|
+
client.setContextParameters(filteredParams);
|
9696
|
+
}
|
9697
|
+
if (options) {
|
9698
|
+
client.setDefaultParameters(options);
|
9699
|
+
}
|
9700
|
+
setRebuyApiClient(client);
|
9701
|
+
setInitialized(true);
|
9702
|
+
}
|
9703
|
+
}, [apiKey, rebuyApiClient, configLoadingStatus, options, rebuyContext, uuid, endpoint]);
|
9704
|
+
useEffect26(() => {
|
9705
|
+
if (rebuyApiClient && rebuyContext?.contextParameters) {
|
9706
|
+
const filteredParams = filterContextForWidgetEndpoints(rebuyContext.contextParameters, endpoint);
|
9707
|
+
rebuyApiClient.setContextParameters(filteredParams);
|
9708
|
+
}
|
9709
|
+
}, [rebuyApiClient, rebuyContext, uuid, endpoint]);
|
9710
|
+
const request = useMemo23(() => {
|
9711
|
+
const req = {
|
9712
|
+
endpoint,
|
9713
|
+
params: {}
|
9714
|
+
// Keeping this object generic to allow for custom endpoints
|
9715
|
+
};
|
9716
|
+
if (limit) {
|
9717
|
+
req.params.limit = limit;
|
9718
|
+
}
|
9719
|
+
return req;
|
9720
|
+
}, [limit, uuid, endpoint]);
|
9721
|
+
useEffect26(() => {
|
9722
|
+
let isMounted = true;
|
9723
|
+
if (!rebuyApiClient || !initialized || configLoadingStatus !== "success") return;
|
9724
|
+
const fetchData = async () => {
|
9725
|
+
try {
|
9726
|
+
const { data, metadata: metadata2 } = await rebuyApiClient.getStorefrontData(
|
9727
|
+
request.endpoint,
|
9728
|
+
request.params
|
9729
|
+
);
|
9730
|
+
if (isMounted) {
|
9731
|
+
setProducts(
|
9732
|
+
Array.isArray(data) ? data.filter((p) => p.id !== productId).map((p) => ({
|
9733
|
+
...p,
|
9734
|
+
variants: {
|
9735
|
+
nodes: p.variants ? flattenConnection5(p.variants) : []
|
9736
|
+
}
|
9737
|
+
})) : []
|
9738
|
+
);
|
9739
|
+
setMetadata(metadata2);
|
9740
|
+
}
|
9741
|
+
} catch (error) {
|
9742
|
+
console.error("[RebuyWidgetContainer] Error fetching widget data:", error);
|
9743
|
+
if (isMounted) {
|
9744
|
+
setProducts([]);
|
9745
|
+
setMetadata(void 0);
|
9746
|
+
}
|
9747
|
+
}
|
9748
|
+
};
|
9749
|
+
fetchData();
|
9750
|
+
return () => {
|
9751
|
+
isMounted = false;
|
9752
|
+
};
|
9753
|
+
}, [rebuyApiClient, initialized, request, configLoadingStatus, productId]);
|
9754
|
+
if (products.length === 0) {
|
9755
|
+
rebuyDebugLog.log("widget-recently-viewed-products" /* WIDGET_RECENTLY_VIEWED_PRODUCTS */, "RebuyRecentlyViewedProducts: No products found");
|
9756
|
+
return null;
|
9757
|
+
}
|
9758
|
+
return /* @__PURE__ */ jsxs33("div", { className: RebuyRecentlyViewedProducts_default["rebuy-recently-viewed-products-container"], children: [
|
9759
|
+
/* @__PURE__ */ jsx51(Title, { level: getTitleLevel(customTitleLevel), style: customTitleStyle, text: customTitle }),
|
9760
|
+
/* @__PURE__ */ jsx51("ul", { className: RebuyRecentlyViewedProducts_default["product-grid"], children: products?.map((product) => /* @__PURE__ */ jsx51("li", { children: /* @__PURE__ */ jsx51(
|
9761
|
+
ProductCard,
|
9762
|
+
{
|
9763
|
+
addToCartBtnText,
|
9764
|
+
addToCartCallback,
|
9765
|
+
product,
|
9766
|
+
productCardTitleLevel: getTitleLevel("h2")
|
9767
|
+
},
|
9768
|
+
product.id
|
9769
|
+
) }, product.id)) })
|
9770
|
+
] });
|
9771
|
+
};
|
9772
|
+
|
9585
9773
|
// src/constants/api.ts
|
9586
9774
|
var REBUY_THEME_STYLES_BASE_URL = "https://rebuyengine.com/api/v1/theme-styles";
|
9587
9775
|
|
@@ -9603,6 +9791,8 @@ export {
|
|
9603
9791
|
RebuyHydrogenReactContextProvider,
|
9604
9792
|
RebuyProductAddOns,
|
9605
9793
|
RebuyProductRecommendations,
|
9794
|
+
RebuyProductViewed,
|
9795
|
+
RebuyRecentlyViewedProducts,
|
9606
9796
|
RebuySmartCart,
|
9607
9797
|
RebuyWidget,
|
9608
9798
|
RebuyWidgetContainer,
|