@anker-in/lib 1.1.0 → 1.1.2-beta.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/.turbo/turbo-build.log +10 -6
- package/.turbo/turbo-test.log +1 -1
- package/dist/cart/context/index.d.ts +47 -0
- package/dist/cart/context/index.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useAddToCart.d.ts +30 -0
- package/dist/cart/hooks/basic/useAddToCart.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useApplyCartCodes.d.ts +11 -0
- package/dist/cart/hooks/basic/useApplyCartCodes.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useCreateCart.d.ts +7 -0
- package/dist/cart/hooks/basic/useCreateCart.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useRemoveCartCodes.d.ts +11 -0
- package/dist/cart/hooks/basic/useRemoveCartCodes.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useRemoveCartLines.d.ts +11 -0
- package/dist/cart/hooks/basic/useRemoveCartLines.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useUpdateCartAttributes.d.ts +8 -0
- package/dist/cart/hooks/basic/useUpdateCartAttributes.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts +8 -0
- package/dist/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts.map +1 -0
- package/dist/cart/hooks/basic/useUpdateCartLines.d.ts +8 -0
- package/dist/cart/hooks/basic/useUpdateCartLines.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useCalcAutoFreeGift.d.ts +10 -0
- package/dist/cart/hooks/feature/useCalcAutoFreeGift.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useCalcOrderDiscount.d.ts +21 -0
- package/dist/cart/hooks/feature/useCalcOrderDiscount.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useCartAttributes.d.ts +10 -0
- package/dist/cart/hooks/feature/useCartAttributes.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useCartItemQuantityLimit.d.ts +19 -0
- package/dist/cart/hooks/feature/useCartItemQuantityLimit.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useScriptAutoFreeGift.d.ts +37 -0
- package/dist/cart/hooks/feature/useScriptAutoFreeGift.d.ts.map +1 -0
- package/dist/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts +9 -0
- package/dist/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts.map +1 -0
- package/dist/cart/track/gtm.d.ts +26 -0
- package/dist/cart/track/gtm.d.ts.map +1 -0
- package/dist/cart/types/autoFreeGift.d.ts +135 -0
- package/dist/cart/types/autoFreeGift.d.ts.map +1 -0
- package/dist/cart/types/orderDiscount.d.ts +35 -0
- package/dist/cart/types/orderDiscount.d.ts.map +1 -0
- package/dist/cart/types/priceDiscount.d.ts +20 -0
- package/dist/cart/types/priceDiscount.d.ts.map +1 -0
- package/dist/cart/utils/autoFreeGift.d.ts +21 -0
- package/dist/cart/utils/autoFreeGift.d.ts.map +1 -0
- package/dist/cjs/cart/context/index.d.ts +47 -0
- package/dist/cjs/cart/context/index.d.ts.map +1 -0
- package/dist/cjs/cart/context/index.js +2 -0
- package/dist/cjs/cart/context/index.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useAddToCart.d.ts +30 -0
- package/dist/cjs/cart/hooks/basic/useAddToCart.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useAddToCart.js +2 -0
- package/dist/cjs/cart/hooks/basic/useAddToCart.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useApplyCartCodes.d.ts +11 -0
- package/dist/cjs/cart/hooks/basic/useApplyCartCodes.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useApplyCartCodes.js +2 -0
- package/dist/cjs/cart/hooks/basic/useApplyCartCodes.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useBuyNow.d.ts +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.d.ts.map +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.js +1 -1
- package/dist/cjs/cart/hooks/basic/useBuyNow.js.map +3 -3
- package/dist/cjs/cart/hooks/basic/useCreateCart.d.ts +7 -0
- package/dist/cjs/cart/hooks/basic/useCreateCart.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useCreateCart.js +2 -0
- package/dist/cjs/cart/hooks/basic/useCreateCart.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartCodes.d.ts +11 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartCodes.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartCodes.js +2 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartCodes.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartLines.d.ts +11 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartLines.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartLines.js +2 -0
- package/dist/cjs/cart/hooks/basic/useRemoveCartLines.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartAttributes.d.ts +8 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartAttributes.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartAttributes.js +2 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartAttributes.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts +8 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartBuyerIdentity.js +2 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartBuyerIdentity.js.map +7 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartLines.d.ts +8 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartLines.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartLines.js +2 -0
- package/dist/cjs/cart/hooks/basic/useUpdateCartLines.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useCalcAutoFreeGift.d.ts +10 -0
- package/dist/cjs/cart/hooks/feature/useCalcAutoFreeGift.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useCalcAutoFreeGift.js +2 -0
- package/dist/cjs/cart/hooks/feature/useCalcAutoFreeGift.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useCalcOrderDiscount.d.ts +21 -0
- package/dist/cjs/cart/hooks/feature/useCalcOrderDiscount.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useCalcOrderDiscount.js +2 -0
- package/dist/cjs/cart/hooks/feature/useCalcOrderDiscount.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useCartAttributes.d.ts +10 -0
- package/dist/cjs/cart/hooks/feature/useCartAttributes.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useCartAttributes.js +2 -0
- package/dist/cjs/cart/hooks/feature/useCartAttributes.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useCartItemQuantityLimit.d.ts +19 -0
- package/dist/cjs/cart/hooks/feature/useCartItemQuantityLimit.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useCartItemQuantityLimit.js +2 -0
- package/dist/cjs/cart/hooks/feature/useCartItemQuantityLimit.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useScriptAutoFreeGift.d.ts +37 -0
- package/dist/cjs/cart/hooks/feature/useScriptAutoFreeGift.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useScriptAutoFreeGift.js +2 -0
- package/dist/cjs/cart/hooks/feature/useScriptAutoFreeGift.js.map +7 -0
- package/dist/cjs/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts +9 -0
- package/dist/cjs/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts.map +1 -0
- package/dist/cjs/cart/hooks/feature/useUpdateLineCodeAmountAttributes.js +2 -0
- package/dist/cjs/cart/hooks/feature/useUpdateLineCodeAmountAttributes.js.map +7 -0
- package/dist/cjs/cart/track/fbq.d.ts +2 -9
- package/dist/cjs/cart/track/fbq.d.ts.map +1 -1
- package/dist/cjs/cart/track/fbq.js +1 -1
- package/dist/cjs/cart/track/fbq.js.map +3 -3
- package/dist/cjs/cart/track/gtm.d.ts +26 -0
- package/dist/cjs/cart/track/gtm.d.ts.map +1 -0
- package/dist/cjs/cart/track/gtm.js +2 -0
- package/dist/cjs/cart/track/gtm.js.map +7 -0
- package/dist/cjs/cart/types/autoFreeGift.d.ts +135 -0
- package/dist/cjs/cart/types/autoFreeGift.d.ts.map +1 -0
- package/dist/cjs/cart/types/autoFreeGift.js +2 -0
- package/dist/cjs/cart/types/autoFreeGift.js.map +7 -0
- package/dist/cjs/cart/types/index.d.ts +1 -0
- package/dist/cjs/cart/types/index.d.ts.map +1 -1
- package/dist/cjs/cart/types/index.js +1 -1
- package/dist/cjs/cart/types/index.js.map +1 -1
- package/dist/cjs/cart/types/orderDiscount.d.ts +35 -0
- package/dist/cjs/cart/types/orderDiscount.d.ts.map +1 -0
- package/dist/cjs/cart/types/orderDiscount.js +2 -0
- package/dist/cjs/cart/types/orderDiscount.js.map +7 -0
- package/dist/cjs/cart/types/priceDiscount.d.ts +20 -0
- package/dist/cjs/cart/types/priceDiscount.d.ts.map +1 -0
- package/dist/cjs/cart/types/priceDiscount.js +2 -0
- package/dist/cjs/cart/types/priceDiscount.js.map +7 -0
- package/dist/cjs/cart/utils/autoFreeGift.d.ts +21 -0
- package/dist/cjs/cart/utils/autoFreeGift.d.ts.map +1 -0
- package/dist/cjs/cart/utils/autoFreeGift.js +2 -0
- package/dist/cjs/cart/utils/autoFreeGift.js.map +7 -0
- package/dist/cjs/cart/utils/index.d.ts +1 -0
- package/dist/cjs/cart/utils/index.d.ts.map +1 -1
- package/dist/cjs/cart/utils/index.js +1 -1
- package/dist/cjs/cart/utils/index.js.map +3 -3
- package/dist/cjs/constants.d.ts +2 -0
- package/dist/cjs/constants.d.ts.map +1 -0
- package/dist/cjs/constants.js +2 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/context/index.js.map +1 -1
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/registration/hooks/index.d.ts +1 -0
- package/dist/cjs/registration/hooks/index.d.ts.map +1 -1
- package/dist/cjs/registration/hooks/index.js +1 -1
- package/dist/cjs/registration/hooks/index.js.map +2 -2
- package/dist/cjs/registration/hooks/useEmailValidation.d.ts.map +1 -1
- package/dist/cjs/registration/hooks/useEmailValidation.js +1 -1
- package/dist/cjs/registration/hooks/useEmailValidation.js.map +3 -3
- package/dist/cjs/registration/hooks/useSendEmailValidation.d.ts.map +1 -1
- package/dist/cjs/registration/hooks/useSendEmailValidation.js +1 -1
- package/dist/cjs/registration/hooks/useSendEmailValidation.js.map +3 -3
- package/dist/cjs/registration/hooks/useSubscriptions.d.ts +15 -0
- package/dist/cjs/registration/hooks/useSubscriptions.d.ts.map +1 -0
- package/dist/cjs/registration/hooks/useSubscriptions.js +2 -0
- package/dist/cjs/registration/hooks/useSubscriptions.js.map +7 -0
- package/dist/cjs/registration/index.d.ts +0 -1
- package/dist/cjs/registration/index.d.ts.map +1 -1
- package/dist/cjs/registration/index.js +1 -1
- package/dist/cjs/registration/index.js.map +2 -2
- package/dist/cjs/shopify/fetchers/index.d.ts +2 -0
- package/dist/cjs/shopify/fetchers/index.d.ts.map +1 -1
- package/dist/cjs/shopify/fetchers/index.js +1 -1
- package/dist/cjs/shopify/fetchers/index.js.map +3 -3
- package/dist/esm/cart/context/index.d.ts +47 -0
- package/dist/esm/cart/context/index.d.ts.map +1 -0
- package/dist/esm/cart/context/index.js +2 -0
- package/dist/esm/cart/context/index.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useAddToCart.d.ts +30 -0
- package/dist/esm/cart/hooks/basic/useAddToCart.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useAddToCart.js +2 -0
- package/dist/esm/cart/hooks/basic/useAddToCart.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useApplyCartCodes.d.ts +11 -0
- package/dist/esm/cart/hooks/basic/useApplyCartCodes.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useApplyCartCodes.js +2 -0
- package/dist/esm/cart/hooks/basic/useApplyCartCodes.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useBuyNow.d.ts +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.d.ts.map +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.js +1 -1
- package/dist/esm/cart/hooks/basic/useBuyNow.js.map +3 -3
- package/dist/esm/cart/hooks/basic/useCreateCart.d.ts +7 -0
- package/dist/esm/cart/hooks/basic/useCreateCart.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useCreateCart.js +2 -0
- package/dist/esm/cart/hooks/basic/useCreateCart.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartCodes.d.ts +11 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartCodes.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartCodes.js +2 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartCodes.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartLines.d.ts +11 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartLines.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartLines.js +2 -0
- package/dist/esm/cart/hooks/basic/useRemoveCartLines.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartAttributes.d.ts +8 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartAttributes.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartAttributes.js +2 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartAttributes.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts +8 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartBuyerIdentity.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartBuyerIdentity.js +2 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartBuyerIdentity.js.map +7 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartLines.d.ts +8 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartLines.d.ts.map +1 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartLines.js +2 -0
- package/dist/esm/cart/hooks/basic/useUpdateCartLines.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useCalcAutoFreeGift.d.ts +10 -0
- package/dist/esm/cart/hooks/feature/useCalcAutoFreeGift.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useCalcAutoFreeGift.js +2 -0
- package/dist/esm/cart/hooks/feature/useCalcAutoFreeGift.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useCalcOrderDiscount.d.ts +21 -0
- package/dist/esm/cart/hooks/feature/useCalcOrderDiscount.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useCalcOrderDiscount.js +2 -0
- package/dist/esm/cart/hooks/feature/useCalcOrderDiscount.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useCartAttributes.d.ts +10 -0
- package/dist/esm/cart/hooks/feature/useCartAttributes.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useCartAttributes.js +2 -0
- package/dist/esm/cart/hooks/feature/useCartAttributes.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useCartItemQuantityLimit.d.ts +19 -0
- package/dist/esm/cart/hooks/feature/useCartItemQuantityLimit.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useCartItemQuantityLimit.js +2 -0
- package/dist/esm/cart/hooks/feature/useCartItemQuantityLimit.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useScriptAutoFreeGift.d.ts +37 -0
- package/dist/esm/cart/hooks/feature/useScriptAutoFreeGift.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useScriptAutoFreeGift.js +2 -0
- package/dist/esm/cart/hooks/feature/useScriptAutoFreeGift.js.map +7 -0
- package/dist/esm/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts +9 -0
- package/dist/esm/cart/hooks/feature/useUpdateLineCodeAmountAttributes.d.ts.map +1 -0
- package/dist/esm/cart/hooks/feature/useUpdateLineCodeAmountAttributes.js +2 -0
- package/dist/esm/cart/hooks/feature/useUpdateLineCodeAmountAttributes.js.map +7 -0
- package/dist/esm/cart/track/fbq.d.ts +2 -9
- package/dist/esm/cart/track/fbq.d.ts.map +1 -1
- package/dist/esm/cart/track/fbq.js +1 -1
- package/dist/esm/cart/track/fbq.js.map +3 -3
- package/dist/esm/cart/track/gtm.d.ts +26 -0
- package/dist/esm/cart/track/gtm.d.ts.map +1 -0
- package/dist/esm/cart/track/gtm.js +2 -0
- package/dist/esm/cart/track/gtm.js.map +7 -0
- package/dist/esm/cart/types/autoFreeGift.d.ts +135 -0
- package/dist/esm/cart/types/autoFreeGift.d.ts.map +1 -0
- package/dist/esm/cart/types/autoFreeGift.js +2 -0
- package/dist/esm/cart/types/autoFreeGift.js.map +7 -0
- package/dist/esm/cart/types/index.d.ts +1 -0
- package/dist/esm/cart/types/index.d.ts.map +1 -1
- package/dist/esm/cart/types/orderDiscount.d.ts +35 -0
- package/dist/esm/cart/types/orderDiscount.d.ts.map +1 -0
- package/dist/esm/cart/types/orderDiscount.js +2 -0
- package/dist/esm/cart/types/orderDiscount.js.map +7 -0
- package/dist/esm/cart/types/priceDiscount.d.ts +20 -0
- package/dist/esm/cart/types/priceDiscount.d.ts.map +1 -0
- package/dist/esm/cart/types/priceDiscount.js +2 -0
- package/dist/esm/cart/types/priceDiscount.js.map +7 -0
- package/dist/esm/cart/utils/autoFreeGift.d.ts +21 -0
- package/dist/esm/cart/utils/autoFreeGift.d.ts.map +1 -0
- package/dist/esm/cart/utils/autoFreeGift.js +2 -0
- package/dist/esm/cart/utils/autoFreeGift.js.map +7 -0
- package/dist/esm/cart/utils/index.d.ts +1 -0
- package/dist/esm/cart/utils/index.d.ts.map +1 -1
- package/dist/esm/cart/utils/index.js +1 -1
- package/dist/esm/cart/utils/index.js.map +3 -3
- package/dist/esm/constants.d.ts +2 -0
- package/dist/esm/constants.d.ts.map +1 -0
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/context/index.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/registration/hooks/index.d.ts +1 -0
- package/dist/esm/registration/hooks/index.d.ts.map +1 -1
- package/dist/esm/registration/hooks/index.js +1 -1
- package/dist/esm/registration/hooks/index.js.map +2 -2
- package/dist/esm/registration/hooks/useEmailValidation.d.ts.map +1 -1
- package/dist/esm/registration/hooks/useEmailValidation.js +1 -1
- package/dist/esm/registration/hooks/useEmailValidation.js.map +3 -3
- package/dist/esm/registration/hooks/useSendEmailValidation.d.ts.map +1 -1
- package/dist/esm/registration/hooks/useSendEmailValidation.js +1 -1
- package/dist/esm/registration/hooks/useSendEmailValidation.js.map +2 -2
- package/dist/esm/registration/hooks/useSubscriptions.d.ts +15 -0
- package/dist/esm/registration/hooks/useSubscriptions.d.ts.map +1 -0
- package/dist/esm/registration/hooks/useSubscriptions.js +2 -0
- package/dist/esm/registration/hooks/useSubscriptions.js.map +7 -0
- package/dist/esm/registration/index.d.ts +0 -1
- package/dist/esm/registration/index.d.ts.map +1 -1
- package/dist/esm/registration/index.js +1 -1
- package/dist/esm/registration/index.js.map +2 -2
- package/dist/esm/shopify/fetchers/index.d.ts +2 -0
- package/dist/esm/shopify/fetchers/index.d.ts.map +1 -1
- package/dist/esm/shopify/fetchers/index.js +1 -1
- package/dist/esm/shopify/fetchers/index.js.map +3 -3
- package/dist/registration/hooks/index.d.ts +4 -0
- package/dist/registration/hooks/index.d.ts.map +1 -0
- package/dist/registration/hooks/useEmailValidation.d.ts +17 -0
- package/dist/registration/hooks/useEmailValidation.d.ts.map +1 -0
- package/dist/registration/hooks/useSendEmailValidation.d.ts +9 -0
- package/dist/registration/hooks/useSendEmailValidation.d.ts.map +1 -0
- package/dist/registration/hooks/useSubscriptions.d.ts +15 -0
- package/dist/registration/hooks/useSubscriptions.d.ts.map +1 -0
- package/dist/registration/index.d.ts +2 -0
- package/dist/registration/index.d.ts.map +1 -0
- package/dist/utils/classnames.d.ts +3 -0
- package/dist/utils/classnames.d.ts.map +1 -0
- package/dist/utils/fetcher/fetchResponse.d.ts +14 -0
- package/dist/utils/fetcher/fetchResponse.d.ts.map +1 -0
- package/dist/utils/fetcher/fetcher.d.ts +2 -0
- package/dist/utils/fetcher/fetcher.d.ts.map +1 -0
- package/dist/utils/fetcher/index.d.ts +3 -0
- package/dist/utils/fetcher/index.d.ts.map +1 -0
- package/dist/utils/index.d.ts +5 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/track.d.ts +16 -0
- package/dist/utils/track.d.ts.map +1 -0
- package/dist/utils/useCountDown.d.ts +6 -0
- package/dist/utils/useCountDown.d.ts.map +1 -0
- package/esbuild-esm.mjs +1 -0
- package/jest.config.ts +3 -0
- package/package.json +4 -5
- package/src/cart/context/index.tsx +310 -0
- package/src/cart/hooks/basic/useAddToCart.ts +161 -0
- package/src/cart/hooks/basic/useApplyCartCodes.ts +72 -0
- package/src/cart/hooks/basic/useBuyNow.ts +10 -7
- package/src/cart/hooks/basic/useCreateCart.ts +32 -0
- package/src/cart/hooks/basic/useRemoveCartCodes.ts +55 -0
- package/src/cart/hooks/basic/useRemoveCartLines.ts +51 -0
- package/src/cart/hooks/basic/useUpdateCartAttributes.ts +42 -0
- package/src/cart/hooks/basic/useUpdateCartBuyerIdentity.ts +34 -0
- package/src/cart/hooks/basic/useUpdateCartLines.ts +34 -0
- package/src/cart/hooks/feature/useCalcAutoFreeGift.tsx +178 -0
- package/src/cart/hooks/feature/useCalcOrderDiscount.tsx +127 -0
- package/src/cart/hooks/feature/useCartAttributes.tsx +133 -0
- package/src/cart/hooks/feature/useCartItemQuantityLimit.tsx +59 -0
- package/src/cart/hooks/feature/useScriptAutoFreeGift.tsx +256 -0
- package/src/cart/hooks/feature/useUpdateLineCodeAmountAttributes.tsx +184 -0
- package/src/cart/track/fbq.ts +4 -29
- package/src/cart/track/gtm.ts +159 -0
- package/src/cart/types/autoFreeGift.ts +169 -0
- package/src/cart/types/index.ts +1 -0
- package/src/cart/types/orderDiscount.ts +38 -0
- package/src/cart/types/priceDiscount.ts +21 -0
- package/src/cart/utils/autoFreeGift.ts +297 -0
- package/src/cart/utils/index.ts +13 -0
- package/src/constants.ts +1 -0
- package/src/context/index.ts +0 -1
- package/src/index.ts +6 -0
- package/src/registration/hooks/index.ts +3 -0
- package/src/registration/hooks/useEmailValidation.ts +28 -0
- package/src/registration/hooks/useSendEmailValidation.ts +21 -0
- package/src/registration/hooks/useSubscriptions.ts +36 -0
- package/src/registration/index.ts +2 -0
- package/src/shopify/fetchers/index.ts +2 -0
- package/src/utils/classnames.ts +6 -0
- package/src/utils/fetcher/fetchResponse.ts +33 -0
- package/src/utils/fetcher/fetcher.ts +38 -0
- package/src/utils/fetcher/index.ts +2 -0
- package/src/utils/index.ts +4 -0
- package/src/utils/track.ts +57 -0
- package/src/utils/useCountDown.tsx +41 -0
- package/tsconfig.json +4 -0
- package/tsup.config.ts +10 -8
- package/dist/cjs/registration/context/index.d.ts +0 -24
- package/dist/cjs/registration/context/index.d.ts.map +0 -1
- package/dist/cjs/registration/context/index.js +0 -2
- package/dist/cjs/registration/context/index.js.map +0 -7
- package/dist/esm/registration/context/index.d.ts +0 -24
- package/dist/esm/registration/context/index.d.ts.map +0 -1
- package/dist/esm/registration/context/index.js +0 -2
- package/dist/esm/registration/context/index.js.map +0 -7
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/shopify/fetchers/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { getProductsByHandles } from './get-products-by-handles'\nexport { addCartLines } from './add-cart-lines'\nexport { createCart } from './create-cart'\nexport { removeCartLines } from './remove-cart-lines'\nexport { updateCartAttributes } from './update-cart-attributes'\nexport { updateCartLines } from './update-cart-lines'\nexport { getCart } from './get-cart'\n\nexport type { GetProductsByHandlesReq, GetProductsMetafieldQueryRoot } from './get-products-by-handles'\nexport type { GetCartReq, GetCartMetafieldQueryRoot } from './get-cart'\n"],
|
|
5
|
-
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,
|
|
6
|
-
"names": ["fetchers_exports", "__export", "__toCommonJS", "import_get_products_by_handles", "import_add_cart_lines", "import_create_cart", "import_remove_cart_lines", "import_update_cart_attributes", "import_update_cart_lines", "import_get_cart"]
|
|
4
|
+
"sourcesContent": ["export { getProductsByHandles } from './get-products-by-handles'\nexport { addCartLines } from './add-cart-lines'\nexport { createCart } from './create-cart'\nexport { removeCartLines } from './remove-cart-lines'\nexport { updateCartAttributes } from './update-cart-attributes'\nexport { updateCartBuyerIdentity } from './update-cart-buyer-identity'\nexport { updateCartLines } from './update-cart-lines'\nexport { updateCartCodes } from './update-cart-codes'\nexport { getCart } from './get-cart'\n\nexport type { GetProductsByHandlesReq, GetProductsMetafieldQueryRoot } from './get-products-by-handles'\nexport type { GetCartReq, GetCartMetafieldQueryRoot } from './get-cart'\n"],
|
|
5
|
+
"mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4WAAAE,EAAAF,GAAA,IAAAG,EAAqC,qCACrCC,EAA6B,4BAC7BC,EAA2B,yBAC3BC,EAAgC,+BAChCC,EAAqC,oCACrCC,EAAwC,wCACxCC,EAAgC,+BAChCC,EAAgC,+BAChCC,EAAwB",
|
|
6
|
+
"names": ["fetchers_exports", "__export", "__toCommonJS", "import_get_products_by_handles", "import_add_cart_lines", "import_create_cart", "import_remove_cart_lines", "import_update_cart_attributes", "import_update_cart_buyer_identity", "import_update_cart_lines", "import_update_cart_codes", "import_get_cart"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Cart } from '../../shopify/types/cart';
|
|
3
|
+
import { AutoFreeGiftConfig, FunctionGiftResult, AutoFreeGiftList } from '../types/autoFreeGift';
|
|
4
|
+
import { AttributeInput } from '../../shopify/gql';
|
|
5
|
+
import { UseScriptAutoFreeGiftResult } from '../hooks/feature/useScriptAutoFreeGift';
|
|
6
|
+
export type LoadingState = {
|
|
7
|
+
editLineQuantityLoading: boolean;
|
|
8
|
+
editLineCodeAmountLoading: boolean;
|
|
9
|
+
listingAutoCodeApplying: boolean;
|
|
10
|
+
userCodeApplying: boolean;
|
|
11
|
+
};
|
|
12
|
+
type CartContextType = {
|
|
13
|
+
cart: Cart | undefined;
|
|
14
|
+
isCartLoading: boolean;
|
|
15
|
+
mutateCart: (cart: Cart | undefined) => void;
|
|
16
|
+
triggerFetch: () => void;
|
|
17
|
+
calculatedAutoFreeGift?: FunctionGiftResult | undefined;
|
|
18
|
+
addCustomAttributes: (attributes: AttributeInput[]) => void;
|
|
19
|
+
removeCustomAttributes: (attributes: {
|
|
20
|
+
key: string;
|
|
21
|
+
}[]) => void;
|
|
22
|
+
setCustomAttributes: (attributes: AttributeInput[]) => void;
|
|
23
|
+
isCodeChanging: boolean;
|
|
24
|
+
setIsCodeChanging: (isCodeChanging: boolean) => void;
|
|
25
|
+
autoFreeGiftConfig?: AutoFreeGiftConfig;
|
|
26
|
+
setLoadingState: React.Dispatch<React.SetStateAction<LoadingState>>;
|
|
27
|
+
loadingState: LoadingState;
|
|
28
|
+
scriptAutoFreeGiftResult?: UseScriptAutoFreeGiftResult;
|
|
29
|
+
scriptAutoFreeGift?: AutoFreeGiftList;
|
|
30
|
+
functionAutoFreeGiftResult?: FunctionGiftResult;
|
|
31
|
+
functionAutoFreeGift?: AutoFreeGiftList;
|
|
32
|
+
setFunctionAutoFreeGift: (functionAutoFreeGift: AutoFreeGiftList) => void;
|
|
33
|
+
setScriptAutoFreeGift: (scriptAutoFreeGift: AutoFreeGiftList) => void;
|
|
34
|
+
giftNeedAddToCartLines: AutoFreeGiftList;
|
|
35
|
+
};
|
|
36
|
+
export declare const CartContext: React.Context<CartContextType>;
|
|
37
|
+
type CartProviderProps = {
|
|
38
|
+
children: React.ReactNode;
|
|
39
|
+
autoFreeGiftConfig?: AutoFreeGiftConfig;
|
|
40
|
+
gradientGiftsConfig: any;
|
|
41
|
+
profile: any;
|
|
42
|
+
customer: any;
|
|
43
|
+
};
|
|
44
|
+
export declare const CartProvider: ({ children, autoFreeGiftConfig, gradientGiftsConfig, profile, customer, }: CartProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
45
|
+
export declare const useCartContext: () => CartContextType;
|
|
46
|
+
export {};
|
|
47
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/cart/context/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA+E,MAAM,OAAO,CAAA;AACnG,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAA;AAE/C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAOhG,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAGlD,OAA8B,EAAE,2BAA2B,EAAE,MAAM,wCAAwC,CAAA;AAQ3G,MAAM,MAAM,YAAY,GAAG;IACzB,uBAAuB,EAAE,OAAO,CAAA;IAChC,yBAAyB,EAAE,OAAO,CAAA;IAClC,uBAAuB,EAAE,OAAO,CAAA;IAChC,gBAAgB,EAAE,OAAO,CAAA;CAC1B,CAAA;AAED,KAAK,eAAe,GAAG;IACrB,IAAI,EAAE,IAAI,GAAG,SAAS,CAAA;IACtB,aAAa,EAAE,OAAO,CAAA;IACtB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,KAAK,IAAI,CAAA;IAC5C,YAAY,EAAE,MAAM,IAAI,CAAA;IACxB,sBAAsB,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAA;IACvD,mBAAmB,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IAC3D,sBAAsB,EAAE,CAAC,UAAU,EAAE;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,EAAE,KAAK,IAAI,CAAA;IAC/D,mBAAmB,EAAE,CAAC,UAAU,EAAE,cAAc,EAAE,KAAK,IAAI,CAAA;IAC3D,cAAc,EAAE,OAAO,CAAA;IACvB,iBAAiB,EAAE,CAAC,cAAc,EAAE,OAAO,KAAK,IAAI,CAAA;IACpD,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,eAAe,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAA;IACnE,YAAY,EAAE,YAAY,CAAA;IAC1B,wBAAwB,CAAC,EAAE,2BAA2B,CAAA;IACtD,kBAAkB,CAAC,EAAE,gBAAgB,CAAA;IACrC,0BAA0B,CAAC,EAAE,kBAAkB,CAAA;IAC/C,oBAAoB,CAAC,EAAE,gBAAgB,CAAA;IACvC,uBAAuB,EAAE,CAAC,oBAAoB,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACzE,qBAAqB,EAAE,CAAC,kBAAkB,EAAE,gBAAgB,KAAK,IAAI,CAAA;IACrE,sBAAsB,EAAE,gBAAgB,CAAA;CACzC,CAAA;AA6BD,eAAO,MAAM,WAAW,gCAA+C,CAAA;AAEvE,KAAK,iBAAiB,GAAG;IACvB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;IACzB,kBAAkB,CAAC,EAAE,kBAAkB,CAAA;IACvC,mBAAmB,EAAE,GAAG,CAAA;IACxB,OAAO,EAAE,GAAG,CAAA;IACZ,QAAQ,EAAE,GAAG,CAAA;CACd,CAAA;AAED,eAAO,MAAM,YAAY,GAAI,2EAM1B,iBAAiB,4CAqNnB,CAAA;AAED,eAAO,MAAM,cAAc,uBAAgC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{jsx as ut}from"react/jsx-runtime";import{createContext as Y,useContext as B,useState as a,useMemo as m,useEffect as H,useCallback as x}from"react";import{useCalcAutoFreeGift as V}from"../hooks/feature/useCalcAutoFreeGift";import{getCart as $}from"../../shopify/fetchers/get-cart";import{useRequest as P}from"ahooks";import{useHeadlessContext as z}from"../../context";import{useUpdateCartAttributes as J}from"../hooks/basic/useUpdateCartAttributes";import{useCartAttributes as X}from"../hooks/feature/useCartAttributes";import{isAttributesEqual as Z}from"../utils";import{useUpdateLineCodeAmountAttributes as j}from"../hooks/feature/useUpdateLineCodeAmountAttributes";import tt from"../hooks/feature/useScriptAutoFreeGift";import{formatScriptAutoFreeGift as et,formatFunctionAutoFreeGift as it,getDiscountEnvAttributeValue as ot}from"../utils/autoFreeGift";import{CUSTOMER_ATTRIBUTE_KEY as rt,CUSTOMER_SCRIPT_GIFT_KEY as _}from"../../shopify/utils/const";const nt={cart:void 0,isCartLoading:!1,mutateCart:()=>{},triggerFetch:()=>{},calculatedAutoFreeGift:void 0,addCustomAttributes:()=>{},removeCustomAttributes:()=>{},setCustomAttributes:()=>{},isCodeChanging:!1,setIsCodeChanging:()=>{},setLoadingState:()=>{},loadingState:{editLineQuantityLoading:!1,editLineCodeAmountLoading:!1,listingAutoCodeApplying:!1,userCodeApplying:!1},scriptAutoFreeGift:void 0,functionAutoFreeGift:void 0,scriptAutoFreeGiftResult:void 0,functionAutoFreeGiftResult:void 0,setFunctionAutoFreeGift:()=>{},setScriptAutoFreeGift:()=>{},giftNeedAddToCartLines:[]},U=Y(nt),Tt=({children:E,autoFreeGiftConfig:w,gradientGiftsConfig:A,profile:D,customer:F})=>{const{storefrontToken:G,storeDomain:b,cartIdCookieName:L,locale:u}=z(),[d,f]=a([]),[y,N]=a(!1),[r,v]=a({editLineQuantityLoading:!1,editLineCodeAmountLoading:!1,listingAutoCodeApplying:!1,userCodeApplying:!1}),[l,S]=a([]),[C,R]=a([]),{run:Q,data:e,loading:I,mutate:g}=P(async()=>{const i=typeof window<"u"?document.cookie.split("; ").find(n=>n.startsWith(`${L}=`))?.split("=")[1]:void 0;if(i)return $({options:{cartId:i},config:{storefrontToken:G,storeDomain:b}})},{refreshDeps:[u,G,b,L]}),{trigger:q}=J(),{attributes:h}=X({profile:D,customer:F,cart:e});P(async()=>{const i=[...h,...d];if(e&&!Z(e.customAttributes,i)&&e){const t=await q({cartId:e.id,attributes:i});return t&&g(t),t}else return Promise.resolve(e)},{throttleWait:1e3,throttleTrailing:!0,throttleLeading:!1,refreshDeps:[h,d,e?.id]}),j({cart:e,mutateCart:g,isCartLoading:I||y,setLoadingState:v});const s=V(e,w||[],F),c=tt({campaign:A,_giveaway:_,cart:e}),k=m(()=>et({scriptAutoFreeGiftResult:c,gradient_gifts:A,locale:u}),[c,A,u]),T=m(()=>it({qualifyingGift:s?.qualifyingGift||null,giftProductsResult:s?.giftProductsResult||[],locale:u}),[s,u]);H(()=>{r.userCodeApplying||r.editLineQuantityLoading||r.editLineCodeAmountLoading||r.listingAutoCodeApplying||(S(k),R(T))},[k,T,r.userCodeApplying,r.editLineQuantityLoading,r.editLineCodeAmountLoading,r.listingAutoCodeApplying]);const M=m(()=>{const i=e?.lineItems.filter(t=>t.customAttributes?.some(o=>[rt,_].includes(o.key)));return[...l,...C].filter(t=>!i?.find(o=>o.variantId===t.line.variantId&&o.customAttributes?.some(p=>p.key==="_discounts_function_env"?ot(o.customAttributes).is_gift:!1)))},[e?.lineItems,l,C]),K=x(i=>{f(n=>n.filter(t=>!i.some(o=>o.key===t.key)))},[]),O=x(i=>{const n=i.filter(t=>d.some(o=>o.key===t.key));n.length?f(t=>[...t.filter(p=>!n.some(W=>W.key===p.key)),...i]):f(t=>[...t,...i])},[d]);return ut(U.Provider,{value:{cart:e,mutateCart:g,triggerFetch:Q,isCartLoading:I,setCustomAttributes:f,addCustomAttributes:O,removeCustomAttributes:K,calculatedAutoFreeGift:s||c,isCodeChanging:y,setIsCodeChanging:N,setLoadingState:v,loadingState:r,functionAutoFreeGift:C,functionAutoFreeGiftResult:s,setFunctionAutoFreeGift:R,scriptAutoFreeGift:l,scriptAutoFreeGiftResult:c,setScriptAutoFreeGift:S,giftNeedAddToCartLines:M},children:E})},xt=()=>B(U);export{U as CartContext,Tt as CartProvider,xt as useCartContext};
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/cart/context/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import React, { createContext, useContext, useState, useMemo, useEffect, useCallback } from 'react'\nimport { Cart } from '../../shopify/types/cart'\n\nimport { AutoFreeGiftConfig, FunctionGiftResult, AutoFreeGiftList } from '../types/autoFreeGift'\nimport { useCalcAutoFreeGift } from '../hooks/feature/useCalcAutoFreeGift'\nimport { getCart } from '../../shopify/fetchers/get-cart'\nimport { useRequest } from 'ahooks'\nimport { useHeadlessContext } from '../../context'\nimport { useUpdateCartAttributes } from '../hooks/basic/useUpdateCartAttributes'\nimport { useCartAttributes } from '../hooks/feature/useCartAttributes'\nimport { AttributeInput } from '../../shopify/gql'\nimport { isAttributesEqual } from '../utils'\nimport { useUpdateLineCodeAmountAttributes } from '../hooks/feature/useUpdateLineCodeAmountAttributes'\nimport useScriptAutoFreeGift, { UseScriptAutoFreeGiftResult } from '../hooks/feature/useScriptAutoFreeGift'\nimport {\n formatScriptAutoFreeGift,\n formatFunctionAutoFreeGift,\n getDiscountEnvAttributeValue,\n} from '../utils/autoFreeGift'\nimport { CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY } from '../../shopify/utils/const'\n\nexport type LoadingState = {\n editLineQuantityLoading: boolean\n editLineCodeAmountLoading: boolean\n listingAutoCodeApplying: boolean\n userCodeApplying: boolean\n}\n\ntype CartContextType = {\n cart: Cart | undefined\n isCartLoading: boolean\n mutateCart: (cart: Cart | undefined) => void\n triggerFetch: () => void\n calculatedAutoFreeGift?: FunctionGiftResult | undefined\n addCustomAttributes: (attributes: AttributeInput[]) => void\n removeCustomAttributes: (attributes: { key: string }[]) => void\n setCustomAttributes: (attributes: AttributeInput[]) => void\n isCodeChanging: boolean\n setIsCodeChanging: (isCodeChanging: boolean) => void\n autoFreeGiftConfig?: AutoFreeGiftConfig\n setLoadingState: React.Dispatch<React.SetStateAction<LoadingState>>\n loadingState: LoadingState\n scriptAutoFreeGiftResult?: UseScriptAutoFreeGiftResult\n scriptAutoFreeGift?: AutoFreeGiftList\n functionAutoFreeGiftResult?: FunctionGiftResult\n functionAutoFreeGift?: AutoFreeGiftList\n setFunctionAutoFreeGift: (functionAutoFreeGift: AutoFreeGiftList) => void\n setScriptAutoFreeGift: (scriptAutoFreeGift: AutoFreeGiftList) => void\n giftNeedAddToCartLines: AutoFreeGiftList\n}\n\nconst initialState: CartContextType = {\n cart: undefined,\n isCartLoading: false,\n mutateCart: () => {},\n triggerFetch: () => {},\n calculatedAutoFreeGift: undefined,\n addCustomAttributes: () => {},\n removeCustomAttributes: () => {},\n setCustomAttributes: () => {},\n isCodeChanging: false,\n setIsCodeChanging: () => {},\n setLoadingState: () => {},\n loadingState: {\n editLineQuantityLoading: false,\n editLineCodeAmountLoading: false,\n listingAutoCodeApplying: false,\n userCodeApplying: false,\n },\n scriptAutoFreeGift: undefined,\n functionAutoFreeGift: undefined,\n scriptAutoFreeGiftResult: undefined,\n functionAutoFreeGiftResult: undefined,\n setFunctionAutoFreeGift: () => {},\n setScriptAutoFreeGift: () => {},\n giftNeedAddToCartLines: [],\n}\n\nexport const CartContext = createContext<CartContextType>(initialState)\n\ntype CartProviderProps = {\n children: React.ReactNode\n autoFreeGiftConfig?: AutoFreeGiftConfig\n gradientGiftsConfig: any\n profile: any\n customer: any\n}\n\nexport const CartProvider = ({\n children,\n autoFreeGiftConfig,\n gradientGiftsConfig,\n profile,\n customer,\n}: CartProviderProps) => {\n const { storefrontToken, storeDomain, cartIdCookieName, locale } = useHeadlessContext()\n const [customAttributes, setCustomAttributes] = useState<AttributeInput[]>([])\n const [isCodeChanging, setIsCodeChanging] = useState(false)\n const [loadingState, setLoadingState] = useState<LoadingState>({\n editLineQuantityLoading: false,\n editLineCodeAmountLoading: false,\n listingAutoCodeApplying: false,\n userCodeApplying: false,\n })\n const [scriptAutoFreeGift, setScriptAutoFreeGift] = useState<AutoFreeGiftList>([])\n const [functionAutoFreeGift, setFunctionAutoFreeGift] = useState<AutoFreeGiftList>([])\n\n // \u83B7\u53D6\u8D2D\u7269\u8F66\u903B\u8F91\n const {\n run: fetchCart,\n data: cart,\n loading: isCartLoading,\n mutate: mutateCart,\n } = useRequest(\n async () => {\n // \u4ECE cookie \u83B7\u53D6 cartId\n const cartId =\n typeof window !== 'undefined'\n ? document.cookie\n .split('; ')\n .find(row => row.startsWith(`${cartIdCookieName}=`))\n ?.split('=')[1]\n : undefined\n\n if (!cartId) {\n return undefined\n }\n\n return getCart({\n options: { cartId },\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n },\n {\n refreshDeps: [locale, storefrontToken, storeDomain, cartIdCookieName],\n }\n ) as unknown as {\n run: () => Promise<Cart | undefined>\n mutate: (cart: Cart | undefined) => void\n data: Cart | undefined\n loading: boolean\n }\n\n // \u66F4\u65B0 attributes\n const { trigger: updateAttributes } = useUpdateCartAttributes()\n // \u516C\u5171 attributes\n const { attributes } = useCartAttributes({ profile, customer, cart })\n\n useRequest(\n async () => {\n // \u53BB\u91CD\u903B\u8F91\n const newAttributes = [...attributes, ...customAttributes]\n\n const needUpdate = cart && !isAttributesEqual(cart.customAttributes, newAttributes)\n\n // \u5982\u679C attributes \u6CA1\u6709\u53D8\u5316\uFF0C\u4E0D\u66F4\u65B0\n if (needUpdate && cart) {\n const updatedCart = await updateAttributes({\n cartId: cart.id,\n attributes: newAttributes,\n })\n if (updatedCart) {\n mutateCart(updatedCart)\n }\n return updatedCart\n } else {\n return Promise.resolve(cart)\n }\n },\n {\n throttleWait: 1000, // 1 \u79D2\u5185\u53EA\u89E6\u53D1\u6700\u540E\u4E00\u6B21\u66F4\u65B0\n throttleTrailing: true,\n throttleLeading: false,\n refreshDeps: [attributes, customAttributes, cart?.id],\n }\n )\n\n // \u66F4\u65B0 code \u65F6\uFF0C\u540C\u6B65\u66F4\u65B0 line item \u4E2D\u7684 code amount attribute\n useUpdateLineCodeAmountAttributes({\n cart,\n mutateCart,\n isCartLoading: isCartLoading || isCodeChanging,\n setLoadingState,\n })\n\n // \u8BA1\u7B97\u8D2D\u7269\u8F66\u8D60\u54C1 - \u53EA\u8BA1\u7B97\uFF0C\u4E0D\u6267\u884C\u526F\u4F5C\u7528\n const functionAutoFreeGiftResult = useCalcAutoFreeGift(cart, autoFreeGiftConfig || [], customer)\n const scriptAutoFreeGiftResult = useScriptAutoFreeGift({\n campaign: gradientGiftsConfig,\n _giveaway: CUSTOMER_SCRIPT_GIFT_KEY,\n cart,\n })\n\n const formattedScriptGifts = useMemo(() => {\n return formatScriptAutoFreeGift({\n scriptAutoFreeGiftResult,\n gradient_gifts: gradientGiftsConfig,\n locale,\n })\n }, [scriptAutoFreeGiftResult, gradientGiftsConfig, locale])\n\n const formattedFunctionGifts = useMemo(() => {\n return formatFunctionAutoFreeGift({\n qualifyingGift: functionAutoFreeGiftResult?.qualifyingGift || null,\n giftProductsResult: (functionAutoFreeGiftResult?.giftProductsResult as any[]) || [],\n locale,\n })\n }, [functionAutoFreeGiftResult, locale])\n\n // \u5F53\u683C\u5F0F\u5316\u7ED3\u679C\u53D8\u5316\u65F6\u66F4\u65B0\u72B6\u6001\n useEffect(() => {\n if (\n loadingState.userCodeApplying ||\n loadingState.editLineQuantityLoading ||\n loadingState.editLineCodeAmountLoading ||\n loadingState.listingAutoCodeApplying\n ) {\n return\n }\n\n setScriptAutoFreeGift(formattedScriptGifts)\n setFunctionAutoFreeGift(formattedFunctionGifts)\n }, [\n formattedScriptGifts,\n formattedFunctionGifts,\n loadingState.userCodeApplying,\n loadingState.editLineQuantityLoading,\n loadingState.editLineCodeAmountLoading,\n loadingState.listingAutoCodeApplying,\n ])\n\n const giftNeedAddToCartLines = useMemo(() => {\n const cartGiftLineItems = cart?.lineItems.filter(line =>\n line.customAttributes?.some((attr: any) => [CUSTOMER_ATTRIBUTE_KEY, CUSTOMER_SCRIPT_GIFT_KEY].includes(attr.key))\n )\n const result = [...scriptAutoFreeGift, ...functionAutoFreeGift].filter(\n item =>\n // \u5982\u679C\u8D2D\u7269\u8F66\u4E2D\u5DF2\u7ECF\u5B58\u5728\u5BF9\u5E94\u8D60\u54C1\uFF0C\u4E14\u6807\u8BB0\u4E86 function \u6EE1\u8D60\u7684\u5C5E\u6027\uFF0C\u5219\u4E0D\u6DFB\u52A0\n !cartGiftLineItems?.find(line => {\n return (\n line.variantId === item.line.variantId &&\n line.customAttributes?.some((attr: any) => {\n if (attr.key === '_discounts_function_env') {\n return getDiscountEnvAttributeValue(line.customAttributes).is_gift\n }\n\n return false\n })\n )\n })\n )\n return result\n }, [cart?.lineItems, scriptAutoFreeGift, functionAutoFreeGift])\n\n const removeCustomAttributes = useCallback((attributes: { key: string }[]) => {\n setCustomAttributes(prev => prev.filter((attr: AttributeInput) => !attributes.some(a => a.key === attr.key)))\n }, [])\n\n const addCustomAttributes = useCallback(\n (attributes: AttributeInput[]) => {\n const sameAttributes = attributes.filter(attr => customAttributes.some(a => a.key === attr.key))\n if (sameAttributes.length) {\n setCustomAttributes(prev => {\n // \u66F4\u65B0\u76F8\u540C\u7684\u5C5E\u6027\n const removedAttributes = prev.filter((attr: AttributeInput) => !sameAttributes.some(a => a.key === attr.key))\n return [...removedAttributes, ...attributes]\n })\n } else {\n // \u6DFB\u52A0\u65B0\u7684\u5C5E\u6027\n setCustomAttributes(prev => [...prev, ...attributes])\n }\n },\n [customAttributes]\n )\n\n return (\n <CartContext.Provider\n value={{\n cart,\n mutateCart,\n triggerFetch: fetchCart,\n isCartLoading,\n setCustomAttributes,\n addCustomAttributes: addCustomAttributes,\n removeCustomAttributes: removeCustomAttributes,\n calculatedAutoFreeGift: functionAutoFreeGiftResult || scriptAutoFreeGiftResult,\n isCodeChanging,\n setIsCodeChanging,\n setLoadingState,\n loadingState,\n // function\u6EE1\u8D60\n functionAutoFreeGift,\n functionAutoFreeGiftResult,\n setFunctionAutoFreeGift,\n // script\u6EE1\u8D60\n scriptAutoFreeGift,\n scriptAutoFreeGiftResult,\n setScriptAutoFreeGift,\n giftNeedAddToCartLines,\n }}\n >\n {children}\n </CartContext.Provider>\n )\n}\n\nexport const useCartContext = () => useContext(CartContext)\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["jsx", "createContext", "useContext", "useState", "useMemo", "useEffect", "useCallback", "useCalcAutoFreeGift", "getCart", "useRequest", "useHeadlessContext", "useUpdateCartAttributes", "useCartAttributes", "isAttributesEqual", "useUpdateLineCodeAmountAttributes", "useScriptAutoFreeGift", "formatScriptAutoFreeGift", "formatFunctionAutoFreeGift", "getDiscountEnvAttributeValue", "CUSTOMER_ATTRIBUTE_KEY", "CUSTOMER_SCRIPT_GIFT_KEY", "initialState", "CartContext", "CartProvider", "children", "autoFreeGiftConfig", "gradientGiftsConfig", "profile", "customer", "storefrontToken", "storeDomain", "cartIdCookieName", "locale", "customAttributes", "setCustomAttributes", "isCodeChanging", "setIsCodeChanging", "loadingState", "setLoadingState", "scriptAutoFreeGift", "setScriptAutoFreeGift", "functionAutoFreeGift", "setFunctionAutoFreeGift", "fetchCart", "cart", "isCartLoading", "mutateCart", "cartId", "row", "updateAttributes", "attributes", "newAttributes", "updatedCart", "functionAutoFreeGiftResult", "scriptAutoFreeGiftResult", "formattedScriptGifts", "formattedFunctionGifts", "giftNeedAddToCartLines", "cartGiftLineItems", "line", "attr", "item", "removeCustomAttributes", "prev", "a", "addCustomAttributes", "sameAttributes", "useCartContext"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Cart, Attributes } from '../../../shopify';
|
|
2
|
+
import { CartBuyerIdentityInput } from '../../../shopify/gql';
|
|
3
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
4
|
+
import { GtmParams } from '../../types';
|
|
5
|
+
type AddToCartLineItem = {
|
|
6
|
+
variant?: {
|
|
7
|
+
id: string;
|
|
8
|
+
};
|
|
9
|
+
variantId?: string;
|
|
10
|
+
quantity?: number;
|
|
11
|
+
attributes?: Attributes;
|
|
12
|
+
};
|
|
13
|
+
export type AddToCartArgs = {
|
|
14
|
+
lineItems: AddToCartLineItem[];
|
|
15
|
+
cartId?: string;
|
|
16
|
+
discountCodes?: string[];
|
|
17
|
+
customAttributes?: Attributes;
|
|
18
|
+
buyerIdentity?: CartBuyerIdentityInput;
|
|
19
|
+
gtmParams?: Exclude<GtmParams, 'brand'>;
|
|
20
|
+
needCreateCart?: boolean;
|
|
21
|
+
onCodesInvalid?: (updatedCart: Cart, invalidCodes: string[]) => Promise<Cart | undefined>;
|
|
22
|
+
};
|
|
23
|
+
type UseAddToCartProps = {
|
|
24
|
+
withTrack?: boolean;
|
|
25
|
+
};
|
|
26
|
+
export declare const useAddToCart: ({ withTrack }?: UseAddToCartProps, swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, AddToCartArgs> & {
|
|
27
|
+
throwOnError?: boolean;
|
|
28
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "add-to-cart", AddToCartArgs>;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=useAddToCart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useAddToCart.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useAddToCart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAA;AAE7D,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQvC,KAAK,iBAAiB,GAAG;IACvB,OAAO,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,UAAU,CAAC,EAAE,UAAU,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,iBAAiB,EAAE,CAAA;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,aAAa,CAAC,EAAE,sBAAsB,CAAA;IACtC,SAAS,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;IACvC,cAAc,CAAC,EAAE,OAAO,CAAA;IACxB,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;CAC1F,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,SAAS,CAAC,EAAE,OAAO,CAAA;CACpB,CAAA;AAED,eAAO,MAAM,YAAY,GACvB,gBAAsB,iBAAsB,EAC5C,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,GAAG;IACrF,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,sGA0HpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as b}from"react";import y from"swr/mutation";import{addCartLines as A,createCart as T}from"../../../shopify";import{useHeadlessContext as h}from"../../../context";import{defaultSWRMutationConfiguration as P}from"../../const";import{addToCartFbq as v}from"../../track/fbq";import{addToCartGa as q}from"../../track/gtm";const _=({withTrack:u=!0}={},m=P)=>{const{storefrontToken:e,storeDomain:a,brand:C}=h(),l=b(async(w,{arg:f})=>{const{lineItems:n,cartId:s,discountCodes:c,gtmParams:p={},buyerIdentity:g,needCreateCart:I=!1,onCodesInvalid:d}=f;if(!n||n.length===0)return;const i=n.map(r=>({merchandiseId:r.variant?.id||r.variantId||"",quantity:r.quantity||1,attributes:r.attributes})).filter(r=>r.merchandiseId&&r.quantity);let t;if(i.length>0&&(!s||I?t=await T({options:{lines:i,buyerIdentity:g,discountCodes:c},config:{storefrontToken:e,storeDomain:a}}):t=await A({options:{lines:i,cartId:s},config:{storefrontToken:e,storeDomain:a}})),t&&d){const r=t.discountCodes?.filter(o=>!o.applicable).map(o=>o.code);r?.length&&(t=await d(t,r)||t)}return u&&(v({lineItems:t?.lineItems||[]}),q({lineItems:t?.lineItems||[],gtmParams:{...p,brand:C}})),t},[e,a]);return y("add-to-cart",l,m)};export{_ as useAddToCart};
|
|
2
|
+
//# sourceMappingURL=useAddToCart.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useAddToCart.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart, Attributes } from '../../../shopify'\nimport { CartBuyerIdentityInput } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { GtmParams } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { addCartLines as addCartLinesFetcher, createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { addToCartFbq } from '../../track/fbq'\nimport { addToCartGa } from '../../track/gtm'\n\ntype AddToCartLineItem = {\n variant?: { id: string }\n variantId?: string\n quantity?: number\n attributes?: Attributes\n}\n\nexport type AddToCartArgs = {\n lineItems: AddToCartLineItem[]\n cartId?: string\n discountCodes?: string[]\n customAttributes?: Attributes\n buyerIdentity?: CartBuyerIdentityInput\n gtmParams?: Exclude<GtmParams, 'brand'>\n needCreateCart?: boolean // \u662F\u5426\u5F3A\u5236\u521B\u5EFA\u65B0\u8D2D\u7269\u8F66\n onCodesInvalid?: (updatedCart: Cart, invalidCodes: string[]) => Promise<Cart | undefined> // \u6298\u6263\u7801\u4E0D\u53EF\u7528\u65F6\u7684\u56DE\u8C03\n}\n\ntype UseAddToCartProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\uFF08\u6682\u65F6\u6CE8\u91CA\uFF0C\u9700\u8981\u65F6\u53EF\u4EE5\u542F\u7528\uFF09\n}\n\nexport const useAddToCart = (\n { withTrack = true }: UseAddToCartProps = {},\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, AddToCartArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain, brand } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: AddToCartArgs }) => {\n const {\n lineItems,\n cartId,\n discountCodes,\n gtmParams = {},\n buyerIdentity,\n needCreateCart = false,\n onCodesInvalid,\n } = arg\n\n if (!lineItems || lineItems.length === 0) {\n return\n }\n\n // const addToCartSpan = startInactiveSpan({\n // name: 'addToCart',\n // op: 'business',\n // })\n\n // \u51C6\u5907\u8981\u6DFB\u52A0\u7684\u5546\u54C1\u6570\u636E\n const linesToAdd = lineItems\n .map(item => ({\n merchandiseId: item.variant?.id || item.variantId || '',\n quantity: item.quantity || 1,\n attributes: item.attributes,\n }))\n .filter(item => item.merchandiseId && item.quantity)\n\n let resultCart: Cart | undefined\n\n if (linesToAdd.length > 0) {\n // const addToCartAPISpan = startInactiveSpan({\n // name: 'addToCartAPI',\n // op: 'business',\n // parentSpan: addToCartSpan,\n // })\n\n if (!cartId || needCreateCart) {\n // \u521B\u5EFA\u65B0\u8D2D\u7269\u8F66\n // const createCartApiSpan = startInactiveSpan({\n // name: 'createCartAPI',\n // op: 'business',\n // parentSpan: addToCartAPISpan,\n // })\n\n resultCart = await createCartFetcher({\n options: {\n lines: linesToAdd,\n buyerIdentity,\n discountCodes,\n },\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n // createCartApiSpan.end()\n } else {\n // \u6DFB\u52A0\u5230\u73B0\u6709\u8D2D\u7269\u8F66\n // const addCartLinesApiSpan = startInactiveSpan({\n // name: 'addCartLinesAPI',\n // op: 'business',\n // parentSpan: addToCartAPISpan,\n // })\n\n resultCart = await addCartLinesFetcher({\n options: {\n lines: linesToAdd,\n cartId,\n },\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n // addCartLinesApiSpan.end()\n }\n\n // addToCartAPISpan.end()\n }\n\n // \u68C0\u67E5\u662F\u5426\u6709\u4E0D\u53EF\u7528\u7684\u6298\u6263\u7801\n if (resultCart && onCodesInvalid) {\n const unApplicableCodes = resultCart.discountCodes\n ?.filter((item) => !item.applicable)\n .map((item) => item.code)\n\n if (unApplicableCodes?.length) {\n // const removeCartCodesApiSpan = startInactiveSpan({\n // name: 'removeCartCodesAPI',\n // op: 'business',\n // parentSpan: addToCartSpan,\n // })\n\n resultCart = (await onCodesInvalid(resultCart, unApplicableCodes)) || resultCart\n\n // removeCartCodesApiSpan.end()\n }\n }\n\n // \u57CB\u70B9\uFF08\u9700\u8981\u65F6\u53EF\u4EE5\u542F\u7528\uFF09\n if (withTrack) {\n addToCartFbq({ lineItems: resultCart?.lineItems || [] })\n addToCartGa({ lineItems: resultCart?.lineItems || [], gtmParams: { ...gtmParams, brand } })\n }\n\n // addToCartSpan.end()\n\n return resultCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('add-to-cart', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAGzD,OAAS,gBAAgBC,EAAqB,cAAcC,MAAyB,mBACrF,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAChD,OAAS,gBAAAC,MAAoB,kBAC7B,OAAS,eAAAC,MAAmB,kBAwBrB,MAAMC,EAAe,CAC1B,CAAE,UAAAC,EAAY,EAAK,EAAuB,CAAC,EAC3CC,EAEIL,IACD,CACH,KAAM,CAAE,gBAAAM,EAAiB,YAAAC,EAAa,MAAAC,CAAM,EAAIT,EAAmB,EAE7DU,EAAUd,EACd,MAAOe,EAAQ,CAAE,IAAAC,CAAI,IAA8B,CACjD,KAAM,CACJ,UAAAC,EACA,OAAAC,EACA,cAAAC,EACA,UAAAC,EAAY,CAAC,EACb,cAAAC,EACA,eAAAC,EAAiB,GACjB,eAAAC,CACF,EAAIP,EAEJ,GAAI,CAACC,GAAaA,EAAU,SAAW,EACrC,OASF,MAAMO,EAAaP,EAChB,IAAIQ,IAAS,CACZ,cAAeA,EAAK,SAAS,IAAMA,EAAK,WAAa,GACrD,SAAUA,EAAK,UAAY,EAC3B,WAAYA,EAAK,UACnB,EAAE,EACD,OAAOA,GAAQA,EAAK,eAAiBA,EAAK,QAAQ,EAErD,IAAIC,EAwDJ,GAtDIF,EAAW,OAAS,IAOlB,CAACN,GAAUI,EAQbI,EAAa,MAAMvB,EAAkB,CACnC,QAAS,CACP,MAAOqB,EACP,cAAAH,EACA,cAAAF,CACF,EACA,OAAQ,CACN,gBAAAR,EACA,YAAAC,CACF,CACF,CAAC,EAWDc,EAAa,MAAMxB,EAAoB,CACrC,QAAS,CACP,MAAOsB,EACP,OAAAN,CACF,EACA,OAAQ,CACN,gBAAAP,EACA,YAAAC,CACF,CACF,CAAC,GASDc,GAAcH,EAAgB,CAChC,MAAMI,EAAoBD,EAAW,eACjC,OAAQD,GAAS,CAACA,EAAK,UAAU,EAClC,IAAKA,GAASA,EAAK,IAAI,EAEtBE,GAAmB,SAOrBD,EAAc,MAAMH,EAAeG,EAAYC,CAAiB,GAAMD,EAI1E,CAGA,OAAIjB,IACFH,EAAa,CAAE,UAAWoB,GAAY,WAAa,CAAC,CAAE,CAAC,EACvDnB,EAAY,CAAE,UAAWmB,GAAY,WAAa,CAAC,EAAG,UAAW,CAAE,GAAGN,EAAW,MAAAP,CAAM,CAAE,CAAC,GAKrFa,CACT,EACA,CAACf,EAAiBC,CAAW,CAC/B,EAEA,OAAOX,EAAe,cAAea,EAASJ,CAAU,CAC1D",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "addCartLinesFetcher", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "addToCartFbq", "addToCartGa", "useAddToCart", "withTrack", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "cartId", "discountCodes", "gtmParams", "buyerIdentity", "needCreateCart", "onCodesInvalid", "linesToAdd", "item", "resultCart", "unApplicableCodes"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
3
|
+
export type ApplyCartCodesArgs = {
|
|
4
|
+
cartId: string;
|
|
5
|
+
discountCodes: string[];
|
|
6
|
+
currentCart?: Cart;
|
|
7
|
+
};
|
|
8
|
+
export declare const useApplyCartCodes: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, ApplyCartCodesArgs> & {
|
|
9
|
+
throwOnError?: boolean;
|
|
10
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "apply-cart-codes", ApplyCartCodesArgs>;
|
|
11
|
+
//# sourceMappingURL=useApplyCartCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useApplyCartCodes.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useApplyCartCodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAEvC,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAOvE,MAAM,MAAM,kBAAkB,GAAG;IAC/B,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,iBAAiB,GAC5B,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,kBAAkB,CAAC,GAAG;IAC1F,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,gHAqDpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as f}from"react";import g from"swr/mutation";import{updateCartCodes as m}from"../../../shopify";import{useHeadlessContext as h}from"../../../context";import{defaultSWRMutationConfiguration as w}from"../../const";const q=(d=w)=>{const{storefrontToken:r,storeDomain:e}=h(),p=f(async(A,{arg:u})=>{const{cartId:n,discountCodes:o,currentCart:C}=u;if(!o?.length)throw new Error("Invalid input used for this operation: Miss discountCode");if(!n)throw new Error("cartId is required");let c=C?.discountCodes?.filter(t=>t.applicable)||[];const l=[...new Set([...c.map(t=>t.code),...o])],i=await m({options:{cartId:n,discountCodes:l},config:{storefrontToken:r,storeDomain:e}}),s=o.filter(t=>i?.discountCodes?.find(a=>a.code===t&&!a.applicable));if(s.length)throw new Error(`${s.join(", ")} is not applicable to the cart`);return i},[r,e]);return g("apply-cart-codes",p,d)};export{q as useApplyCartCodes};
|
|
2
|
+
//# sourceMappingURL=useApplyCartCodes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useApplyCartCodes.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { MutationCartDiscountCodesUpdateArgs } from '../../../shopify/gql'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { updateCartCodes as updateCartCodesFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type ApplyCartCodesArgs = {\n cartId: string\n discountCodes: string[]\n currentCart?: Cart // \u5F53\u524D\u8D2D\u7269\u8F66\u72B6\u6001\uFF0C\u7528\u4E8E\u5408\u5E76\u5DF2\u6709\u7684\u6298\u6263\u7801\n}\n\nexport const useApplyCartCodes = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, ApplyCartCodesArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: ApplyCartCodesArgs }) => {\n const { cartId, discountCodes, currentCart } = arg\n\n if (!discountCodes?.length) {\n throw new Error('Invalid input used for this operation: Miss discountCode')\n }\n\n if (!cartId) {\n throw new Error('cartId is required')\n }\n\n // \u5408\u5E76\u5F53\u524D\u5DF2\u6709\u7684\u53EF\u7528\u6298\u6263\u7801\n let existingCodes = currentCart?.discountCodes?.filter(code => code.applicable) || []\n const uniqueCodes = [...new Set([...existingCodes.map(code => code.code), ...discountCodes])]\n\n // const applyCartCodesApiSpan = startInactiveSpan({\n // name: 'applyCartCodesAPI',\n // op: 'business',\n // })\n\n const updatedCart = await updateCartCodesFetcher({\n options: {\n cartId,\n discountCodes: uniqueCodes,\n },\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n // applyCartCodesApiSpan.end()\n\n // \u68C0\u67E5\u65B0\u6DFB\u52A0\u7684\u6298\u6263\u7801\u662F\u5426\u6709\u4E0D\u53EF\u7528\u7684\n const unApplicableCodes = discountCodes.filter((code) =>\n updatedCart?.discountCodes?.find((item) => item.code === code && !item.applicable)\n )\n\n if (unApplicableCodes.length) {\n throw new Error(`${unApplicableCodes.join(', ')} is not applicable to the cart`)\n }\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('apply-cart-codes', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAGzD,OAAS,mBAAmBC,MAA8B,mBAC1D,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAQzC,MAAMC,EAAoB,CAC/BC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IAAmC,CACtD,KAAM,CAAE,OAAAC,EAAQ,cAAAC,EAAe,YAAAC,CAAY,EAAIH,EAE/C,GAAI,CAACE,GAAe,OAClB,MAAM,IAAI,MAAM,0DAA0D,EAG5E,GAAI,CAACD,EACH,MAAM,IAAI,MAAM,oBAAoB,EAItC,IAAIG,EAAgBD,GAAa,eAAe,OAAOE,GAAQA,EAAK,UAAU,GAAK,CAAC,EACpF,MAAMC,EAAc,CAAC,GAAG,IAAI,IAAI,CAAC,GAAGF,EAAc,IAAIC,GAAQA,EAAK,IAAI,EAAG,GAAGH,CAAa,CAAC,CAAC,EAOtFK,EAAc,MAAMhB,EAAuB,CAC/C,QAAS,CACP,OAAAU,EACA,cAAeK,CACjB,EACA,OAAQ,CACN,gBAAAV,EACA,YAAAC,CACF,CACF,CAAC,EAKKW,EAAoBN,EAAc,OAAQG,GAC9CE,GAAa,eAAe,KAAME,GAASA,EAAK,OAASJ,GAAQ,CAACI,EAAK,UAAU,CACnF,EAEA,GAAID,EAAkB,OACpB,MAAM,IAAI,MAAM,GAAGA,EAAkB,KAAK,IAAI,CAAC,gCAAgC,EAGjF,OAAOD,CACT,EACA,CAACX,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,mBAAoBQ,EAASH,CAAU,CAC/D",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "updateCartCodesFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useApplyCartCodes", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg", "cartId", "discountCodes", "currentCart", "existingCodes", "code", "uniqueCodes", "updatedCart", "unApplicableCodes", "item"]
|
|
7
|
+
}
|
|
@@ -9,7 +9,7 @@ type UseBuyNowProps = {
|
|
|
9
9
|
export type BuyNowArgs = {
|
|
10
10
|
lineItems: BuyNowLineItems;
|
|
11
11
|
discountCodes?: string[];
|
|
12
|
-
customAttributes?: Attributes
|
|
12
|
+
customAttributes?: Attributes;
|
|
13
13
|
buyerIdentity?: CartBuyerIdentity;
|
|
14
14
|
gtmParams?: GtmParams;
|
|
15
15
|
fbqTrackConfig?: FbqBuyNowTrackConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"useBuyNow.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useBuyNow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAa,MAAM,kBAAkB,CAAA;AAEjF,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AACtD,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAQxD,KAAK,cAAc,GAAG;IACpB,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,kBAAkB,CAAC,EAAE,OAAO,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,SAAS,EAAE,eAAe,CAAA;IAC1B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAA;IACxB,gBAAgB,CAAC,EAAE,UAAU,CAAA;IAC7B,aAAa,CAAC,EAAE,iBAAiB,CAAA;IACjC,SAAS,CAAC,EAAE,SAAS,CAAA;IACrB,cAAc,CAAC,EAAE,oBAAoB,CAAA;CACtC,CAAA;AAED,eAAO,MAAM,SAAS,GACpB,oCAAiD,cAAmB,EACpE,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,CAAC,GAAG;IAClF,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,8FA6EpC,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{useCallback as
|
|
1
|
+
import{useCallback as w}from"react";import l from"swr/mutation";import{createCart as s}from"../../../shopify";import{useHeadlessContext as N}from"../../../context";import{defaultSWRMutationConfiguration as B}from"../../const";import{buyNowGa as I}from"../../track/gtm";import{buyNowFbq as q}from"../../track/fbq";const _=({withTrack:e=!0,redirectToCheckout:n=!0}={},u=B)=>{const{storefrontToken:m,storeDomain:f,brand:y}=N(),c=w(async(h,{arg:C})=>{const{lineItems:o,discountCodes:b,gtmParams:d={},buyerIdentity:p,fbqTrackConfig:a,customAttributes:g}=C;if(!o)return;const i=o.map(t=>({merchandiseId:t.variant.id,quantity:t.quantity||1,attributes:t.attributes})).filter(t=>t.merchandiseId&&t.quantity);let r;if(i.length>0&&(r=await s({options:{attributes:g,lines:i,buyerIdentity:p,discountCodes:b},config:{storefrontToken:m,storeDomain:f}})),e&&(I({lineItems:o,gtmParams:{...d,brand:y}}),a&&q({trackConfig:a})),n&&r?.url)window.location.href=r.url;else throw new Error("Failed to buy now");return r},[e,n,s]);return l("buyNow",c,u)};export{_ as useBuyNow};
|
|
2
2
|
//# sourceMappingURL=useBuyNow.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../src/cart/hooks/basic/useBuyNow.ts"],
|
|
4
|
-
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes
|
|
5
|
-
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAIzD,OAAS,cAAcC,MAAyB,mBAChD,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,
|
|
6
|
-
"names": ["useCallback", "useSWRMutation", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useBuyNow", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "linesToBuyNow", "item", "resultCart"]
|
|
4
|
+
"sourcesContent": ["import { Attributes, Cart, CartBuyerIdentity, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { FbqBuyNowTrackConfig } from '../../track/fbq'\nimport { GtmParams, BuyNowLineItems } from '../../types'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\nimport { buyNowGa } from '../../track/gtm'\nimport { buyNowFbq } from '../../track/fbq'\n\ntype UseBuyNowProps = {\n withTrack?: boolean // \u662F\u5426\u9700\u8981\u9ED8\u8BA4\u57CB\u70B9\n redirectToCheckout?: boolean // \u662F\u5426\u91CD\u5B9A\u5411\u5230\u7ED3\u8D26\u9875\n}\n\nexport type BuyNowArgs = {\n lineItems: BuyNowLineItems\n discountCodes?: string[]\n customAttributes?: Attributes\n buyerIdentity?: CartBuyerIdentity\n gtmParams?: GtmParams\n fbqTrackConfig?: FbqBuyNowTrackConfig\n}\n\nexport const useBuyNow = (\n { withTrack = true, redirectToCheckout = true }: UseBuyNowProps = {},\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, BuyNowArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain, brand } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: BuyNowArgs }) => {\n const { lineItems, discountCodes, gtmParams = {}, buyerIdentity, fbqTrackConfig,customAttributes } = arg\n\n if (!lineItems) {\n return\n }\n\n // const buyNowSpan = startInactiveSpan({\n // name: 'buyNow',\n // op: 'business',\n // })\n\n const linesToBuyNow = lineItems\n .map(item => ({\n merchandiseId: item.variant.id,\n quantity: item.quantity || 1,\n attributes: item.attributes,\n }))\n .filter(item => item.merchandiseId && item.quantity)\n\n let resultCart: Cart | undefined\n if (linesToBuyNow.length > 0) {\n // const buyNowAPISpan = startInactiveSpan({\n // name: 'buyNowAPI',\n // op: 'business',\n // parentSpan: buyNowSpan,\n // })\n\n // const createCartApiSpan = startInactiveSpan({\n // name: 'createCartAPI',\n // op: 'business',\n // parentSpan: buyNowAPISpan,\n // })\n // \u521B\u5EFA\u8D2D\u7269\u8F66\n const createCartOptions = {\n attributes: customAttributes,\n lines: linesToBuyNow,\n buyerIdentity,\n discountCodes,\n } as CartInput\n resultCart = await createCartFetcher({\n options: createCartOptions,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n // createCartApiSpan.end()\n\n // buyNowAPISpan.end()\n }\n\n // \u57CB\u70B9\n if (withTrack) {\n buyNowGa({ lineItems, gtmParams: { ...gtmParams, brand } })\n if (fbqTrackConfig) {\n buyNowFbq({ trackConfig: fbqTrackConfig })\n }\n }\n\n // buyNowSpan.end()\n if (redirectToCheckout && resultCart?.url) {\n window.location.href = resultCart.url\n } else {\n throw new Error('Failed to buy now')\n }\n return resultCart\n },\n [withTrack, redirectToCheckout, createCartFetcher]\n )\n\n return useSWRMutation('buyNow', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eAIzD,OAAS,cAAcC,MAAyB,mBAChD,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAChD,OAAS,YAAAC,MAAgB,kBACzB,OAAS,aAAAC,MAAiB,kBAgBnB,MAAMC,EAAY,CACvB,CAAE,UAAAC,EAAY,GAAM,mBAAAC,EAAqB,EAAK,EAAoB,CAAC,EACnEC,EAEIN,IACD,CACH,KAAM,CAAE,gBAAAO,EAAiB,YAAAC,EAAa,MAAAC,CAAM,EAAIV,EAAmB,EAE7DW,EAAUd,EACd,MAAOe,EAAQ,CAAE,IAAAC,CAAI,IAA2B,CAC9C,KAAM,CAAE,UAAAC,EAAW,cAAAC,EAAe,UAAAC,EAAY,CAAC,EAAG,cAAAC,EAAe,eAAAC,EAAe,iBAAAC,CAAiB,EAAIN,EAErG,GAAI,CAACC,EACH,OAQF,MAAMM,EAAgBN,EACnB,IAAIO,IAAS,CACZ,cAAeA,EAAK,QAAQ,GAC5B,SAAUA,EAAK,UAAY,EAC3B,WAAYA,EAAK,UACnB,EAAE,EACD,OAAOA,GAAQA,EAAK,eAAiBA,EAAK,QAAQ,EAErD,IAAIC,EAyCJ,GAxCIF,EAAc,OAAS,IAmBzBE,EAAa,MAAMvB,EAAkB,CACnC,QAPwB,CACxB,WAAYoB,EACZ,MAAOC,EACP,cAAAH,EACA,cAAAF,CACF,EAGE,OAAQ,CACN,gBAAAP,EACA,YAAAC,CACF,CACF,CAAC,GAOCJ,IACFH,EAAS,CAAE,UAAAY,EAAW,UAAW,CAAE,GAAGE,EAAW,MAAAN,CAAM,CAAE,CAAC,EACtDQ,GACFf,EAAU,CAAE,YAAae,CAAe,CAAC,GAKzCZ,GAAsBgB,GAAY,IACpC,OAAO,SAAS,KAAOA,EAAW,QAElC,OAAM,IAAI,MAAM,mBAAmB,EAErC,OAAOA,CACT,EACA,CAACjB,EAAWC,EAAoBP,CAAiB,CACnD,EAEA,OAAOD,EAAe,SAAUa,EAASJ,CAAU,CACrD",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "buyNowGa", "buyNowFbq", "useBuyNow", "withTrack", "redirectToCheckout", "swrOptions", "storefrontToken", "storeDomain", "brand", "trigger", "_", "arg", "lineItems", "discountCodes", "gtmParams", "buyerIdentity", "fbqTrackConfig", "customAttributes", "linesToBuyNow", "item", "resultCart"]
|
|
7
7
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { Cart, CartInput } from '../../../shopify';
|
|
2
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
3
|
+
export type CreateCartArgs = CartInput;
|
|
4
|
+
export declare const useCreateCart: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, CreateCartArgs> & {
|
|
5
|
+
throwOnError?: boolean;
|
|
6
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "create-cart", CartInput>;
|
|
7
|
+
//# sourceMappingURL=useCreateCart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCreateCart.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useCreateCart.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAA;AAElD,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAKvE,MAAM,MAAM,cAAc,GAAG,SAAS,CAAA;AAEtC,eAAO,MAAM,aAAa,GACxB,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG;IACtF,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,kGAmBpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as n}from"react";import i from"swr/mutation";import{createCart as C}from"../../../shopify";import{useHeadlessContext as s}from"../../../context";import{defaultSWRMutationConfiguration as u}from"../../const";const x=(o=u)=>{const{storefrontToken:t,storeDomain:r}=s(),a=n(async(p,{arg:e})=>await C({options:e,config:{storefrontToken:t,storeDomain:r}}),[t,r]);return i("create-cart",a,o)};export{x as useCreateCart};
|
|
2
|
+
//# sourceMappingURL=useCreateCart.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useCreateCart.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart, CartInput } from '../../../shopify'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { createCart as createCartFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type CreateCartArgs = CartInput\n\nexport const useCreateCart = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, CreateCartArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: CreateCartArgs }) => {\n const updatedCart = await createCartFetcher({\n options: arg,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('create-cart', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AACA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,cAAcC,MAAyB,mBAChD,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAIzC,MAAMC,EAAgB,CAC3BC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IACC,MAAMT,EAAkB,CAC1C,QAASS,EACT,OAAQ,CACN,gBAAAJ,EACA,YAAAC,CACF,CACF,CAAC,EAGH,CAACD,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,cAAeQ,EAASH,CAAU,CAC1D",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "createCartFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useCreateCart", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
3
|
+
export type RemoveCartCodesArgs = {
|
|
4
|
+
cartId: string;
|
|
5
|
+
discountCodes: string[];
|
|
6
|
+
currentCart?: Cart;
|
|
7
|
+
};
|
|
8
|
+
export declare const useRemoveCartCodes: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, RemoveCartCodesArgs> & {
|
|
9
|
+
throwOnError?: boolean;
|
|
10
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "remove-cart-codes", RemoveCartCodesArgs>;
|
|
11
|
+
//# sourceMappingURL=useRemoveCartCodes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRemoveCartCodes.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useRemoveCartCodes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AAGvC,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAKvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,aAAa,EAAE,MAAM,EAAE,CAAA;IACvB,WAAW,CAAC,EAAE,IAAI,CAAA;CACnB,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,kHAqCpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as u}from"react";import c from"swr/mutation";import{updateCartCodes as m}from"../../../shopify";import{useHeadlessContext as p}from"../../../context";import{defaultSWRMutationConfiguration as f}from"../../const";const E=(s=f)=>{const{storefrontToken:o,storeDomain:r}=p(),n=u(async(g,{arg:i})=>{const{cartId:e,discountCodes:a,currentCart:d}=i;if(!e)throw new Error("cartId is required");const C=(d?.discountCodes?.filter(t=>!!t.applicable)||[]).filter(t=>a?.length?!a.includes(t.code):t.code).map(t=>t.code);return await m({options:{cartId:e,discountCodes:C},config:{storefrontToken:o,storeDomain:r}})},[o,r]);return c("remove-cart-codes",n,s)};export{E as useRemoveCartCodes};
|
|
2
|
+
//# sourceMappingURL=useRemoveCartCodes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useRemoveCartCodes.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { MutationCartDiscountCodesUpdateArgs } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { updateCartCodes as updateCartCodesFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type RemoveCartCodesArgs = {\n cartId: string\n discountCodes: string[]\n currentCart?: Cart // \u5F53\u524D\u8D2D\u7269\u8F66\u72B6\u6001\uFF0C\u7528\u4E8E\u8FC7\u6EE4\u5DF2\u6709\u7684\u6298\u6263\u7801\n}\n\nexport const useRemoveCartCodes = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, RemoveCartCodesArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: RemoveCartCodesArgs }) => {\n const { cartId, discountCodes, currentCart } = arg\n\n if (!cartId) {\n throw new Error('cartId is required')\n }\n\n // \u83B7\u53D6\u5F53\u524D\u53EF\u7528\u7684\u6298\u6263\u7801\n let codes = currentCart?.discountCodes?.filter((code) => !!code.applicable) || []\n\n // \u8FC7\u6EE4\u6389\u8981\u5220\u9664\u7684\u6298\u6263\u7801\n const leftCodes = codes\n .filter((code) => (discountCodes?.length ? !discountCodes.includes(code.code) : code.code))\n .map((code) => code.code)\n\n const updatedCart = await updateCartCodesFetcher({\n options: {\n cartId,\n discountCodes: leftCodes,\n },\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('remove-cart-codes', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,mBAAmBC,MAA8B,mBAC1D,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAQzC,MAAMC,EAAqB,CAChCC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IAAoC,CACvD,KAAM,CAAE,OAAAC,EAAQ,cAAAC,EAAe,YAAAC,CAAY,EAAIH,EAE/C,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,oBAAoB,EAOtC,MAAMG,GAHMD,GAAa,eAAe,OAAQE,GAAS,CAAC,CAACA,EAAK,UAAU,GAAK,CAAC,GAI7E,OAAQA,GAAUH,GAAe,OAAS,CAACA,EAAc,SAASG,EAAK,IAAI,EAAIA,EAAK,IAAK,EACzF,IAAKA,GAASA,EAAK,IAAI,EAa1B,OAXoB,MAAMd,EAAuB,CAC/C,QAAS,CACP,OAAAU,EACA,cAAeG,CACjB,EACA,OAAQ,CACN,gBAAAR,EACA,YAAAC,CACF,CACF,CAAC,CAGH,EACA,CAACD,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,oBAAqBQ,EAASH,CAAU,CAChE",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "updateCartCodesFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useRemoveCartCodes", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg", "cartId", "discountCodes", "currentCart", "leftCodes", "code"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { MutationCartLinesRemoveArgs } from '../../../shopify/gql';
|
|
3
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
4
|
+
export type RemoveCartLinesArgs = MutationCartLinesRemoveArgs & {
|
|
5
|
+
autoRemoveInvalidCodes?: boolean;
|
|
6
|
+
onCodesRemoved?: (updatedCart: Cart, removedCodes: string[]) => Promise<Cart | undefined>;
|
|
7
|
+
};
|
|
8
|
+
export declare const useRemoveCartLines: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, RemoveCartLinesArgs> & {
|
|
9
|
+
throwOnError?: boolean;
|
|
10
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "remove-cart-lines", RemoveCartLinesArgs>;
|
|
11
|
+
//# sourceMappingURL=useRemoveCartLines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRemoveCartLines.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useRemoveCartLines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAKvE,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,GAAG;IAC9D,sBAAsB,CAAC,EAAE,OAAO,CAAA;IAChC,cAAc,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,GAAG,SAAS,CAAC,CAAA;CAC1F,CAAA;AAED,eAAO,MAAM,kBAAkB,GAC7B,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,kHAkCpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as d}from"react";import f from"swr/mutation";import{removeCartLines as p}from"../../../shopify";import{useHeadlessContext as v}from"../../../context";import{defaultSWRMutationConfiguration as g}from"../../const";const x=(i=g)=>{const{storefrontToken:t,storeDomain:r}=v(),s=d(async(l,{arg:m})=>{const{autoRemoveInvalidCodes:C=!0,onCodesRemoved:n,...u}=m;let e=await p({options:u,config:{storefrontToken:t,storeDomain:r}});if(e&&C){const a=e.discountCodes?.filter(o=>!o.applicable).map(o=>o.code);a?.length&&n&&(e=await n(e,a)||e)}return e},[t,r]);return f("remove-cart-lines",s,i)};export{x as useRemoveCartLines};
|
|
2
|
+
//# sourceMappingURL=useRemoveCartLines.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useRemoveCartLines.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { MutationCartLinesRemoveArgs } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { removeCartLines as removeCartLinesFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type RemoveCartLinesArgs = MutationCartLinesRemoveArgs & {\n autoRemoveInvalidCodes?: boolean // \u662F\u5426\u81EA\u52A8\u79FB\u9664\u4E0D\u53EF\u7528\u7684\u6298\u6263\u7801\n onCodesRemoved?: (updatedCart: Cart, removedCodes: string[]) => Promise<Cart | undefined> // \u79FB\u9664\u6298\u6263\u7801\u7684\u56DE\u8C03\n}\n\nexport const useRemoveCartLines = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, RemoveCartLinesArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: RemoveCartLinesArgs }) => {\n const { autoRemoveInvalidCodes = true, onCodesRemoved, ...removeArgs } = arg\n\n let updatedCart = await removeCartLinesFetcher({\n options: removeArgs,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n // \u81EA\u52A8\u79FB\u9664\u4E0D\u53EF\u7528\u7684\u6298\u6263\u7801\n if (updatedCart && autoRemoveInvalidCodes) {\n const unApplicableCodes = updatedCart.discountCodes\n ?.filter((item) => !item.applicable)\n .map((item) => item.code)\n\n if (unApplicableCodes?.length && onCodesRemoved) {\n // \u5982\u679C\u63D0\u4F9B\u4E86\u56DE\u8C03\u51FD\u6570\uFF0C\u4F7F\u7528\u56DE\u8C03\u5904\u7406\n updatedCart = (await onCodesRemoved(updatedCart, unApplicableCodes)) || updatedCart\n }\n }\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('remove-cart-lines', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,mBAAmBC,MAA8B,mBAC1D,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAOzC,MAAMC,EAAqB,CAChCC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IAAoC,CACvD,KAAM,CAAE,uBAAAC,EAAyB,GAAM,eAAAC,EAAgB,GAAGC,CAAW,EAAIH,EAEzE,IAAII,EAAc,MAAMb,EAAuB,CAC7C,QAASY,EACT,OAAQ,CACN,gBAAAP,EACA,YAAAC,CACF,CACF,CAAC,EAGD,GAAIO,GAAeH,EAAwB,CACzC,MAAMI,EAAoBD,EAAY,eAClC,OAAQE,GAAS,CAACA,EAAK,UAAU,EAClC,IAAKA,GAASA,EAAK,IAAI,EAEtBD,GAAmB,QAAUH,IAE/BE,EAAe,MAAMF,EAAeE,EAAaC,CAAiB,GAAMD,EAE5E,CAEA,OAAOA,CACT,EACA,CAACR,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,oBAAqBQ,EAASH,CAAU,CAChE",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "removeCartLinesFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useRemoveCartLines", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg", "autoRemoveInvalidCodes", "onCodesRemoved", "removeArgs", "updatedCart", "unApplicableCodes", "item"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { MutationCartAttributesUpdateArgs } from '../../../shopify/gql';
|
|
3
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
4
|
+
export type UpdateCartAttributesArgs = MutationCartAttributesUpdateArgs;
|
|
5
|
+
export declare const useUpdateCartAttributes: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartAttributesArgs> & {
|
|
6
|
+
throwOnError?: boolean;
|
|
7
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "update-cart-attributes", MutationCartAttributesUpdateArgs>;
|
|
8
|
+
//# sourceMappingURL=useUpdateCartAttributes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateCartAttributes.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useUpdateCartAttributes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,gCAAgC,EAAE,MAAM,sBAAsB,CAAA;AAEvE,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAMvE,MAAM,MAAM,wBAAwB,GAAG,gCAAgC,CAAA;AAEvE,eAAO,MAAM,uBAAuB,GAClC,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,wBAAwB,CAAC,GAAG;IAChG,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,oIA2BpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as i}from"react";import n from"swr/mutation";import{updateCartAttributes as u}from"../../../shopify";import{useHeadlessContext as s}from"../../../context";import{defaultSWRMutationConfiguration as p}from"../../const";const S=(a=p)=>{const{storefrontToken:t,storeDomain:r}=s(),o=i(async(d,{arg:e})=>await u({options:e,config:{storefrontToken:t,storeDomain:r}}),[t,r]);return n("update-cart-attributes",o,a)};export{S as useUpdateCartAttributes};
|
|
2
|
+
//# sourceMappingURL=useUpdateCartAttributes.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useUpdateCartAttributes.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { MutationCartAttributesUpdateArgs } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { updateCartAttributes as updateCartAttributesFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\n// import { startInactiveSpan } from '@sentry/nextjs'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type UpdateCartAttributesArgs = MutationCartAttributesUpdateArgs\n\nexport const useUpdateCartAttributes = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartAttributesArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: UpdateCartAttributesArgs }) => {\n // const updateCartAttributesApiSpan = startInactiveSpan({\n // name: 'updateCartAttributesAPI',\n // op: 'business',\n // })\n\n const updatedCart = await updateCartAttributesFetcher({\n options: arg,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n // updateCartAttributesApiSpan.end()\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('update-cart-attributes', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,wBAAwBC,MAAmC,mBACpE,OAAS,sBAAAC,MAA0B,mBAEnC,OAAS,mCAAAC,MAAuC,cAIzC,MAAMC,EAA0B,CACrCC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IAMC,MAAMT,EAA4B,CACpD,QAASS,EACT,OAAQ,CACN,gBAAAJ,EACA,YAAAC,CACF,CACF,CAAC,EAMH,CAACD,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,yBAA0BQ,EAASH,CAAU,CACrE",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "updateCartAttributesFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useUpdateCartAttributes", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { MutationCartBuyerIdentityUpdateArgs } from '../../../shopify/gql';
|
|
3
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
4
|
+
export type UpdateCartBuyerIdentityArgs = MutationCartBuyerIdentityUpdateArgs;
|
|
5
|
+
export declare const useUpdateCartBuyerIdentity: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartBuyerIdentityArgs> & {
|
|
6
|
+
throwOnError?: boolean;
|
|
7
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "update-cart-buyer-identity", MutationCartBuyerIdentityUpdateArgs>;
|
|
8
|
+
//# sourceMappingURL=useUpdateCartBuyerIdentity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateCartBuyerIdentity.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useUpdateCartBuyerIdentity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,mCAAmC,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAKvE,MAAM,MAAM,2BAA2B,GAAG,mCAAmC,CAAA;AAE7E,eAAO,MAAM,0BAA0B,GACrC,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,2BAA2B,CAAC,GAAG;IACnG,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,2IAoBpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as n}from"react";import i from"swr/mutation";import{updateCartBuyerIdentity as u}from"../../../shopify";import{useHeadlessContext as d}from"../../../context";import{defaultSWRMutationConfiguration as p}from"../../const";const A=(e=p)=>{const{storefrontToken:t,storeDomain:r}=d(),o=n(async(s,{arg:a})=>await u({options:a,config:{storefrontToken:t,storeDomain:r}}),[t,r]);return i("update-cart-buyer-identity",o,e)};export{A as useUpdateCartBuyerIdentity};
|
|
2
|
+
//# sourceMappingURL=useUpdateCartBuyerIdentity.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useUpdateCartBuyerIdentity.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { MutationCartBuyerIdentityUpdateArgs } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { updateCartBuyerIdentity as updateCartBuyerIdentityFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type UpdateCartBuyerIdentityArgs = MutationCartBuyerIdentityUpdateArgs\n\nexport const useUpdateCartBuyerIdentity = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartBuyerIdentityArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: UpdateCartBuyerIdentityArgs }) => {\n const updatedCart = await updateCartBuyerIdentityFetcher({\n options: arg,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('update-cart-buyer-identity', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,2BAA2BC,MAAsC,mBAC1E,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAIzC,MAAMC,EAA6B,CACxCC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IACC,MAAMT,EAA+B,CACvD,QAASS,EACT,OAAQ,CACN,gBAAAJ,EACA,YAAAC,CACF,CACF,CAAC,EAIH,CAACD,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,6BAA8BQ,EAASH,CAAU,CACzE",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "updateCartBuyerIdentityFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useUpdateCartBuyerIdentity", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Cart } from '../../../shopify';
|
|
2
|
+
import { MutationCartLinesUpdateArgs } from '../../../shopify/gql';
|
|
3
|
+
import { SWRMutationConfiguration } from 'swr/mutation';
|
|
4
|
+
export type UpdateCartLinesArgs = MutationCartLinesUpdateArgs;
|
|
5
|
+
export declare const useUpdateCartLines: (swrOptions?: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartLinesArgs> & {
|
|
6
|
+
throwOnError?: boolean;
|
|
7
|
+
}) => import("swr/mutation").SWRMutationResponse<Cart | undefined, Error, "update-cart-lines", MutationCartLinesUpdateArgs>;
|
|
8
|
+
//# sourceMappingURL=useUpdateCartLines.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useUpdateCartLines.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/basic/useUpdateCartLines.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAElE,OAAuB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAA;AAKvE,MAAM,MAAM,mBAAmB,GAAG,2BAA2B,CAAA;AAE7D,eAAO,MAAM,kBAAkB,GAC7B,aAAY,wBAAwB,CAAC,IAAI,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,mBAAmB,CAAC,GAAG;IAC3F,YAAY,CAAC,EAAE,OAAO,CAAA;CACW,0HAoBpC,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useCallback as n}from"react";import i from"swr/mutation";import{updateCartLines as s}from"../../../shopify";import{useHeadlessContext as p}from"../../../context";import{defaultSWRMutationConfiguration as u}from"../../const";const S=(o=u)=>{const{storefrontToken:t,storeDomain:r}=p(),a=n(async(d,{arg:e})=>await s({options:e,config:{storefrontToken:t,storeDomain:r}}),[t,r]);return i("update-cart-lines",a,o)};export{S as useUpdateCartLines};
|
|
2
|
+
//# sourceMappingURL=useUpdateCartLines.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/basic/useUpdateCartLines.ts"],
|
|
4
|
+
"sourcesContent": ["import { Cart } from '../../../shopify'\nimport { MutationCartLinesUpdateArgs } from '../../../shopify/gql'\nimport { useCallback } from 'react'\nimport useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { updateCartLines as updateCartLinesFetcher } from '../../../shopify'\nimport { useHeadlessContext } from '../../../context'\nimport { defaultSWRMutationConfiguration } from '../../const'\n\nexport type UpdateCartLinesArgs = MutationCartLinesUpdateArgs\n\nexport const useUpdateCartLines = (\n swrOptions: SWRMutationConfiguration<Cart | undefined, Error, string, UpdateCartLinesArgs> & {\n throwOnError?: boolean\n } = defaultSWRMutationConfiguration\n) => {\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n const trigger = useCallback(\n async (_: any, { arg }: { arg: UpdateCartLinesArgs }) => {\n const updatedCart = await updateCartLinesFetcher({\n options: arg,\n config: {\n storefrontToken,\n storeDomain,\n },\n })\n\n return updatedCart\n },\n [storefrontToken, storeDomain]\n )\n\n return useSWRMutation('update-cart-lines', trigger, swrOptions)\n}\n"],
|
|
5
|
+
"mappings": "AAEA,OAAS,eAAAA,MAAmB,QAC5B,OAAOC,MAAkD,eACzD,OAAS,mBAAmBC,MAA8B,mBAC1D,OAAS,sBAAAC,MAA0B,mBACnC,OAAS,mCAAAC,MAAuC,cAIzC,MAAMC,EAAqB,CAChCC,EAEIF,IACD,CACH,KAAM,CAAE,gBAAAG,EAAiB,YAAAC,CAAY,EAAIL,EAAmB,EAEtDM,EAAUT,EACd,MAAOU,EAAQ,CAAE,IAAAC,CAAI,IACC,MAAMT,EAAuB,CAC/C,QAASS,EACT,OAAQ,CACN,gBAAAJ,EACA,YAAAC,CACF,CACF,CAAC,EAIH,CAACD,EAAiBC,CAAW,CAC/B,EAEA,OAAOP,EAAe,oBAAqBQ,EAASH,CAAU,CAChE",
|
|
6
|
+
"names": ["useCallback", "useSWRMutation", "updateCartLinesFetcher", "useHeadlessContext", "defaultSWRMutationConfiguration", "useUpdateCartLines", "swrOptions", "storefrontToken", "storeDomain", "trigger", "_", "arg"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { FunctionGiftResult, AutoFreeGiftConfig } from '../../types/autoFreeGift';
|
|
2
|
+
/**
|
|
3
|
+
* [计算型 Hook]
|
|
4
|
+
* 根据购物车、活动配置和用户信息,计算出应得的赠品和下一个目标。
|
|
5
|
+
* 此 Hook 不产生任何副作用。
|
|
6
|
+
* 使用示例:
|
|
7
|
+
* const { qualifyingGift, nextTierGoal, activeCampaign, isLoading } = useCalcAutoFreeGift(cart, autoFreeGiftConfig);
|
|
8
|
+
*/
|
|
9
|
+
export declare const useCalcAutoFreeGift: (cart: any, autoFreeGiftConfig: AutoFreeGiftConfig, customer: any) => FunctionGiftResult;
|
|
10
|
+
//# sourceMappingURL=useCalcAutoFreeGift.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCalcAutoFreeGift.d.ts","sourceRoot":"","sources":["../../../../../src/cart/hooks/feature/useCalcAutoFreeGift.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAgC,kBAAkB,EAAE,MAAM,0BAA0B,CAAA;AAS/G;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,GAC9B,MAAM,GAAG,EACT,oBAAoB,kBAAkB,EACtC,UAAU,GAAG,KACZ,kBA4JF,CAAA"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{useMemo as a,useRef as R}from"react";import{preCheck as k}from"../../utils/autoFreeGift";import{getMatchedMainProductSubTotal as x}from"../../utils/autoFreeGift";import{CUSTOMER_ATTRIBUTE_KEY as A}from"../../../shopify/utils/const";import{btoaID as S}from"../../../shopify/utils/helper";import{getProductsByHandles as q}from"../../../shopify/fetchers";import w from"swr";import{useHeadlessContext as H}from"../../../context";const W=(g,f,d)=>{const y=a(()=>d?.tags||[],[d?.tags]),v=a(()=>!d,[d]),c="",{storefrontToken:T,storeDomain:h}=H(),l=R(null),{activeCampaign:s,subtotal:m}=a(()=>{for(const e of f){const{rule_conditions:t=[],rule_result:u}=e,{spend_get_reward:r}=u||{};if(k(t,y,c?[c]:[])&&r){const i=x(g,r.main_product?.variant_list?.map(p=>p.variant_id)||[],{spend_money_type:r.main_product?.spend_money_type||1,variant_id_list:r.main_product?.variant_list?.map(p=>p.variant_id)||[],all_store_variant:r.main_product?.all_store_variant||!1});if(i>0)return{activeCampaign:e,subtotal:i}}}return{activeCampaign:null,subtotal:0}},[f,g,y,c]),{qualifyingGift:C,nextTierGoal:P}=a(()=>{if(!s||!s.rule_result?.spend_get_reward?.gift_product)return{qualifyingGift:null,nextTierGoal:null};const e=s.rule_result.spend_get_reward.gift_product,t=e.findLast(n=>m>=Number(n.spend_sum_money)),u=e.find(n=>m<Number(n.spend_sum_money));return t?{qualifyingGift:{tier:t,itemsToAdd:t.reward_list?.map(n=>{const i=n?.variant_list?.[0];return i?{variant:{id:S(i.variant_id),handle:i.handle,sku:i.sku},quantity:n?.get_unit||1,attributes:[{key:A,value:JSON.stringify({is_gift:!0,rule_id:s.rule_id,spend_sum_money:t.spend_sum_money})}]}:null}).filter(n=>n!==null)},nextTierGoal:u||null}:{qualifyingGift:null,nextTierGoal:u||null}},[s,m]),o=a(()=>f.map(t=>t.rule_result?.spend_get_reward?.gift_product?.map(u=>u.reward_list.map(r=>r.variant_list.map(n=>n.handle))).flat()).flat().flat(2),[f]),_=a(()=>!(!o.length||l.current&&JSON.stringify(l.current.giftHandles)===JSON.stringify(o)),[o]),{data:G}=w(_?o:null,async()=>{const e=await q({options:{handles:o},config:{storefrontToken:T,storeDomain:h}}),t=Array.isArray(e)?e:[];return l.current={data:t,giftHandles:[...o]},t}),b=a(()=>l.current&&!_?l.current.data||void 0:G,[G,_]);return{qualifyingGift:C,nextTierGoal:P,activeCampaign:s,isLoading:v,giftProductsResult:b}};export{W as useCalcAutoFreeGift};
|
|
2
|
+
//# sourceMappingURL=useCalcAutoFreeGift.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../src/cart/hooks/feature/useCalcAutoFreeGift.tsx"],
|
|
4
|
+
"sourcesContent": ["import { useMemo, useRef } from 'react'\nimport { FunctionGiftResult, FormattedGift, CartLineInput, AutoFreeGiftConfig } from '../../types/autoFreeGift'\nimport { preCheck } from '../../utils/autoFreeGift'\nimport { getMatchedMainProductSubTotal } from '../../utils/autoFreeGift'\nimport { CUSTOMER_ATTRIBUTE_KEY } from '../../../shopify/utils/const'\nimport { btoaID } from '../../../shopify/utils/helper'\nimport { getProductsByHandles } from '../../../shopify/fetchers'\nimport useSWR from 'swr'\nimport { useHeadlessContext } from '../../../context'\n\n/**\n * [\u8BA1\u7B97\u578B Hook]\n * \u6839\u636E\u8D2D\u7269\u8F66\u3001\u6D3B\u52A8\u914D\u7F6E\u548C\u7528\u6237\u4FE1\u606F\uFF0C\u8BA1\u7B97\u51FA\u5E94\u5F97\u7684\u8D60\u54C1\u548C\u4E0B\u4E00\u4E2A\u76EE\u6807\u3002\n * \u6B64 Hook \u4E0D\u4EA7\u751F\u4EFB\u4F55\u526F\u4F5C\u7528\u3002\n * \u4F7F\u7528\u793A\u4F8B\uFF1A\n * const { qualifyingGift, nextTierGoal, activeCampaign, isLoading } = useCalcAutoFreeGift(cart, autoFreeGiftConfig);\n */\nexport const useCalcAutoFreeGift = (\n cart: any,\n autoFreeGiftConfig: AutoFreeGiftConfig,\n customer: any\n): FunctionGiftResult => {\n const tags = useMemo(() => customer?.tags || [], [customer?.tags])\n const isCustomerLoading = useMemo(() => (!customer ? true : false), [customer])\n const dealsType: string = '' // \u53EF\u4ECEURL\u6216Context\u83B7\u53D6\n const { storefrontToken, storeDomain } = useHeadlessContext()\n\n // \u4F7F\u7528 useRef \u7F13\u5B58 giftProductsResult\uFF0C\u786E\u4FDD\u53EA\u6267\u884C\u4E00\u6B21\n const giftProductsCache = useRef<{\n data: any[] | null\n giftHandles: string[]\n } | null>(null)\n\n // 1. \u627E\u5230\u5F53\u524D\u751F\u6548\u7684\u6D3B\u52A8\u548C\u7528\u4E8E\u8BA1\u7B97\u7684\u5B50\u603B\u4EF7\n const { activeCampaign, subtotal } = useMemo(() => {\n // \u904D\u5386\u6240\u6709\u6D3B\u52A8\u914D\u7F6E\n for (const campaign of autoFreeGiftConfig) {\n const { rule_conditions = [], rule_result } = campaign\n const { spend_get_reward } = rule_result || {}\n\n // \u524D\u7F6E\u68C0\u67E5\uFF0C\u5224\u65AD\u7528\u6237\u548C\u73AF\u5883\u662F\u5426\u6EE1\u8DB3\u6D3B\u52A8\u6761\u4EF6\n const isPreCheckPassed = preCheck(rule_conditions, tags, dealsType ? [dealsType] : [])\n\n if (isPreCheckPassed && spend_get_reward) {\n // \u8BA1\u7B97\u53C2\u4E0E\u6D3B\u52A8\u7684\u4E3B\u5546\u54C1\u7684\u603B\u4EF7\n const matchedSubtotal = getMatchedMainProductSubTotal(\n cart,\n spend_get_reward.main_product?.variant_list?.map((v: any) => v.variant_id) || [],\n {\n spend_money_type: spend_get_reward.main_product?.spend_money_type || 1,\n variant_id_list: spend_get_reward.main_product?.variant_list?.map((v: any) => v.variant_id) || [],\n all_store_variant: spend_get_reward.main_product?.all_store_variant || false,\n }\n )\n\n // \u5982\u679C\u6709\u4E3B\u5546\u54C1\u5728\u8D2D\u7269\u8F66\u4E2D\uFF0C\u5219\u6B64\u6D3B\u52A8\u4E3A\u5F53\u524D\u751F\u6548\u7684\u6D3B\u52A8\n if (matchedSubtotal > 0) {\n return { activeCampaign: campaign, subtotal: matchedSubtotal }\n }\n }\n }\n // \u6CA1\u6709\u627E\u5230\u751F\u6548\u7684\u6D3B\u52A8\n return { activeCampaign: null, subtotal: 0 }\n }, [autoFreeGiftConfig, cart, tags, dealsType])\n\n // 2. \u6839\u636E\u5B50\u603B\u4EF7\uFF0C\u8BA1\u7B97\u5E94\u5F97\u8D60\u54C1\u548C\u4E0B\u4E00\u4E2A\u76EE\u6807\n const { qualifyingGift, nextTierGoal } = useMemo(() => {\n if (!activeCampaign || !activeCampaign.rule_result?.spend_get_reward?.gift_product) {\n return { qualifyingGift: null, nextTierGoal: null }\n }\n\n const giftTiers = activeCampaign.rule_result.spend_get_reward.gift_product\n\n // a. \u627E\u5230\u5F53\u524D\u6EE1\u8DB3\u6761\u4EF6\u7684\u6700\u9AD8\u9636\u68AF (findLast)\n const qualifyingTier = giftTiers.findLast(tier => subtotal >= Number(tier.spend_sum_money))\n\n // b. \u627E\u5230\u4E0B\u4E00\u4E2A\u76EE\u6807\u9636\u68AF (\u7B2C\u4E00\u4E2A\u95E8\u69DB\u6BD4\u5F53\u524Dsubtotal\u9AD8\u7684)\n const nextGoal = giftTiers.find(tier => subtotal < Number(tier.spend_sum_money))\n\n if (!qualifyingTier) {\n return { qualifyingGift: null, nextTierGoal: nextGoal || null }\n }\n\n // c. \u5C06\u5E94\u5F97\u7684\u8D60\u54C1\u9636\u68AF\u683C\u5F0F\u5316\u4E3A\u5F85\u6DFB\u52A0\u8D2D\u7269\u8F66\u7684\u7ED3\u6784\n const formattedGift: FormattedGift = {\n tier: qualifyingTier,\n itemsToAdd: qualifyingTier.reward_list\n ?.map(reward => {\n const giftProduct = reward?.variant_list?.[0]\n if (!giftProduct) return null\n return {\n variant: {\n id: btoaID(giftProduct.variant_id),\n handle: giftProduct.handle,\n sku: giftProduct.sku,\n },\n quantity: reward?.get_unit || 1,\n attributes: [\n {\n key: CUSTOMER_ATTRIBUTE_KEY,\n value: JSON.stringify({\n is_gift: true,\n rule_id: activeCampaign.rule_id,\n spend_sum_money: qualifyingTier.spend_sum_money,\n }),\n },\n ],\n }\n })\n .filter((item): item is CartLineInput => item !== null),\n }\n\n return { qualifyingGift: formattedGift, nextTierGoal: nextGoal || null }\n }, [activeCampaign, subtotal])\n\n const giftHandles = useMemo(() => {\n const giftVariant = autoFreeGiftConfig\n .map(item =>\n item.rule_result?.spend_get_reward?.gift_product\n ?.map(v => v.reward_list.map(reward => reward.variant_list.map(variant => variant.handle)))\n .flat()\n )\n .flat()\n return giftVariant.flat(2)\n }, [autoFreeGiftConfig])\n\n // \u68C0\u67E5\u662F\u5426\u9700\u8981\u91CD\u65B0\u83B7\u53D6\u6570\u636E\n const shouldFetch = useMemo(() => {\n if (!giftHandles.length) return false\n\n // \u5982\u679C\u7F13\u5B58\u5B58\u5728\u4E14 handles \u76F8\u540C\uFF0C\u76F4\u63A5\u4F7F\u7528\u7F13\u5B58\n if (\n giftProductsCache.current &&\n JSON.stringify(giftProductsCache.current.giftHandles) === JSON.stringify(giftHandles)\n ) {\n return false\n }\n\n return true\n }, [giftHandles])\n\n const { data: giftProductsResult } = useSWR(shouldFetch ? giftHandles : null, async () => {\n const res = await getProductsByHandles({\n options: {\n handles: giftHandles,\n },\n config: {\n storefrontToken: storefrontToken,\n storeDomain: storeDomain,\n },\n })\n const result = Array.isArray(res) ? res : []\n\n // \u7F13\u5B58\u7ED3\u679C\n giftProductsCache.current = {\n data: result,\n giftHandles: [...giftHandles],\n }\n\n return result\n })\n\n // \u4F7F\u7528\u7F13\u5B58\u7684\u6570\u636E\u6216\u65B0\u83B7\u53D6\u7684\u6570\u636E\n const finalGiftProductsResult = useMemo(() => {\n if (giftProductsCache.current && !shouldFetch) {\n return giftProductsCache.current.data || undefined\n }\n return giftProductsResult\n }, [giftProductsResult, shouldFetch])\n\n return {\n qualifyingGift,\n nextTierGoal,\n activeCampaign,\n isLoading: isCustomerLoading,\n giftProductsResult: finalGiftProductsResult,\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["useMemo", "useRef", "preCheck", "getMatchedMainProductSubTotal", "CUSTOMER_ATTRIBUTE_KEY", "btoaID", "getProductsByHandles", "useSWR", "useHeadlessContext", "useCalcAutoFreeGift", "cart", "autoFreeGiftConfig", "customer", "tags", "isCustomerLoading", "dealsType", "storefrontToken", "storeDomain", "giftProductsCache", "activeCampaign", "subtotal", "campaign", "rule_conditions", "rule_result", "spend_get_reward", "matchedSubtotal", "v", "qualifyingGift", "nextTierGoal", "giftTiers", "qualifyingTier", "tier", "nextGoal", "reward", "giftProduct", "item", "giftHandles", "variant", "shouldFetch", "giftProductsResult", "res", "result", "finalGiftProductsResult"]
|
|
7
|
+
}
|