@gem-sdk/components 12.0.0-dev.96 → 12.0.0-dev.97
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/cjs/post-purchase/product/hooks/useGetMoneyLines.js +1 -1
- package/dist/cjs/post-purchase/product/hooks/useProductPriceBreakdown.js +1 -1
- package/dist/cjs/product/components/product-button/common/classes.js +1 -1
- package/dist/cjs/product/components/product-button/hooks/useAddToCart.js +1 -1
- package/dist/cjs/product/components/product-button/hooks/useCartOperations.js +1 -1
- package/dist/cjs/product/components/product-button/hooks/useDispatchAfterSubmitEvent.js +1 -1
- package/dist/esm/post-purchase/product/hooks/useGetMoneyLines.js +1 -1
- package/dist/esm/post-purchase/product/hooks/useProductPriceBreakdown.js +1 -1
- package/dist/esm/product/components/product-button/common/classes.js +1 -1
- package/dist/esm/product/components/product-button/hooks/useAddToCart.js +1 -1
- package/dist/esm/product/components/product-button/hooks/useCartOperations.js +1 -1
- package/dist/esm/product/components/product-button/hooks/useDispatchAfterSubmitEvent.js +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core"),useDynamicProduct=require("./useDynamicProduct.js"),useRecurringSubtotal=require("./useRecurringSubtotal.js"),useProductPriceBreakdown=require("./useProductPriceBreakdown.js");const useGetMoneyLines=(e,t)=>{let{isDynamicProduct:u,dynamicPrice:i,dynamicDiscount:o,isEnableDynamicDiscount:s}=useDynamicProduct.useDynamicProduct(),{t:r}=core.useI18nStore(),
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),useDynamicProduct=require("./useDynamicProduct.js"),useRecurringSubtotal=require("./useRecurringSubtotal.js"),useProductPriceBreakdown=require("./useProductPriceBreakdown.js"),index=require("../constants/index.js");const useGetMoneyLines=(e,t)=>{let{isDynamicProduct:u,dynamicPrice:i,dynamicDiscount:o,isEnableDynamicDiscount:s}=useDynamicProduct.useDynamicProduct(),{t:r}=core.useI18nStore(),n=useRecurringSubtotal.useRecurringSubtotal(),l=core.useProductStore(e=>e.subscriptionSellingType),{subTotalMoneyFormatted:a,offerDiscountTotal:c,discountMoneyFormatted:d,totalMoneyFormatted:b}=useProductPriceBreakdown.useProductPriceBreakdown(),p=()=>{let p=[];return!1!==e.isShowSubTotalLabel&&p.push({title:t.subTotalLabel,money:u?i:a,uniqueId:"subTotalLabel"}),!1!==e.isShowDiscountLabel&&p.push({title:t.discountLabel,money:u&&o&&s?`${o.value}%`:c>0?d:"No discount",uniqueId:"discountLabel"}),!1!==e.isShowShippingLabel&&p.push({title:t.shippingLabel,uniqueId:"shippingLabel",tooltip:{content:"Shipping fee will be calculated on real offer page",width:"23em"}}),!1!==e.isShowTaxesLabel&&p.push({title:t.taxesLabel,uniqueId:"taxesLabel",tooltip:{content:"Taxes will be calculated on real offer page",width:"20em"}}),!1!==e.isShowTotalLabel&&p.push({title:t.totalLabel,money:u?i:b,uniqueId:"totalLabel"}),t?.isShowRecurringTotalLabel!==!1&&n&&l!==index.SubscriptionEnum.ONE_TIME&&p.push({title:r("Recurring subtotal"),money:n,uniqueId:"recurringTotalLabel",subTitle:r("Doesn't include shipping, tax or duties")}),p};return{getMoneyLines:p}};exports.useGetMoneyLines=useGetMoneyLines;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),core=require("@gem-sdk/core"),getPrice=require("../helpers/product-price-breakdown/getPrice.js");const useProductPriceBreakdown=()=>{let e=core.useProductOfferDiscount(),r=core.useCurrentVariant(),o=core.useProduct(),
|
|
1
|
+
"use strict";var React=require("react"),core=require("@gem-sdk/core"),getPrice=require("../helpers/product-price-breakdown/getPrice.js"),index=require("../constants/index.js");const useProductPriceBreakdown=()=>{let e=core.useProductOfferDiscount(),r=core.useCurrentVariant(),o=core.useProduct(),i=core.useProductStore(e=>e.selectedSellingPlan),c=core.useProductStore(e=>e.subscriptionSellingType),{quantity:n}=core.useQuantity(),t=React.useMemo(()=>{if(!i||c===index.SubscriptionEnum.ONE_TIME)return null;let e=r?.sellingPlanGroups??o?.sellingPlanGroups??[];for(let r of e)if(r?.sellingPlans){let e=r.sellingPlans.find(e=>e?.baseID===i);if(e)return e}return null},[r,o,i,c]),s=core.convertDecimalToNumber(r?.price)??0,u=React.useMemo(()=>!t||s<=0?0:getPrice.calculateSellingPlanDiscount({variantPrice:s,pricingPolicies:t.pricingPolicies}),[t,s]),a=Math.max(0,parseFloat(core.shopifyPriceRounding(s-u,2))),l=Math.max(0,parseFloat(core.shopifyPriceRounding(a*(n||1),2))),P=core.useFormatMoney(l,!1),d=e*(n||1),p=parseFloat(core.shopifyPriceRounding(d,2)),g=core.useFormatMoney(p,!1),f=core.shopifyPriceRounding(p,2),m=parseFloat(core.shopifyPriceRounding(l-parseFloat(f),2)),y=core.useFormatMoney(m>0?m:0,!1);return{price:s,sellingPlanDiscountPerUnit:u,priceAfterSellingPlanDiscount:a,subTotal:l,subTotalMoneyFormatted:P,offerDiscountTotal:d,discountWithQuantity:p,discountMoneyFormatted:g,totalMoneyFormatted:y}};exports.useProductPriceBreakdown=useProductPriceBreakdown;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";const getButtonClasses=({isDisabled:t,isLiquid:s})=>({"gp-cursor-default gp-opacity-30":t,"btn-disabled":t&&s}),getAddToCartButtonClasses=t=>{let{isLiquid:s=!1,isDisabled:e=!1}=t??{};return{...getButtonClasses({isDisabled:e,isLiquid:s}),"gp-button-atc tcustomizer-submit-button":s}},getSoldOutButtonClasses=t=>{let{isLiquid:s=!1}=t??{};return{...getButtonClasses({isDisabled:!0,isLiquid:s}),"gp-button-sold-out":s}},getProductPriceClasses=()=>({"gp-button-price":!0});exports.getAddToCartButtonClasses=getAddToCartButtonClasses,exports.getButtonClasses=getButtonClasses,exports.getProductPriceClasses=getProductPriceClasses,exports.getSoldOutButtonClasses=getSoldOutButtonClasses;
|
|
1
|
+
"use strict";const getButtonClasses=({isDisabled:t,isLiquid:s})=>({"gp-cursor-default gp-opacity-30":t,"btn-disabled":t&&s,"gp-add-to-cart":!s}),getAddToCartButtonClasses=t=>{let{isLiquid:s=!1,isDisabled:e=!1}=t??{};return{...getButtonClasses({isDisabled:e,isLiquid:s}),"gp-button-atc tcustomizer-submit-button":s}},getSoldOutButtonClasses=t=>{let{isLiquid:s=!1}=t??{};return{...getButtonClasses({isDisabled:!0,isLiquid:s}),"gp-button-sold-out":s}},getProductPriceClasses=()=>({"gp-button-price":!0});exports.getAddToCartButtonClasses=getAddToCartButtonClasses,exports.getButtonClasses=getButtonClasses,exports.getProductPriceClasses=getProductPriceClasses,exports.getSoldOutButtonClasses=getSoldOutButtonClasses;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core"),React=require("react"),tracking=require("../../../helpers/tracking.js"),useDispatchAfterSubmitEvent=require("./useDispatchAfterSubmitEvent.js"),useCartMessage=require("./useCartMessage.js"),useCartOperations=require("./useCartOperations.js");const useBtnAddToCart=({styles:e,setting:r,builderProps:t})=>{let s=React.useRef(null),{isEditMode:u,isPreviewSharePageMode:a}=core.useRenderMode(),i=core.useProduct(),{currency:c}=core.useCurrency(),{quantity:n}=core.useQuantity(),o=core.useProductProperties(),l=core.useCurrentVariant(),{hasPreSelected:d}=core.useHasPreSelected(),b=core.useStickyStore(e=>e.setStickyVisible),v=core.useProductStore(e=>e.updateIsSubmit),C=useDispatchAfterSubmitEvent.
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),React=require("react"),tracking=require("../../../helpers/tracking.js"),useDispatchAfterSubmitEvent=require("./useDispatchAfterSubmitEvent.js"),useCartMessage=require("./useCartMessage.js"),useCartOperations=require("./useCartOperations.js");const useBtnAddToCart=({styles:e,setting:r,builderProps:t})=>{let s=React.useRef(null),{isEditMode:u,isPreviewSharePageMode:a}=core.useRenderMode(),i=core.useProduct(),{currency:c}=core.useCurrency(),{quantity:n}=core.useQuantity(),o=core.useProductProperties(),l=core.useCurrentVariant(),{hasPreSelected:d}=core.useHasPreSelected(),b=core.useStickyStore(e=>e.setStickyVisible),v=core.useProductStore(e=>e.updateIsSubmit),C=useDispatchAfterSubmitEvent.useDispatchInteractionEvent(t?.uid),p=useDispatchAfterSubmitEvent.useDispatchCustomEvent({product:i,currentVariant:l,quantity:n}),{showMessage:g,notiComponent:f}=useCartMessage.useCartMessage(e,r),{handleSuccess:k,handleError:S,cartId:m}=useCartOperations.useCartOperations({setting:r,showMessage:g,dispatchInteractionEvent:C,dispatchCustomEvent:p}),{isMutating:D,trigger:I}=core.useCreateCart({onSuccess:k,onError:S}),{isMutating:E,trigger:h}=core.useAddToCart({onSuccess:k,onError:S});React.useEffect(()=>{let e=new IntersectionObserver(e=>{let r=e[0];b(r?.isIntersecting)},{threshold:.1}),r=s.current;return s.current&&e.observe(s.current),()=>{r&&e.unobserve(r)}},[b]);let A=React.useCallback(()=>{if(!l?.baseID||!n||!i?.baseID||void 0!==d&&!d||u||a)return;let e=o?.some(e=>e.required&&!e.value);if(v(!0),e)return;let t=o?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));tracking.addToCartTracking({quantity:n,currency:c,id:i?.baseID,name:i?.title,brand:i?.vendor,sku:l.sku,price:core.convertDecimalToNumber(l?.price),variant:l.title});let s={quantity:n,attributes:t,variantId:l.baseID};r?.actionEffect!=="buy-now"&&m?h({cartId:m,lines:[s]}):I({items:[s]})},[u,a,m,c,n,o,d,i?.title,i?.vendor,i?.baseID,l?.sku,l?.price,l?.title,l?.baseID,r?.actionEffect,I,h,v]),q=core.useCurrentVariantInStock(),y=D||E,M=l?r?.outOfStockLabel:"Unavailable";return{addToCartRef:s,isLoading:y,isInStock:q,notiComponent:f,outOfStockLabel:M,addToCart:A}};exports.useBtnAddToCart=useBtnAddToCart;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var React=require("react"),core=require("@gem-sdk/core");const useCartOperations=(e,r,t)=>{let{openCart:
|
|
1
|
+
"use strict";var React=require("react"),core=require("@gem-sdk/core");const useCartOperations=({setting:e,showMessage:r,dispatchInteractionEvent:t,dispatchCustomEvent:o})=>{let{openCart:c}=core.useCartUI(),{storefrontToken:s}=core.useStoreFront(),{cartId:a,updateCartId:n}=core.useCartId(),u=React.useCallback((e,r)=>{e?.enableMessage&&r(e.successMessage||"","success"),c()},[c]),l=(e,r)=>{if(!e.checkoutUrl)return;let t=r?`${e.checkoutUrl}?access_token=${r}`:e.checkoutUrl;window.location.href=t},i=e=>{e?.customURL?.link&&("_blank"===e.customURL.target?window.open(e.customURL.link,"_blank"):window.location.href=e.customURL.link)},k=React.useCallback(a=>{let k={"open-cart-drawer":()=>c(),"go-to-url":()=>i(e),"buy-now":()=>l(a,s),"continue-shopping":()=>u(e,r)};e?.actionEffect!=="buy-now"&&n(a.id);let b=k[e?.actionEffect];b&&b(),t(),o()},[e,s,c,r,n,t,u,o]),b=React.useCallback(t=>{e?.enableMessage&&(t?.[0]?.code==="INVALID"?r(t[0].message||"","error"):r(e.errorMessage||"","error"))},[e,r]);return{cartId:a,handleSuccess:k,handleError:b}};exports.useCartOperations=useCartOperations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var core=require("@gem-sdk/core"),React=require("react");const
|
|
1
|
+
"use strict";var core=require("@gem-sdk/core"),React=require("react");const useDispatchInteractionEvent=t=>{let{trigger:e}=core.useInteraction();return React.useCallback(()=>{let a=document.querySelector(`[data-id="${t}"]`);if(!a)return;let s=JSON.parse(a?.getAttribute("gp-interaction-after-submit")??"{}");Object.keys(s).length<=0||Object.entries(s).forEach(([s])=>{e({event:"gp:after-submit",selector:`[data-id="${t}"]`,data:Number(s),element:a})})},[t,e])},useDispatchCustomEvent=({product:t,currentVariant:e,quantity:a})=>React.useCallback(()=>{let s=new CustomEvent("gp:add-to-cart-success",{detail:{data:{product:t,variant:e,quantity:a}}});window.dispatchEvent(s)},[t,e,a]);exports.useDispatchCustomEvent=useDispatchCustomEvent,exports.useDispatchInteractionEvent=useDispatchInteractionEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useI18nStore as e}from"@gem-sdk/core";import{useDynamicProduct as
|
|
1
|
+
import{useI18nStore as e,useProductStore as t}from"@gem-sdk/core";import{useDynamicProduct as i}from"./useDynamicProduct.js";import{useRecurringSubtotal as o}from"./useRecurringSubtotal.js";import{useProductPriceBreakdown as l}from"./useProductPriceBreakdown.js";import{SubscriptionEnum as u}from"../constants/index.js";let useGetMoneyLines=(s,a)=>{let{isDynamicProduct:n,dynamicPrice:r,dynamicDiscount:p,isEnableDynamicDiscount:b}=i(),{t:c}=e(),d=o(),h=t(e=>e.subscriptionSellingType),{subTotalMoneyFormatted:L,offerDiscountTotal:m,discountMoneyFormatted:g,totalMoneyFormatted:w}=l(),S=()=>{let e=[];return!1!==s.isShowSubTotalLabel&&e.push({title:a.subTotalLabel,money:n?r:L,uniqueId:"subTotalLabel"}),!1!==s.isShowDiscountLabel&&e.push({title:a.discountLabel,money:n&&p&&b?`${p.value}%`:m>0?g:"No discount",uniqueId:"discountLabel"}),!1!==s.isShowShippingLabel&&e.push({title:a.shippingLabel,uniqueId:"shippingLabel",tooltip:{content:"Shipping fee will be calculated on real offer page",width:"23em"}}),!1!==s.isShowTaxesLabel&&e.push({title:a.taxesLabel,uniqueId:"taxesLabel",tooltip:{content:"Taxes will be calculated on real offer page",width:"20em"}}),!1!==s.isShowTotalLabel&&e.push({title:a.totalLabel,money:n?r:w,uniqueId:"totalLabel"}),a?.isShowRecurringTotalLabel!==!1&&d&&h!==u.ONE_TIME&&e.push({title:c("Recurring subtotal"),money:d,uniqueId:"recurringTotalLabel",subTitle:c("Doesn't include shipping, tax or duties")}),e};return{getMoneyLines:S}};export{useGetMoneyLines};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useMemo as e}from"react";import{useProductOfferDiscount as r,useCurrentVariant as l,useProduct as i,useProductStore as t,useQuantity as
|
|
1
|
+
import{useMemo as e}from"react";import{useProductOfferDiscount as r,useCurrentVariant as l,useProduct as i,useProductStore as t,useQuantity as o,convertDecimalToNumber as n,shopifyPriceRounding as a,useFormatMoney as s}from"@gem-sdk/core";import{calculateSellingPlanDiscount as p}from"../helpers/product-price-breakdown/getPrice.js";import{SubscriptionEnum as c}from"../constants/index.js";let useProductPriceBreakdown=()=>{let u=r(),P=l(),m=i(),d=t(e=>e.selectedSellingPlan),f=t(e=>e.subscriptionSellingType),{quantity:g}=o(),F=e(()=>{if(!d||f===c.ONE_TIME)return null;let e=P?.sellingPlanGroups??m?.sellingPlanGroups??[];for(let r of e)if(r?.sellingPlans){let e=r.sellingPlans.find(e=>e?.baseID===d);if(e)return e}return null},[P,m,d,f]),k=n(P?.price)??0,x=e(()=>!F||k<=0?0:p({variantPrice:k,pricingPolicies:F.pricingPolicies}),[F,k]),b=Math.max(0,parseFloat(a(k-x,2))),h=Math.max(0,parseFloat(a(b*(g||1),2))),w=s(h,!1),M=u*(g||1),j=parseFloat(a(M,2)),B=s(j,!1),E=a(j,2),G=parseFloat(a(h-parseFloat(E),2)),I=s(G>0?G:0,!1);return{price:k,sellingPlanDiscountPerUnit:x,priceAfterSellingPlanDiscount:b,subTotal:h,subTotalMoneyFormatted:w,offerDiscountTotal:M,discountWithQuantity:j,discountMoneyFormatted:B,totalMoneyFormatted:I}};export{useProductPriceBreakdown};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
let getButtonClasses=({isDisabled:t,isLiquid:s})=>({"gp-cursor-default gp-opacity-30":t,"btn-disabled":t&&s}),getAddToCartButtonClasses=t=>{let{isLiquid:s=!1,isDisabled:e=!1}=t??{};return{...getButtonClasses({isDisabled:e,isLiquid:s}),"gp-button-atc tcustomizer-submit-button":s}},getSoldOutButtonClasses=t=>{let{isLiquid:s=!1}=t??{};return{...getButtonClasses({isDisabled:!0,isLiquid:s}),"gp-button-sold-out":s}},getProductPriceClasses=()=>({"gp-button-price":!0});export{getAddToCartButtonClasses,getButtonClasses,getProductPriceClasses,getSoldOutButtonClasses};
|
|
1
|
+
let getButtonClasses=({isDisabled:t,isLiquid:s})=>({"gp-cursor-default gp-opacity-30":t,"btn-disabled":t&&s,"gp-add-to-cart":!s}),getAddToCartButtonClasses=t=>{let{isLiquid:s=!1,isDisabled:e=!1}=t??{};return{...getButtonClasses({isDisabled:e,isLiquid:s}),"gp-button-atc tcustomizer-submit-button":s}},getSoldOutButtonClasses=t=>{let{isLiquid:s=!1}=t??{};return{...getButtonClasses({isDisabled:!0,isLiquid:s}),"gp-button-sold-out":s}},getProductPriceClasses=()=>({"gp-button-price":!0});export{getAddToCartButtonClasses,getButtonClasses,getProductPriceClasses,getSoldOutButtonClasses};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useRenderMode as e,useProduct as t,useCurrency as r,useQuantity as i,useProductProperties as s,useCurrentVariant as n,useHasPreSelected as o,useStickyStore as a,useProductStore as u,useCreateCart as l,useAddToCart as c,convertDecimalToNumber as m,useCurrentVariantInStock as b}from"@gem-sdk/core";import{useRef as d,useEffect as f,useCallback as p}from"react";import{addToCartTracking as v}from"../../../helpers/tracking.js";import{
|
|
1
|
+
import{useRenderMode as e,useProduct as t,useCurrency as r,useQuantity as i,useProductProperties as s,useCurrentVariant as n,useHasPreSelected as o,useStickyStore as a,useProductStore as u,useCreateCart as l,useAddToCart as c,convertDecimalToNumber as m,useCurrentVariantInStock as b}from"@gem-sdk/core";import{useRef as d,useEffect as f,useCallback as p}from"react";import{addToCartTracking as v}from"../../../helpers/tracking.js";import{useDispatchInteractionEvent as g,useDispatchCustomEvent as I}from"./useDispatchAfterSubmitEvent.js";import{useCartMessage as k}from"./useCartMessage.js";import{useCartOperations as D}from"./useCartOperations.js";let useBtnAddToCart=({styles:S,setting:E,builderProps:h})=>{let j=d(null),{isEditMode:y,isPreviewSharePageMode:C}=e(),A=t(),{currency:M}=r(),{quantity:O}=i(),w=s(),B=n(),{hasPreSelected:T}=o(),q=a(e=>e.setStickyVisible),x=u(e=>e.updateIsSubmit),L=g(h?.uid),U=I({product:A,currentVariant:B,quantity:O}),{showMessage:V,notiComponent:z}=k(S,E),{handleSuccess:F,handleError:G,cartId:H}=D({setting:E,showMessage:V,dispatchInteractionEvent:L,dispatchCustomEvent:U}),{isMutating:J,trigger:K}=l({onSuccess:F,onError:G}),{isMutating:N,trigger:P}=c({onSuccess:F,onError:G});f(()=>{let e=new IntersectionObserver(e=>{let t=e[0];q(t?.isIntersecting)},{threshold:.1}),t=j.current;return j.current&&e.observe(j.current),()=>{t&&e.unobserve(t)}},[q]);let Q=p(()=>{if(!B?.baseID||!O||!A?.baseID||void 0!==T&&!T||y||C)return;let e=w?.some(e=>e.required&&!e.value);if(x(!0),e)return;let t=w?.filter(e=>!!e.value)?.map(e=>({key:e.key,value:e.value}));v({quantity:O,currency:M,id:A?.baseID,name:A?.title,brand:A?.vendor,sku:B.sku,price:m(B?.price),variant:B.title});let r={quantity:O,attributes:t,variantId:B.baseID};E?.actionEffect!=="buy-now"&&H?P({cartId:H,lines:[r]}):K({items:[r]})},[y,C,H,M,O,w,T,A?.title,A?.vendor,A?.baseID,B?.sku,B?.price,B?.title,B?.baseID,E?.actionEffect,K,P,x]),R=b(),W=J||N,X=B?E?.outOfStockLabel:"Unavailable";return{addToCartRef:j,isLoading:W,isInStock:R,notiComponent:z,outOfStockLabel:X,addToCart:Q}};export{useBtnAddToCart};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback as e}from"react";import{useCartUI as o,useStoreFront as r,useCartId as t}from"@gem-sdk/core";let useCartOperations=(s,c,n)=>{let{openCart:
|
|
1
|
+
import{useCallback as e}from"react";import{useCartUI as o,useStoreFront as r,useCartId as t}from"@gem-sdk/core";let useCartOperations=({setting:s,showMessage:c,dispatchInteractionEvent:n,dispatchCustomEvent:a})=>{let{openCart:i}=o(),{storefrontToken:l}=r(),{cartId:u,updateCartId:k}=t(),m=e((e,o)=>{e?.enableMessage&&o(e.successMessage||"","success"),i()},[i]),f=(e,o)=>{if(!e.checkoutUrl)return;let r=o?`${e.checkoutUrl}?access_token=${o}`:e.checkoutUrl;window.location.href=r},g=e=>{e?.customURL?.link&&("_blank"===e.customURL.target?window.open(e.customURL.link,"_blank"):window.location.href=e.customURL.link)},p=e(e=>{let o={"open-cart-drawer":()=>i(),"go-to-url":()=>g(s),"buy-now":()=>f(e,l),"continue-shopping":()=>m(s,c)};s?.actionEffect!=="buy-now"&&k(e.id);let r=o[s?.actionEffect];r&&r(),n(),a()},[s,l,i,c,k,n,m,a]),w=e(e=>{s?.enableMessage&&(e?.[0]?.code==="INVALID"?c(e[0].message||"","error"):c(s.errorMessage||"","error"))},[s,c]);return{cartId:u,handleSuccess:p,handleError:w}};export{useCartOperations};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useInteraction as t}from"@gem-sdk/core";import{useCallback as e}from"react";let
|
|
1
|
+
import{useInteraction as t}from"@gem-sdk/core";import{useCallback as e}from"react";let useDispatchInteractionEvent=a=>{let{trigger:r}=t();return e(()=>{let t=document.querySelector(`[data-id="${a}"]`);if(!t)return;let e=JSON.parse(t?.getAttribute("gp-interaction-after-submit")??"{}");Object.keys(e).length<=0||Object.entries(e).forEach(([e])=>{r({event:"gp:after-submit",selector:`[data-id="${a}"]`,data:Number(e),element:t})})},[a,r])},useDispatchCustomEvent=({product:t,currentVariant:a,quantity:r})=>e(()=>{let e=new CustomEvent("gp:add-to-cart-success",{detail:{data:{product:t,variant:a,quantity:r}}});window.dispatchEvent(e)},[t,a,r]);export{useDispatchCustomEvent,useDispatchInteractionEvent};
|