@anker-in/campaign-ui 0.2.10-beta.1 → 0.2.10-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (132) hide show
  1. package/dist/cjs/components/credits/context/hooks/useActivities.js +1 -1
  2. package/dist/cjs/components/credits/context/hooks/useActivities.js.map +2 -2
  3. package/dist/cjs/components/credits/context/hooks/useMyRewards.js +1 -1
  4. package/dist/cjs/components/credits/context/hooks/useMyRewards.js.map +2 -2
  5. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.d.ts +1 -1
  6. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  7. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js.map +2 -2
  8. package/dist/cjs/components/credits/context/hooks/useRedeemCoupon.js +1 -1
  9. package/dist/cjs/components/credits/context/hooks/useRedeemCoupon.js.map +2 -2
  10. package/dist/cjs/components/credits/context/hooks/useRedeemProduct.js +1 -1
  11. package/dist/cjs/components/credits/context/hooks/useRedeemProduct.js.map +2 -2
  12. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
  13. package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  14. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +1 -1
  15. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +2 -2
  16. package/dist/cjs/components/credits/context/hooks/useSubscribed.js +1 -1
  17. package/dist/cjs/components/credits/context/hooks/useSubscribed.js.map +2 -2
  18. package/dist/cjs/components/credits/creditsCash/index.js +1 -1
  19. package/dist/cjs/components/credits/creditsCash/index.js.map +2 -2
  20. package/dist/cjs/components/credits/creditsCash/type.d.ts +1 -1
  21. package/dist/cjs/components/credits/creditsCash/type.js.map +1 -1
  22. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  23. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +2 -2
  24. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  25. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +2 -2
  26. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  27. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +2 -2
  28. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  29. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  30. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  31. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +2 -2
  32. package/dist/cjs/components/credits/creditsRedeemList/index.js +1 -1
  33. package/dist/cjs/components/credits/creditsRedeemList/index.js.map +2 -2
  34. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js +1 -1
  35. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js.map +2 -2
  36. package/dist/cjs/components/credits/type.d.ts +1 -1
  37. package/dist/cjs/components/credits/type.js.map +1 -1
  38. package/dist/cjs/index.d.ts +6 -6
  39. package/dist/cjs/index.js +1 -1
  40. package/dist/cjs/index.js.map +2 -2
  41. package/dist/cjs/shopify/context/ShopifyProvider.d.ts +1 -1
  42. package/dist/cjs/shopify/fetchers/create-cart.d.ts +1 -1
  43. package/dist/cjs/shopify/fetchers/get-products-by-handles.d.ts +1 -1
  44. package/dist/cjs/shopify/hooks/useProductsByHandles.d.ts +1 -1
  45. package/dist/cjs/shopify/types/cart.d.ts +1 -1
  46. package/dist/cjs/shopify/types/fetcher.d.ts +1 -1
  47. package/dist/cjs/shopify/types/product.d.ts +1 -1
  48. package/dist/cjs/shopify/utils/cookie.d.ts +1 -1
  49. package/dist/cjs/shopify/utils/fetch-graphql-api.d.ts +1 -1
  50. package/dist/cjs/shopify/utils/normalize/cart.d.ts +3 -3
  51. package/dist/cjs/shopify/utils/normalize/customer.d.ts +1 -1
  52. package/dist/esm/components/credits/context/hooks/useActivities.js +1 -1
  53. package/dist/esm/components/credits/context/hooks/useActivities.js.map +2 -2
  54. package/dist/esm/components/credits/context/hooks/useMyRewards.js +1 -1
  55. package/dist/esm/components/credits/context/hooks/useMyRewards.js.map +2 -2
  56. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.d.ts +1 -1
  57. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  58. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js.map +2 -2
  59. package/dist/esm/components/credits/context/hooks/useRedeemCoupon.js +1 -1
  60. package/dist/esm/components/credits/context/hooks/useRedeemCoupon.js.map +2 -2
  61. package/dist/esm/components/credits/context/hooks/useRedeemProduct.js +1 -1
  62. package/dist/esm/components/credits/context/hooks/useRedeemProduct.js.map +2 -2
  63. package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
  64. package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +2 -2
  65. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +1 -1
  66. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +2 -2
  67. package/dist/esm/components/credits/context/hooks/useSubscribed.js +1 -1
  68. package/dist/esm/components/credits/context/hooks/useSubscribed.js.map +2 -2
  69. package/dist/esm/components/credits/creditsCash/index.js +1 -1
  70. package/dist/esm/components/credits/creditsCash/index.js.map +2 -2
  71. package/dist/esm/components/credits/creditsCash/type.d.ts +1 -1
  72. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  73. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +2 -2
  74. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  75. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js.map +2 -2
  76. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  77. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +2 -2
  78. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  79. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
  80. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  81. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +2 -2
  82. package/dist/esm/components/credits/creditsRedeemList/index.js +1 -1
  83. package/dist/esm/components/credits/creditsRedeemList/index.js.map +2 -2
  84. package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.js +1 -1
  85. package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.js.map +2 -2
  86. package/dist/esm/components/credits/type.d.ts +1 -1
  87. package/dist/esm/index.d.ts +6 -6
  88. package/dist/esm/index.js +1 -1
  89. package/dist/esm/index.js.map +2 -2
  90. package/dist/esm/shopify/context/ShopifyProvider.d.ts +1 -1
  91. package/dist/esm/shopify/fetchers/create-cart.d.ts +1 -1
  92. package/dist/esm/shopify/fetchers/get-products-by-handles.d.ts +1 -1
  93. package/dist/esm/shopify/hooks/useProductsByHandles.d.ts +1 -1
  94. package/dist/esm/shopify/types/cart.d.ts +1 -1
  95. package/dist/esm/shopify/types/fetcher.d.ts +1 -1
  96. package/dist/esm/shopify/types/product.d.ts +1 -1
  97. package/dist/esm/shopify/utils/cookie.d.ts +1 -1
  98. package/dist/esm/shopify/utils/fetch-graphql-api.d.ts +1 -1
  99. package/dist/esm/shopify/utils/normalize/cart.d.ts +3 -3
  100. package/dist/esm/shopify/utils/normalize/customer.d.ts +1 -1
  101. package/package.json +1 -1
  102. package/src/components/credits/context/hooks/useActivities.ts +1 -1
  103. package/src/components/credits/context/hooks/useMyRewards.ts +1 -1
  104. package/src/components/credits/context/hooks/useRedeemAndBuy.ts +2 -2
  105. package/src/components/credits/context/hooks/useRedeemCoupon.ts +1 -1
  106. package/src/components/credits/context/hooks/useRedeemProduct.ts +1 -1
  107. package/src/components/credits/context/hooks/useRedeemableList.ts +1 -1
  108. package/src/components/credits/context/hooks/useSendEmailValidation.ts +1 -1
  109. package/src/components/credits/context/hooks/useSubscribed.ts +1 -1
  110. package/src/components/credits/creditsCash/index.tsx +2 -2
  111. package/src/components/credits/creditsCash/type.ts +1 -1
  112. package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +1 -1
  113. package/src/components/credits/creditsRedeemList/RedeemCouponModal.tsx +1 -1
  114. package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +1 -1
  115. package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +1 -1
  116. package/src/components/credits/creditsRedeemList/RedeemProductModal/index.tsx +1 -1
  117. package/src/components/credits/creditsRedeemList/index.tsx +1 -1
  118. package/src/components/credits/creditsWaysToGetCredits/useActions.ts +1 -1
  119. package/src/components/credits/type.ts +1 -1
  120. package/src/index.ts +6 -6
  121. package/src/shopify/context/ShopifyProvider.tsx +1 -1
  122. package/src/shopify/fetchers/create-cart.ts +2 -2
  123. package/src/shopify/fetchers/get-products-by-handles.ts +2 -2
  124. package/src/shopify/hooks/useCreateCart.ts +1 -1
  125. package/src/shopify/hooks/useProductsByHandles.ts +2 -2
  126. package/src/shopify/types/cart.ts +1 -1
  127. package/src/shopify/types/fetcher.ts +1 -1
  128. package/src/shopify/types/product.ts +1 -1
  129. package/src/shopify/utils/cookie.ts +1 -1
  130. package/src/shopify/utils/fetch-graphql-api.ts +1 -1
  131. package/src/shopify/utils/normalize/cart.ts +3 -3
  132. package/src/shopify/utils/normalize/customer.ts +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var x=(t,a)=>{for(var d in a)s(t,d,{get:a[d],enumerable:!0})},u=(t,a,d,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let m of c(a))!n.call(t,m)&&m!==d&&s(t,m,{get:()=>a[m],enumerable:!(i=o(a,m))||i.enumerable});return t};var f=t=>u(s({},"__esModule",{value:!0}),t);var b={};x(b,{ProductInfo:()=>v});module.exports=f(b);var e=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),r=require("../../context/utils"),p=require("../../../../shopify/context/ShopifyProvider");const v=({item:t,copy:a})=>{const{locale:d}=(0,p.useShopifyContext)();return(0,e.jsxs)("div",{className:"flex w-full items-center justify-center md:items-start md:justify-start",children:[(0,e.jsx)(l.Picture,{className:"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:hidden md:size-[44px] [&_img]:h-full [&_img]:w-auto [&_img]:object-contain",source:t.variant.image?.url||t.product?.images[0]?.url,alt:t.product.title}),(0,e.jsxs)("div",{className:"md:flex md:flex-col",children:[(0,e.jsxs)("div",{className:"md:flex md:items-center",children:[(0,e.jsx)(l.Picture,{className:"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:size-[44px] min-md:hidden [&_img]:h-full [&_img]:w-auto [&_img]:object-contain",source:t.variant.image?.url||t.product?.images[0]?.url,alt:t.product.title}),(0,e.jsx)("div",{className:"flex-1 text-[16px] font-bold leading-[1.4] min-l:!hidden",title:t.product.title,children:t.product.title})]}),(0,e.jsxs)("div",{className:"mt-[16px] md:mt-[12px]",children:[(0,e.jsx)("div",{className:"mb-[12px] line-clamp-1 text-[16px] font-bold l:!hidden",title:t.product.title,children:t.product.title}),(0,e.jsxs)("div",{className:"flex font-semibold leading-[1.4] md:flex-col",children:[(0,e.jsxs)("div",{className:"mr-[40px] text-[15px] font-bold text-[#777] md:mr-0 md:text-[12px]",children:[(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.variantLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:t.variant.title||""})]}),(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.shippingFeeLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:(0,r.formatPrice)({amount:0,currencyCode:t.product.price?.currencyCode,locale:d||"us"})})]})]}),(0,e.jsxs)("div",{className:"text-[15px] font-bold text-[#777] md:text-[12px]",children:[(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.quantityLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:"1"})]}),(0,e.jsxs)("div",{className:"l:flex l:items-center l:justify-between",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.totalPriceLabel,": "]}),(0,e.jsxs)("span",{className:"ml-1",children:[t.alpc?.consumeCredits," ",a?.pointUnit]})]})]})]})]})]})]})};
1
+ "use strict";var s=Object.defineProperty;var o=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var n=Object.prototype.hasOwnProperty;var x=(t,a)=>{for(var d in a)s(t,d,{get:a[d],enumerable:!0})},u=(t,a,d,i)=>{if(a&&typeof a=="object"||typeof a=="function")for(let m of c(a))!n.call(t,m)&&m!==d&&s(t,m,{get:()=>a[m],enumerable:!(i=o(a,m))||i.enumerable});return t};var f=t=>u(s({},"__esModule",{value:!0}),t);var b={};x(b,{ProductInfo:()=>v});module.exports=f(b);var e=require("react/jsx-runtime"),l=require("@anker-in/headless-ui"),r=require("../../context/utils"),p=require("@shopify/context/ShopifyProvider");const v=({item:t,copy:a})=>{const{locale:d}=(0,p.useShopifyContext)();return(0,e.jsxs)("div",{className:"flex w-full items-center justify-center md:items-start md:justify-start",children:[(0,e.jsx)(l.Picture,{className:"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:hidden md:size-[44px] [&_img]:h-full [&_img]:w-auto [&_img]:object-contain",source:t.variant.image?.url||t.product?.images[0]?.url,alt:t.product.title}),(0,e.jsxs)("div",{className:"md:flex md:flex-col",children:[(0,e.jsxs)("div",{className:"md:flex md:items-center",children:[(0,e.jsx)(l.Picture,{className:"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:size-[44px] min-md:hidden [&_img]:h-full [&_img]:w-auto [&_img]:object-contain",source:t.variant.image?.url||t.product?.images[0]?.url,alt:t.product.title}),(0,e.jsx)("div",{className:"flex-1 text-[16px] font-bold leading-[1.4] min-l:!hidden",title:t.product.title,children:t.product.title})]}),(0,e.jsxs)("div",{className:"mt-[16px] md:mt-[12px]",children:[(0,e.jsx)("div",{className:"mb-[12px] line-clamp-1 text-[16px] font-bold l:!hidden",title:t.product.title,children:t.product.title}),(0,e.jsxs)("div",{className:"flex font-semibold leading-[1.4] md:flex-col",children:[(0,e.jsxs)("div",{className:"mr-[40px] text-[15px] font-bold text-[#777] md:mr-0 md:text-[12px]",children:[(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.variantLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:t.variant.title||""})]}),(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.shippingFeeLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:(0,r.formatPrice)({amount:0,currencyCode:t.product.price?.currencyCode,locale:d||"us"})})]})]}),(0,e.jsxs)("div",{className:"text-[15px] font-bold text-[#777] md:text-[12px]",children:[(0,e.jsxs)("div",{className:"mb-[8px] flex items-center md:mb-[4px]",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.quantityLabel,": "]}),(0,e.jsx)("span",{className:"ml-1",children:"1"})]}),(0,e.jsxs)("div",{className:"l:flex l:items-center l:justify-between",children:[(0,e.jsxs)("span",{children:[a.redeemModal.product.totalPriceLabel,": "]}),(0,e.jsxs)("span",{className:"ml-1",children:[t.alpc?.consumeCredits," ",a?.pointUnit]})]})]})]})]})]})]})};
2
2
  //# sourceMappingURL=ProductInfo.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx"],
4
- "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport { formatPrice } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType } from '../../type'\nimport { CreditsRedeemListCopy } from '../type'\nimport { useShopifyContext } from '../../../../shopify/context/ShopifyProvider'\n\ntype ProductInfoProps = {\n item: RedeemableItemType\n copy: CreditsRedeemListCopy\n}\n\nexport const ProductInfo = ({ item, copy }: ProductInfoProps) => {\n const { locale } = useShopifyContext()\n\n return (\n <div className=\"flex w-full items-center justify-center md:items-start md:justify-start\">\n <Picture\n className=\"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:hidden md:size-[44px] [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n source={item.variant.image?.url || item.product?.images[0]?.url}\n alt={item.product.title}\n ></Picture>\n <div className=\"md:flex md:flex-col\">\n <div className=\"md:flex md:items-center\">\n <Picture\n className=\"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:size-[44px] min-md:hidden [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n source={item.variant.image?.url || item.product?.images[0]?.url}\n alt={item.product.title}\n ></Picture>\n <div className=\"flex-1 text-[16px] font-bold leading-[1.4] min-l:!hidden\" title={item.product.title}>\n {item.product.title}\n </div>\n </div>\n\n <div className=\"mt-[16px] md:mt-[12px]\">\n <div className=\"mb-[12px] line-clamp-1 text-[16px] font-bold l:!hidden\" title={item.product.title}>\n {item.product.title}\n </div>\n <div className=\"flex font-semibold leading-[1.4] md:flex-col\">\n <div className=\"mr-[40px] text-[15px] font-bold text-[#777] md:mr-0 md:text-[12px]\">\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.variantLabel}: </span>\n <span className=\"ml-1\">{item.variant.title || ''}</span>\n </div>\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.shippingFeeLabel}: </span>\n <span className=\"ml-1\">\n {formatPrice({\n amount: 0,\n currencyCode: item.product.price?.currencyCode!,\n locale: locale || 'us',\n })}\n </span>\n </div>\n </div>\n <div className=\"text-[15px] font-bold text-[#777] md:text-[12px]\">\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.quantityLabel}: </span>\n <span className=\"ml-1\">1</span>\n </div>\n <div className=\"l:flex l:items-center l:justify-between\">\n <span>{copy.redeemModal.product.totalPriceLabel}: </span>\n <span className=\"ml-1\">\n {item.alpc?.consumeCredits} {copy?.pointUnit}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAgBM,IAAAI,EAAA,6BAhBNC,EAAwB,iCACxBC,EAA4B,+BAG5BC,EAAkC,uDAO3B,MAAML,EAAc,CAAC,CAAE,KAAAM,EAAM,KAAAC,CAAK,IAAwB,CAC/D,KAAM,CAAE,OAAAC,CAAO,KAAI,qBAAkB,EAErC,SACE,QAAC,OAAI,UAAU,0EACb,oBAAC,WACC,UAAU,6HACV,OAAQF,EAAK,QAAQ,OAAO,KAAOA,EAAK,SAAS,OAAO,CAAC,GAAG,IAC5D,IAAKA,EAAK,QAAQ,MACnB,KACD,QAAC,OAAI,UAAU,sBACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,WACC,UAAU,iIACV,OAAQA,EAAK,QAAQ,OAAO,KAAOA,EAAK,SAAS,OAAO,CAAC,GAAG,IAC5D,IAAKA,EAAK,QAAQ,MACnB,KACD,OAAC,OAAI,UAAU,2DAA2D,MAAOA,EAAK,QAAQ,MAC3F,SAAAA,EAAK,QAAQ,MAChB,GACF,KAEA,QAAC,OAAI,UAAU,yBACb,oBAAC,OAAI,UAAU,yDAAyD,MAAOA,EAAK,QAAQ,MACzF,SAAAA,EAAK,QAAQ,MAChB,KACA,QAAC,OAAI,UAAU,+CACb,qBAAC,OAAI,UAAU,qEACb,qBAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAC,EAAK,YAAY,QAAQ,aAAa,MAAE,KAC/C,OAAC,QAAK,UAAU,OAAQ,SAAAD,EAAK,QAAQ,OAAS,GAAG,GACnD,KACA,QAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAC,EAAK,YAAY,QAAQ,iBAAiB,MAAE,KACnD,OAAC,QAAK,UAAU,OACb,2BAAY,CACX,OAAQ,EACR,aAAcD,EAAK,QAAQ,OAAO,aAClC,OAAQE,GAAU,IACpB,CAAC,EACH,GACF,GACF,KACA,QAAC,OAAI,UAAU,mDACb,qBAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAD,EAAK,YAAY,QAAQ,cAAc,MAAE,KAChD,OAAC,QAAK,UAAU,OAAO,aAAC,GAC1B,KACA,QAAC,OAAI,UAAU,0CACb,qBAAC,QAAM,UAAAA,EAAK,YAAY,QAAQ,gBAAgB,MAAE,KAClD,QAAC,QAAK,UAAU,OACb,UAAAD,EAAK,MAAM,eAAe,IAAEC,GAAM,WACrC,GACF,GACF,GACF,GACF,GACF,GACF,CAEJ",
4
+ "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport { formatPrice } from '../../context/utils'\nimport type { RedeemableItem as RedeemableItemType } from '../../type'\nimport { CreditsRedeemListCopy } from '../type'\nimport { useShopifyContext } from '@shopify/context/ShopifyProvider'\n\ntype ProductInfoProps = {\n item: RedeemableItemType\n copy: CreditsRedeemListCopy\n}\n\nexport const ProductInfo = ({ item, copy }: ProductInfoProps) => {\n const { locale } = useShopifyContext()\n\n return (\n <div className=\"flex w-full items-center justify-center md:items-start md:justify-start\">\n <Picture\n className=\"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:hidden md:size-[44px] [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n source={item.variant.image?.url || item.product?.images[0]?.url}\n alt={item.product.title}\n ></Picture>\n <div className=\"md:flex md:flex-col\">\n <div className=\"md:flex md:items-center\">\n <Picture\n className=\"mr-[16px] size-[100px] shrink-0 md:mr-[12px] md:size-[44px] min-md:hidden [&_img]:h-full [&_img]:w-auto [&_img]:object-contain\"\n source={item.variant.image?.url || item.product?.images[0]?.url}\n alt={item.product.title}\n ></Picture>\n <div className=\"flex-1 text-[16px] font-bold leading-[1.4] min-l:!hidden\" title={item.product.title}>\n {item.product.title}\n </div>\n </div>\n\n <div className=\"mt-[16px] md:mt-[12px]\">\n <div className=\"mb-[12px] line-clamp-1 text-[16px] font-bold l:!hidden\" title={item.product.title}>\n {item.product.title}\n </div>\n <div className=\"flex font-semibold leading-[1.4] md:flex-col\">\n <div className=\"mr-[40px] text-[15px] font-bold text-[#777] md:mr-0 md:text-[12px]\">\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.variantLabel}: </span>\n <span className=\"ml-1\">{item.variant.title || ''}</span>\n </div>\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.shippingFeeLabel}: </span>\n <span className=\"ml-1\">\n {formatPrice({\n amount: 0,\n currencyCode: item.product.price?.currencyCode!,\n locale: locale || 'us',\n })}\n </span>\n </div>\n </div>\n <div className=\"text-[15px] font-bold text-[#777] md:text-[12px]\">\n <div className=\"mb-[8px] flex items-center md:mb-[4px]\">\n <span>{copy.redeemModal.product.quantityLabel}: </span>\n <span className=\"ml-1\">1</span>\n </div>\n <div className=\"l:flex l:items-center l:justify-between\">\n <span>{copy.redeemModal.product.totalPriceLabel}: </span>\n <span className=\"ml-1\">\n {item.alpc?.consumeCredits} {copy?.pointUnit}\n </span>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAgBM,IAAAI,EAAA,6BAhBNC,EAAwB,iCACxBC,EAA4B,+BAG5BC,EAAkC,4CAO3B,MAAML,EAAc,CAAC,CAAE,KAAAM,EAAM,KAAAC,CAAK,IAAwB,CAC/D,KAAM,CAAE,OAAAC,CAAO,KAAI,qBAAkB,EAErC,SACE,QAAC,OAAI,UAAU,0EACb,oBAAC,WACC,UAAU,6HACV,OAAQF,EAAK,QAAQ,OAAO,KAAOA,EAAK,SAAS,OAAO,CAAC,GAAG,IAC5D,IAAKA,EAAK,QAAQ,MACnB,KACD,QAAC,OAAI,UAAU,sBACb,qBAAC,OAAI,UAAU,0BACb,oBAAC,WACC,UAAU,iIACV,OAAQA,EAAK,QAAQ,OAAO,KAAOA,EAAK,SAAS,OAAO,CAAC,GAAG,IAC5D,IAAKA,EAAK,QAAQ,MACnB,KACD,OAAC,OAAI,UAAU,2DAA2D,MAAOA,EAAK,QAAQ,MAC3F,SAAAA,EAAK,QAAQ,MAChB,GACF,KAEA,QAAC,OAAI,UAAU,yBACb,oBAAC,OAAI,UAAU,yDAAyD,MAAOA,EAAK,QAAQ,MACzF,SAAAA,EAAK,QAAQ,MAChB,KACA,QAAC,OAAI,UAAU,+CACb,qBAAC,OAAI,UAAU,qEACb,qBAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAC,EAAK,YAAY,QAAQ,aAAa,MAAE,KAC/C,OAAC,QAAK,UAAU,OAAQ,SAAAD,EAAK,QAAQ,OAAS,GAAG,GACnD,KACA,QAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAC,EAAK,YAAY,QAAQ,iBAAiB,MAAE,KACnD,OAAC,QAAK,UAAU,OACb,2BAAY,CACX,OAAQ,EACR,aAAcD,EAAK,QAAQ,OAAO,aAClC,OAAQE,GAAU,IACpB,CAAC,EACH,GACF,GACF,KACA,QAAC,OAAI,UAAU,mDACb,qBAAC,OAAI,UAAU,yCACb,qBAAC,QAAM,UAAAD,EAAK,YAAY,QAAQ,cAAc,MAAE,KAChD,OAAC,QAAK,UAAU,OAAO,aAAC,GAC1B,KACA,QAAC,OAAI,UAAU,0CACb,qBAAC,QAAM,UAAAA,EAAK,YAAY,QAAQ,gBAAgB,MAAE,KAClD,QAAC,QAAK,UAAU,OACb,UAAAD,EAAK,MAAM,eAAe,IAAEC,GAAM,WACrC,GACF,GACF,GACF,GACF,GACF,GACF,CAEJ",
6
6
  "names": ["ProductInfo_exports", "__export", "ProductInfo", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_utils", "import_ShopifyProvider", "item", "copy", "locale"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var W=Object.create;var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var j=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},N=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Y(e))!$.call(r,i)&&i!==t&&g(r,i,{get:()=>e[i],enumerable:!(a=X(e,i))||a.enumerable});return r};var S=(r,e,t)=>(t=r!=null?W(Z(r)):{},N(e||!r||!r.__esModule?g(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>N(g({},"__esModule",{value:!0}),r);var oe={};j(oe,{default:()=>re});module.exports=D(oe);var l=require("react/jsx-runtime"),v=S(require("classnames")),s=require("react"),y=require("../../context/provider"),L=S(require("../../context/hooks/useCountries")),f=require("../../context/const"),x=require("../../context/hooks/useAddressValidate"),U=require("../../context/hooks/useRedeemProduct"),O=require("../../modal/modalContainer"),q=require("../../../../shopify/context/ShopifyProvider"),w=require("./Error"),F=require("./Success"),K=require("./Address"),_=require("./Init");function ee({item:r,copy:e,onError:t,...a}){const{fetchCreditInfo:i,profile:b}=(0,y.useCreditsContext)(),{storeDomain:k,locale:T}=(0,q.useShopifyContext)(),{validatorInfo:B}=e,{shippingAddress:G,shippingProduct:P}=e.redeemModal.product,[m,c]=(0,s.useState)("init"),[n,J]=(0,s.useState)(),[V,p]=(0,s.useState)({code:0,message:"",imageUrl:""}),[C,u]=(0,s.useState)(!1),{countries:R=[],isLoading:de}=(0,L.default)({shopifyStoreDomain:k}),{isMutating:M,trigger:A}=(0,U.useRedeemProduct)({onSuccess(o){if(!o){c("error"),p({code:0,imageUrl:e.redeemModal.errorImageUrl||"",message:e.redeemModal.commonError||""});return}if(o?.code===0)i(b?.user_id),c("success");else{let d,I;o.code===f.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(d=e.redeemModal.redeemLimitError,u(!0)):o.code===f.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(d=e.redeemModal.inventoryNotEnough,u(!0),I=e.redeemModal.inventoryNotEnough):o.code===f.AlpcErrorCode.CodeLpcNotEnoughCredits?(d=e.redeemModal.creditsNotEnough,u(!0),i(b?.user_id)):o.code===f.AlpcErrorCode.CodeCrossSiteError&&(d=e.redeemModal.crossSiteError,u(!0)),c("error"),p({code:o.code,imageUrl:I||e.redeemModal.errorImageUrl||"",message:d||e.redeemModal.commonError||""}),t&&t(o.code)}},onError(o){c("error"),p({code:0,imageUrl:e.redeemModal.errorImageUrl||"",message:e.redeemModal.commonError||""})}}),h=(0,s.useMemo)(()=>e?.redeemModal.product.form?.flat().find(d=>d.type==="state")?.key,[e?.redeemModal.product.form]),{validate:E,errors:z}=(0,x.useAddressValidate)({address:n,validatorInfo:B,formData:e?.redeemModal.product.form?.flat()||[],errorLabel:{require:e.redeemModal.product.required,email:e.redeemModal.product.invalidEmail}}),H=(0,s.useCallback)(async()=>{const o=[];if(h&&((R.find(Q=>Q.code===n.country)?.provinces||[]).length||o.push(h)),E({force:!0,ignoreKeys:o}))return;console.log("address",n);let d={...n};d.name&&delete d.name,d.country==="UK"&&(d.country="GB"),A({address:btoa(JSON.stringify(d)),rule_id:Number(r.alpc?.id)})},[r,A,h,E,n,R]);return(0,s.useEffect)(()=>{a.isOpen||(u(!1),p({code:0,message:"",imageUrl:""}))},[a.isOpen,T]),(0,l.jsxs)(O.CreditsModalContainer,{...a,className:(0,v.default)("w-[540px] md:h-auto min-md:max-h-[calc(100vh-40px)]",m!=="init"&&"w-[740px] md:w-full"),scrollClassName:"mb-0 min-l:px-0 md:mb-0 px-0",titleClassName:(0,v.default)("h-[56px]",m==="init"&&"bg-[#F5F5F7]"),title:m==="address"?"Order Confirmation":"",children:[m==="error"&&(0,l.jsx)(w.Error,{errorInfo:V}),m==="success"&&(0,l.jsx)(F.Success,{copy:e,shippingProduct:P,loading:M,address:n,disabled:C,onClose:a.onClose,item:r}),m==="address"&&(0,l.jsx)(K.Address,{copy:e,shippingAddress:G,setAddress:J,validateAddress:E,validateErrors:z,shippingProduct:P,loading:M,address:n,disabled:C,handlePayment:H,item:r}),m==="init"&&(0,l.jsx)(_.Init,{item:r,copy:e,loading:M,disabled:C,setStatus:c})]})}var re=ee;
1
+ "use strict";var W=Object.create;var g=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var j=(r,e)=>{for(var t in e)g(r,t,{get:e[t],enumerable:!0})},N=(r,e,t,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Y(e))!$.call(r,i)&&i!==t&&g(r,i,{get:()=>e[i],enumerable:!(a=X(e,i))||a.enumerable});return r};var S=(r,e,t)=>(t=r!=null?W(Z(r)):{},N(e||!r||!r.__esModule?g(t,"default",{value:r,enumerable:!0}):t,r)),D=r=>N(g({},"__esModule",{value:!0}),r);var oe={};j(oe,{default:()=>re});module.exports=D(oe);var l=require("react/jsx-runtime"),v=S(require("classnames")),s=require("react"),y=require("../../context/provider"),L=S(require("../../context/hooks/useCountries")),f=require("../../context/const"),x=require("../../context/hooks/useAddressValidate"),U=require("../../context/hooks/useRedeemProduct"),O=require("../../modal/modalContainer"),q=require("@shopify/context/ShopifyProvider"),w=require("./Error"),F=require("./Success"),K=require("./Address"),_=require("./Init");function ee({item:r,copy:e,onError:t,...a}){const{fetchCreditInfo:i,profile:b}=(0,y.useCreditsContext)(),{storeDomain:k,locale:T}=(0,q.useShopifyContext)(),{validatorInfo:B}=e,{shippingAddress:G,shippingProduct:P}=e.redeemModal.product,[m,c]=(0,s.useState)("init"),[n,J]=(0,s.useState)(),[V,p]=(0,s.useState)({code:0,message:"",imageUrl:""}),[C,u]=(0,s.useState)(!1),{countries:R=[],isLoading:de}=(0,L.default)({shopifyStoreDomain:k}),{isMutating:M,trigger:A}=(0,U.useRedeemProduct)({onSuccess(o){if(!o){c("error"),p({code:0,imageUrl:e.redeemModal.errorImageUrl||"",message:e.redeemModal.commonError||""});return}if(o?.code===0)i(b?.user_id),c("success");else{let d,I;o.code===f.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(d=e.redeemModal.redeemLimitError,u(!0)):o.code===f.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(d=e.redeemModal.inventoryNotEnough,u(!0),I=e.redeemModal.inventoryNotEnough):o.code===f.AlpcErrorCode.CodeLpcNotEnoughCredits?(d=e.redeemModal.creditsNotEnough,u(!0),i(b?.user_id)):o.code===f.AlpcErrorCode.CodeCrossSiteError&&(d=e.redeemModal.crossSiteError,u(!0)),c("error"),p({code:o.code,imageUrl:I||e.redeemModal.errorImageUrl||"",message:d||e.redeemModal.commonError||""}),t&&t(o.code)}},onError(o){c("error"),p({code:0,imageUrl:e.redeemModal.errorImageUrl||"",message:e.redeemModal.commonError||""})}}),h=(0,s.useMemo)(()=>e?.redeemModal.product.form?.flat().find(d=>d.type==="state")?.key,[e?.redeemModal.product.form]),{validate:E,errors:z}=(0,x.useAddressValidate)({address:n,validatorInfo:B,formData:e?.redeemModal.product.form?.flat()||[],errorLabel:{require:e.redeemModal.product.required,email:e.redeemModal.product.invalidEmail}}),H=(0,s.useCallback)(async()=>{const o=[];if(h&&((R.find(Q=>Q.code===n.country)?.provinces||[]).length||o.push(h)),E({force:!0,ignoreKeys:o}))return;console.log("address",n);let d={...n};d.name&&delete d.name,d.country==="UK"&&(d.country="GB"),A({address:btoa(JSON.stringify(d)),rule_id:Number(r.alpc?.id)})},[r,A,h,E,n,R]);return(0,s.useEffect)(()=>{a.isOpen||(u(!1),p({code:0,message:"",imageUrl:""}))},[a.isOpen,T]),(0,l.jsxs)(O.CreditsModalContainer,{...a,className:(0,v.default)("w-[540px] md:h-auto min-md:max-h-[calc(100vh-40px)]",m!=="init"&&"w-[740px] md:w-full"),scrollClassName:"mb-0 min-l:px-0 md:mb-0 px-0",titleClassName:(0,v.default)("h-[56px]",m==="init"&&"bg-[#F5F5F7]"),title:m==="address"?"Order Confirmation":"",children:[m==="error"&&(0,l.jsx)(w.Error,{errorInfo:V}),m==="success"&&(0,l.jsx)(F.Success,{copy:e,shippingProduct:P,loading:M,address:n,disabled:C,onClose:a.onClose,item:r}),m==="address"&&(0,l.jsx)(K.Address,{copy:e,shippingAddress:G,setAddress:J,validateAddress:E,validateErrors:z,shippingProduct:P,loading:M,address:n,disabled:C,handlePayment:H,item:r}),m==="init"&&(0,l.jsx)(_.Init,{item:r,copy:e,loading:M,disabled:C,setStatus:c})]})}var re=ee;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/creditsRedeemList/RedeemProductModal/index.tsx"],
4
- "sourcesContent": ["import classNames from 'classnames'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useCreditsContext } from '../../context/provider'\nimport useCountries from '../../context/hooks/useCountries'\nimport { AlpcErrorCode } from '../../context/const'\nimport { useAddressValidate } from '../../context/hooks/useAddressValidate'\nimport { useRedeemProduct } from '../../context/hooks/useRedeemProduct'\nimport type { ModalContainerProps } from '../../modal/modalContainer'\nimport { CreditsModalContainer } from '../../modal/modalContainer'\nimport type { RedeemableItem as RedeemableItemType } from '../../type'\nimport { useShopifyContext } from '../../../../shopify/context/ShopifyProvider'\nimport { CreditsRedeemListCopy } from '../type'\nimport { Error } from './Error'\nimport { Success } from './Success'\nimport { Address } from './Address'\nimport { Init } from './Init'\n\ntype RedeemProductModalProps = ModalContainerProps & {\n item: RedeemableItemType\n copy: CreditsRedeemListCopy\n onError: (code: AlpcErrorCode) => void\n}\n\nfunction RedeemProductModal({ item, copy, onError, ...props }: RedeemProductModalProps) {\n const { fetchCreditInfo, profile } = useCreditsContext()\n const { storeDomain, locale } = useShopifyContext()\n\n const { validatorInfo } = copy\n const { shippingAddress, shippingProduct } = copy.redeemModal.product\n\n const [status, setStatus] = useState<'init' | 'address' | 'success' | 'error'>('init')\n const [address, setAddress] = useState<any>()\n const [errorInfo, setErrorInfo] = useState({\n code: 0,\n message: '',\n imageUrl: '',\n })\n const [disabled, setDisabled] = useState(false)\n\n const { countries = [], isLoading: countriesLoading } = useCountries({ shopifyStoreDomain: storeDomain })\n\n const { isMutating: loading, trigger } = useRedeemProduct({\n onSuccess(responseData) {\n if (!responseData) {\n setStatus('error')\n setErrorInfo({\n code: 0,\n imageUrl: copy.redeemModal.errorImageUrl || '',\n message: copy.redeemModal.commonError || '',\n })\n return\n }\n\n if (responseData?.code === 0) {\n fetchCreditInfo(profile?.user_id)\n setStatus('success')\n } else {\n let errorMsg\n let errorImage\n if (responseData.code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy.redeemModal.redeemLimitError\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy.redeemModal.inventoryNotEnough\n setDisabled(true)\n errorImage = copy.redeemModal.inventoryNotEnough\n } else if (responseData.code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy.redeemModal.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (responseData.code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy.redeemModal.crossSiteError\n setDisabled(true)\n }\n\n setStatus('error')\n setErrorInfo({\n code: responseData.code,\n imageUrl: errorImage || copy.redeemModal.errorImageUrl || '',\n message: errorMsg || copy.redeemModal.commonError || '',\n })\n onError && onError(responseData.code)\n }\n },\n onError(error) {\n setStatus('error')\n setErrorInfo({\n code: 0,\n imageUrl: copy.redeemModal.errorImageUrl || '',\n message: copy.redeemModal.commonError || '',\n })\n },\n })\n\n const stateInputKey = useMemo(() => {\n const stateInput = copy?.redeemModal.product.form?.flat().find(item => item.type === 'state')\n return stateInput?.key\n }, [copy?.redeemModal.product.form])\n\n const { validate: validateAddress, errors: validateErrors } = useAddressValidate({\n address: address,\n validatorInfo: validatorInfo,\n formData: copy?.redeemModal.product.form?.flat() || [],\n errorLabel: {\n require: copy.redeemModal.product.required,\n email: copy.redeemModal.product.invalidEmail,\n },\n })\n\n const handlePayment = useCallback(async () => {\n const ignoreKeys: string[] = []\n\n if (stateInputKey) {\n const provinces = countries.find(item => item.code === address.country)?.provinces || []\n\n if (!provinces.length) {\n ignoreKeys.push(stateInputKey as never)\n }\n }\n\n if (\n validateAddress({\n force: true,\n ignoreKeys,\n })\n ) {\n // \u5730\u5740\u6821\u9A8C\u9519\u8BEF\n return\n }\n console.log('address', address)\n let requestAddress = { ...address }\n if (requestAddress.name) {\n delete requestAddress.name\n }\n if (requestAddress.country === 'UK') {\n requestAddress.country = 'GB'\n }\n trigger({\n address: btoa(JSON.stringify(requestAddress)),\n rule_id: Number(item.alpc?.id),\n })\n }, [item, trigger, stateInputKey, validateAddress, address, countries])\n\n useEffect(() => {\n if (!props.isOpen) {\n setDisabled(false)\n setErrorInfo({ code: 0, message: '', imageUrl: '' })\n }\n }, [props.isOpen, locale])\n\n return (\n <CreditsModalContainer\n {...props}\n className={classNames(\n 'w-[540px] md:h-auto min-md:max-h-[calc(100vh-40px)]',\n status !== 'init' && 'w-[740px] md:w-full'\n )}\n scrollClassName=\"mb-0 min-l:px-0 md:mb-0 px-0\"\n titleClassName={classNames('h-[56px]', status === 'init' && 'bg-[#F5F5F7]')}\n title={status === 'address' ? 'Order Confirmation' : ''}\n >\n {status === 'error' && <Error errorInfo={errorInfo} />}\n {status === 'success' && (\n <Success\n copy={copy}\n shippingProduct={shippingProduct}\n loading={loading}\n address={address}\n disabled={disabled}\n onClose={props.onClose}\n item={item}\n />\n )}\n {status === 'address' && (\n <Address\n copy={copy}\n shippingAddress={shippingAddress}\n setAddress={setAddress}\n validateAddress={validateAddress}\n validateErrors={validateErrors}\n shippingProduct={shippingProduct}\n loading={loading}\n address={address}\n disabled={disabled}\n handlePayment={handlePayment}\n item={item}\n />\n )}\n {status === 'init' && (\n <Init item={item} copy={copy} loading={loading} disabled={disabled} setStatus={setStatus} />\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemProductModal\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import classNames from 'classnames'\nimport { useCallback, useEffect, useMemo, useState } from 'react'\nimport { useCreditsContext } from '../../context/provider'\nimport useCountries from '../../context/hooks/useCountries'\nimport { AlpcErrorCode } from '../../context/const'\nimport { useAddressValidate } from '../../context/hooks/useAddressValidate'\nimport { useRedeemProduct } from '../../context/hooks/useRedeemProduct'\nimport type { ModalContainerProps } from '../../modal/modalContainer'\nimport { CreditsModalContainer } from '../../modal/modalContainer'\nimport type { RedeemableItem as RedeemableItemType } from '../../type'\nimport { useShopifyContext } from '@shopify/context/ShopifyProvider'\nimport { CreditsRedeemListCopy } from '../type'\nimport { Error } from './Error'\nimport { Success } from './Success'\nimport { Address } from './Address'\nimport { Init } from './Init'\n\ntype RedeemProductModalProps = ModalContainerProps & {\n item: RedeemableItemType\n copy: CreditsRedeemListCopy\n onError: (code: AlpcErrorCode) => void\n}\n\nfunction RedeemProductModal({ item, copy, onError, ...props }: RedeemProductModalProps) {\n const { fetchCreditInfo, profile } = useCreditsContext()\n const { storeDomain, locale } = useShopifyContext()\n\n const { validatorInfo } = copy\n const { shippingAddress, shippingProduct } = copy.redeemModal.product\n\n const [status, setStatus] = useState<'init' | 'address' | 'success' | 'error'>('init')\n const [address, setAddress] = useState<any>()\n const [errorInfo, setErrorInfo] = useState({\n code: 0,\n message: '',\n imageUrl: '',\n })\n const [disabled, setDisabled] = useState(false)\n\n const { countries = [], isLoading: countriesLoading } = useCountries({ shopifyStoreDomain: storeDomain })\n\n const { isMutating: loading, trigger } = useRedeemProduct({\n onSuccess(responseData) {\n if (!responseData) {\n setStatus('error')\n setErrorInfo({\n code: 0,\n imageUrl: copy.redeemModal.errorImageUrl || '',\n message: copy.redeemModal.commonError || '',\n })\n return\n }\n\n if (responseData?.code === 0) {\n fetchCreditInfo(profile?.user_id)\n setStatus('success')\n } else {\n let errorMsg\n let errorImage\n if (responseData.code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy.redeemModal.redeemLimitError\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy.redeemModal.inventoryNotEnough\n setDisabled(true)\n errorImage = copy.redeemModal.inventoryNotEnough\n } else if (responseData.code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy.redeemModal.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (responseData.code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy.redeemModal.crossSiteError\n setDisabled(true)\n }\n\n setStatus('error')\n setErrorInfo({\n code: responseData.code,\n imageUrl: errorImage || copy.redeemModal.errorImageUrl || '',\n message: errorMsg || copy.redeemModal.commonError || '',\n })\n onError && onError(responseData.code)\n }\n },\n onError(error) {\n setStatus('error')\n setErrorInfo({\n code: 0,\n imageUrl: copy.redeemModal.errorImageUrl || '',\n message: copy.redeemModal.commonError || '',\n })\n },\n })\n\n const stateInputKey = useMemo(() => {\n const stateInput = copy?.redeemModal.product.form?.flat().find(item => item.type === 'state')\n return stateInput?.key\n }, [copy?.redeemModal.product.form])\n\n const { validate: validateAddress, errors: validateErrors } = useAddressValidate({\n address: address,\n validatorInfo: validatorInfo,\n formData: copy?.redeemModal.product.form?.flat() || [],\n errorLabel: {\n require: copy.redeemModal.product.required,\n email: copy.redeemModal.product.invalidEmail,\n },\n })\n\n const handlePayment = useCallback(async () => {\n const ignoreKeys: string[] = []\n\n if (stateInputKey) {\n const provinces = countries.find(item => item.code === address.country)?.provinces || []\n\n if (!provinces.length) {\n ignoreKeys.push(stateInputKey as never)\n }\n }\n\n if (\n validateAddress({\n force: true,\n ignoreKeys,\n })\n ) {\n // \u5730\u5740\u6821\u9A8C\u9519\u8BEF\n return\n }\n console.log('address', address)\n let requestAddress = { ...address }\n if (requestAddress.name) {\n delete requestAddress.name\n }\n if (requestAddress.country === 'UK') {\n requestAddress.country = 'GB'\n }\n trigger({\n address: btoa(JSON.stringify(requestAddress)),\n rule_id: Number(item.alpc?.id),\n })\n }, [item, trigger, stateInputKey, validateAddress, address, countries])\n\n useEffect(() => {\n if (!props.isOpen) {\n setDisabled(false)\n setErrorInfo({ code: 0, message: '', imageUrl: '' })\n }\n }, [props.isOpen, locale])\n\n return (\n <CreditsModalContainer\n {...props}\n className={classNames(\n 'w-[540px] md:h-auto min-md:max-h-[calc(100vh-40px)]',\n status !== 'init' && 'w-[740px] md:w-full'\n )}\n scrollClassName=\"mb-0 min-l:px-0 md:mb-0 px-0\"\n titleClassName={classNames('h-[56px]', status === 'init' && 'bg-[#F5F5F7]')}\n title={status === 'address' ? 'Order Confirmation' : ''}\n >\n {status === 'error' && <Error errorInfo={errorInfo} />}\n {status === 'success' && (\n <Success\n copy={copy}\n shippingProduct={shippingProduct}\n loading={loading}\n address={address}\n disabled={disabled}\n onClose={props.onClose}\n item={item}\n />\n )}\n {status === 'address' && (\n <Address\n copy={copy}\n shippingAddress={shippingAddress}\n setAddress={setAddress}\n validateAddress={validateAddress}\n validateErrors={validateErrors}\n shippingProduct={shippingProduct}\n loading={loading}\n address={address}\n disabled={disabled}\n handlePayment={handlePayment}\n item={item}\n />\n )}\n {status === 'init' && (\n <Init item={item} copy={copy} loading={loading} disabled={disabled} setStatus={setStatus} />\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemProductModal\n"],
5
+ "mappings": "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",
6
6
  "names": ["RedeemProductModal_exports", "__export", "RedeemProductModal_default", "__toCommonJS", "import_jsx_runtime", "import_classnames", "import_react", "import_provider", "import_useCountries", "import_const", "import_useAddressValidate", "import_useRedeemProduct", "import_modalContainer", "import_ShopifyProvider", "import_Error", "import_Success", "import_Address", "import_Init", "RedeemProductModal", "item", "copy", "onError", "props", "fetchCreditInfo", "profile", "storeDomain", "locale", "validatorInfo", "shippingAddress", "shippingProduct", "status", "setStatus", "address", "setAddress", "errorInfo", "setErrorInfo", "disabled", "setDisabled", "countries", "countriesLoading", "useCountries", "loading", "trigger", "responseData", "errorMsg", "errorImage", "error", "stateInputKey", "validateAddress", "validateErrors", "handlePayment", "ignoreKeys", "requestAddress", "classNames"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var J=Object.create;var C=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var a in t)C(e,a,{get:t[a],enumerable:!0})},S=(e,t,a,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of Q(t))!X.call(e,d)&&d!==a&&C(e,d,{get:()=>t[d],enumerable:!(f=K(t,d))||f.enumerable});return e};var g=(e,t,a)=>(a=e!=null?J(W(e)):{},S(t||!e||!e.__esModule?C(a,"default",{value:e,enumerable:!0}):a,e)),Z=e=>S(C({},"__esModule",{value:!0}),e);var ee={};Y(ee,{CreditsRedeemList:()=>$});module.exports=Z(ee);var n=require("react/jsx-runtime"),r=require("@anker-in/headless-ui"),R=g(require("classnames")),l=require("react"),E=g(require("./RedeemCouponModal")),O=g(require("./RedeemProductModal")),A=require("../context/provider"),M=g(require("../context/hooks/useRedeemableList")),u=require("../context/const"),F=require("../../../shopify/hooks/useProductsByHandles"),D=require("./RedeemableItem"),z=g(require("../modal/rulesModal")),H=require("../../../helpers/track");function $({copy:e,className:t="",tabClassName:a="",hideTitle:f=!1,cardClassName:d,activate:v}){const{profile:L,openSignUpPopup:j,gtm:{pageGroup:w}}=(0,A.useCreditsContext)(),B=Object.keys(L||{}).length>0,[T,G]=(0,l.useState)(e.list[0].label),[i,b]=(0,l.useState)(void 0),[h,N]=(0,l.useState)(),{listLoading:U,redeemableList:k,getRedeemableList:x}=(0,M.default)(),p=(0,l.useMemo)(()=>k.map(s=>({id:s.id.toString(),title:s.name,consumeCredits:s.consume_credits,remainingInventory:s.remaining_inventory,isLimited:!!s.is_limited,consumeType:s.consume_type,handle:s.sku_handle,sku:s.goods_sku,image:s.goods_url})),[e.list,T,k]),V=p.map(s=>s.handle),{data:_}=(0,F.useProductsByHandles)({handles:V}),q=(0,l.useMemo)(()=>e.list.find(o=>o.label===T)?.list.filter(o=>p.some(c=>c.id===o.id)).map(o=>{const c=p.find(m=>m.id===o.id),y=_?.find(m=>m.handle===c?.handle),P=y?.variants.find(m=>m.sku===c?.sku);return c?.consumeType===u.AlpcConsumeType.Product&&(!y||!P)?null:{alpc:p.find(m=>m.id===o.id),config:o,product:y,variant:P}}).filter(o=>o!==null),[p,_]),I=(0,l.useCallback)(s=>{s===u.AlpcErrorCode.CodeLpcRuleInventoryNotEnough&&x()},[x]);return console.log("popRedeemData",i),(0,n.jsxs)(r.Container,{className:(0,R.default)("relative bg-[#F5F5F7]",t),children:[!f&&(0,n.jsx)(r.Heading,{as:"h2",size:"4",html:e.title}),(0,n.jsx)(r.Tabs,{shape:"rounded",align:"left",className:(0,R.default)("sticky top-0 z-20 py-[24px] md:justify-center",a),value:T.toString(),onValueChange:s=>{G(s),(0,H.gaTrack)({event:"ga4Event",event_name:"lp_navigation",event_parameters:{navigation:s,page_group:w}})},children:(0,n.jsx)(r.TabsList,{children:e.list.map(s=>(0,n.jsx)(r.TabsTrigger,{value:s.label,children:s.label},s.label))})}),!!p?.length&&!U&&(0,n.jsx)("div",{className:(0,R.default)("relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3"),children:q?.map(s=>(0,n.jsx)(D.RedeemableItem,{copy:e,item:s,onRedeem:o=>{B?!L?.activated&&!v.isSuccess?(v.openAuthCodePopup(),v.setOnSuccess(()=>{b(o)})):b(o):j()},onRulesOpen:N,className:d},s?.alpc?.id))}),i?.alpc?.consumeType===u.AlpcConsumeType.Coupon&&e?.redeemModal?.coupon&&i&&(0,n.jsx)(E.default,{isOpen:!!i,item:i,copy:e,onError:I,onClose:()=>{b(void 0)}}),i?.alpc?.consumeType===u.AlpcConsumeType.Product&&e?.redeemModal&&i&&(0,n.jsx)(O.default,{isOpen:!!i,item:i,copy:e,onError:I,onClose:()=>{b(void 0)}}),h&&(0,n.jsx)(z.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:h.length>0,onClose:()=>N([]),titleClassName:"border-b-transparent h-[56px]",rules:h,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:e?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})}
1
+ "use strict";var J=Object.create;var C=Object.defineProperty;var K=Object.getOwnPropertyDescriptor;var Q=Object.getOwnPropertyNames;var W=Object.getPrototypeOf,X=Object.prototype.hasOwnProperty;var Y=(e,t)=>{for(var a in t)C(e,a,{get:t[a],enumerable:!0})},S=(e,t,a,f)=>{if(t&&typeof t=="object"||typeof t=="function")for(let d of Q(t))!X.call(e,d)&&d!==a&&C(e,d,{get:()=>t[d],enumerable:!(f=K(t,d))||f.enumerable});return e};var g=(e,t,a)=>(a=e!=null?J(W(e)):{},S(t||!e||!e.__esModule?C(a,"default",{value:e,enumerable:!0}):a,e)),Z=e=>S(C({},"__esModule",{value:!0}),e);var ee={};Y(ee,{CreditsRedeemList:()=>$});module.exports=Z(ee);var n=require("react/jsx-runtime"),r=require("@anker-in/headless-ui"),R=g(require("classnames")),l=require("react"),E=g(require("./RedeemCouponModal")),O=g(require("./RedeemProductModal")),A=require("../context/provider"),M=g(require("../context/hooks/useRedeemableList")),u=require("../context/const"),F=require("@shopify/hooks/useProductsByHandles"),D=require("./RedeemableItem"),z=g(require("../modal/rulesModal")),H=require("../../../helpers/track");function $({copy:e,className:t="",tabClassName:a="",hideTitle:f=!1,cardClassName:d,activate:v}){const{profile:L,openSignUpPopup:j,gtm:{pageGroup:w}}=(0,A.useCreditsContext)(),B=Object.keys(L||{}).length>0,[T,G]=(0,l.useState)(e.list[0].label),[i,b]=(0,l.useState)(void 0),[h,N]=(0,l.useState)(),{listLoading:U,redeemableList:k,getRedeemableList:x}=(0,M.default)(),p=(0,l.useMemo)(()=>k.map(s=>({id:s.id.toString(),title:s.name,consumeCredits:s.consume_credits,remainingInventory:s.remaining_inventory,isLimited:!!s.is_limited,consumeType:s.consume_type,handle:s.sku_handle,sku:s.goods_sku,image:s.goods_url})),[e.list,T,k]),V=p.map(s=>s.handle),{data:_}=(0,F.useProductsByHandles)({handles:V}),q=(0,l.useMemo)(()=>e.list.find(o=>o.label===T)?.list.filter(o=>p.some(c=>c.id===o.id)).map(o=>{const c=p.find(m=>m.id===o.id),y=_?.find(m=>m.handle===c?.handle),P=y?.variants.find(m=>m.sku===c?.sku);return c?.consumeType===u.AlpcConsumeType.Product&&(!y||!P)?null:{alpc:p.find(m=>m.id===o.id),config:o,product:y,variant:P}}).filter(o=>o!==null),[p,_]),I=(0,l.useCallback)(s=>{s===u.AlpcErrorCode.CodeLpcRuleInventoryNotEnough&&x()},[x]);return console.log("popRedeemData",i),(0,n.jsxs)(r.Container,{className:(0,R.default)("relative bg-[#F5F5F7]",t),children:[!f&&(0,n.jsx)(r.Heading,{as:"h2",size:"4",html:e.title}),(0,n.jsx)(r.Tabs,{shape:"rounded",align:"left",className:(0,R.default)("sticky top-0 z-20 py-[24px] md:justify-center",a),value:T.toString(),onValueChange:s=>{G(s),(0,H.gaTrack)({event:"ga4Event",event_name:"lp_navigation",event_parameters:{navigation:s,page_group:w}})},children:(0,n.jsx)(r.TabsList,{children:e.list.map(s=>(0,n.jsx)(r.TabsTrigger,{value:s.label,children:s.label},s.label))})}),!!p?.length&&!U&&(0,n.jsx)("div",{className:(0,R.default)("relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3"),children:q?.map(s=>(0,n.jsx)(D.RedeemableItem,{copy:e,item:s,onRedeem:o=>{B?!L?.activated&&!v.isSuccess?(v.openAuthCodePopup(),v.setOnSuccess(()=>{b(o)})):b(o):j()},onRulesOpen:N,className:d},s?.alpc?.id))}),i?.alpc?.consumeType===u.AlpcConsumeType.Coupon&&e?.redeemModal?.coupon&&i&&(0,n.jsx)(E.default,{isOpen:!!i,item:i,copy:e,onError:I,onClose:()=>{b(void 0)}}),i?.alpc?.consumeType===u.AlpcConsumeType.Product&&e?.redeemModal&&i&&(0,n.jsx)(O.default,{isOpen:!!i,item:i,copy:e,onError:I,onClose:()=>{b(void 0)}}),h&&(0,n.jsx)(z.default,{overlayClassName:"md:px-[16px] md:items-center",className:"md:h-fit md:rounded-b-[16px]",isOpen:h.length>0,onClose:()=>N([]),titleClassName:"border-b-transparent h-[56px]",rules:h,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:e?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})}
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsRedeemList/index.tsx"],
4
- "sourcesContent": ["import { Container, Heading, Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCallback, useMemo, useState } from 'react'\n\nimport RedeemCouponModal from './RedeemCouponModal'\nimport RedeemProductModal from './RedeemProductModal'\nimport { useCreditsContext } from '../context/provider'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport { AlpcConsumeType, AlpcErrorCode } from '../context/const'\nimport { useProductsByHandles } from '../../../shopify/hooks/useProductsByHandles'\nimport type { RedeemableItem as RedeemableItemType } from '../type'\nimport { RedeemableItem } from './RedeemableItem'\nimport RulesModal from '../modal/rulesModal'\nimport { CreditsRedeemListCopy } from './type'\nimport { gaTrack } from '../../../helpers/track'\n\nexport function CreditsRedeemList({\n copy,\n className = '',\n tabClassName = '',\n hideTitle = false,\n cardClassName,\n activate,\n}: {\n copy: CreditsRedeemListCopy\n className?: string\n tabClassName?: string\n hideTitle?: boolean\n cardClassName?: string\n activate: {\n openAuthCodePopup: () => void\n isSuccess: boolean\n setOnSuccess: (callback: Function) => void\n }\n}) {\n const {\n profile,\n openSignUpPopup,\n gtm: { pageGroup },\n } = useCreditsContext()\n const isLogin = Object.keys(profile || {}).length > 0\n\n const [activeTab, setActiveTab] = useState<string>(copy.list[0].label)\n\n const [popRedeemData, setPopRedeemData] = useState<RedeemableItemType | undefined>(undefined)\n\n const [rules, setRules] = useState<string | string[]>()\n\n const { listLoading, redeemableList, getRedeemableList } = useRedeemableList()\n\n const alpcList = useMemo(() => {\n return redeemableList.map(item => {\n return {\n id: item.id.toString(),\n title: item.name,\n consumeCredits: item.consume_credits,\n remainingInventory: item.remaining_inventory,\n isLimited: !!item.is_limited,\n consumeType: item.consume_type,\n handle: item.sku_handle,\n sku: item.goods_sku,\n image: item.goods_url,\n }\n })\n }, [copy.list, activeTab, redeemableList])\n\n const handles = alpcList.map(item => item.handle)\n const { data: products } = useProductsByHandles({ handles })\n\n const list = useMemo(() => {\n const currentList = copy.list.find(item => item.label === activeTab)\n return currentList?.list\n .filter(item => alpcList.some(alpcItem => alpcItem.id === item.id))\n .map(item => {\n const alpcItem = alpcList.find(alpcItem => alpcItem.id === item.id)\n const product = products?.find(product => product.handle === alpcItem?.handle)\n const variant = product?.variants.find(variant => variant.sku === alpcItem?.sku)\n if (alpcItem?.consumeType === AlpcConsumeType.Product && (!product || !variant)) return null\n return {\n alpc: alpcList.find(alpcItem => alpcItem.id === item.id),\n config: item,\n product,\n variant,\n }\n })\n .filter(item => item !== null) as unknown as RedeemableItemType[]\n }, [alpcList, products])\n\n const handleRedeemError = useCallback(\n (errorCode: AlpcErrorCode) => {\n if (errorCode === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n getRedeemableList()\n }\n },\n [getRedeemableList]\n )\n\n console.log('popRedeemData', popRedeemData)\n\n return (\n <Container className={classNames('relative bg-[#F5F5F7]', className)}>\n {!hideTitle && <Heading as=\"h2\" size=\"4\" html={copy.title} />}\n\n <Tabs\n shape=\"rounded\"\n align=\"left\"\n className={classNames('sticky top-0 z-20 py-[24px] md:justify-center', tabClassName)}\n value={activeTab.toString()}\n onValueChange={value => {\n setActiveTab(value)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_navigation',\n event_parameters: {\n navigation: value,\n page_group: pageGroup,\n },\n })\n }}\n >\n <TabsList>\n {copy.list.map(item => (\n <TabsTrigger key={item.label} value={item.label}>\n {item.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n {/* PC\u7AEF */}\n {!!alpcList?.length && !listLoading && (\n <div\n className={classNames('relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3')}\n >\n {list?.map(item => (\n <RedeemableItem\n key={item?.alpc?.id}\n copy={copy}\n item={item}\n onRedeem={(item: RedeemableItemType) => {\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !activate.isSuccess) {\n activate.openAuthCodePopup()\n activate.setOnSuccess(() => {\n setPopRedeemData(item)\n })\n } else {\n setPopRedeemData(item)\n }\n }}\n onRulesOpen={setRules}\n className={cardClassName}\n />\n ))}\n </div>\n )}\n\n {popRedeemData?.alpc?.consumeType === AlpcConsumeType.Coupon && copy?.redeemModal?.coupon && popRedeemData && (\n <RedeemCouponModal\n isOpen={!!popRedeemData}\n item={popRedeemData}\n copy={copy}\n onError={handleRedeemError}\n onClose={() => {\n setPopRedeemData(undefined)\n }}\n />\n )}\n {popRedeemData?.alpc?.consumeType === AlpcConsumeType.Product && copy?.redeemModal && popRedeemData && (\n <RedeemProductModal\n isOpen={!!popRedeemData}\n item={popRedeemData}\n copy={copy}\n onError={handleRedeemError}\n onClose={() => {\n setPopRedeemData(undefined)\n }}\n />\n )}\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={copy?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Container, Heading, Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport classNames from 'classnames'\nimport { useCallback, useMemo, useState } from 'react'\n\nimport RedeemCouponModal from './RedeemCouponModal'\nimport RedeemProductModal from './RedeemProductModal'\nimport { useCreditsContext } from '../context/provider'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport { AlpcConsumeType, AlpcErrorCode } from '../context/const'\nimport { useProductsByHandles } from '@shopify/hooks/useProductsByHandles'\nimport type { RedeemableItem as RedeemableItemType } from '../type'\nimport { RedeemableItem } from './RedeemableItem'\nimport RulesModal from '../modal/rulesModal'\nimport { CreditsRedeemListCopy } from './type'\nimport { gaTrack } from '../../../helpers/track'\n\nexport function CreditsRedeemList({\n copy,\n className = '',\n tabClassName = '',\n hideTitle = false,\n cardClassName,\n activate,\n}: {\n copy: CreditsRedeemListCopy\n className?: string\n tabClassName?: string\n hideTitle?: boolean\n cardClassName?: string\n activate: {\n openAuthCodePopup: () => void\n isSuccess: boolean\n setOnSuccess: (callback: Function) => void\n }\n}) {\n const {\n profile,\n openSignUpPopup,\n gtm: { pageGroup },\n } = useCreditsContext()\n const isLogin = Object.keys(profile || {}).length > 0\n\n const [activeTab, setActiveTab] = useState<string>(copy.list[0].label)\n\n const [popRedeemData, setPopRedeemData] = useState<RedeemableItemType | undefined>(undefined)\n\n const [rules, setRules] = useState<string | string[]>()\n\n const { listLoading, redeemableList, getRedeemableList } = useRedeemableList()\n\n const alpcList = useMemo(() => {\n return redeemableList.map(item => {\n return {\n id: item.id.toString(),\n title: item.name,\n consumeCredits: item.consume_credits,\n remainingInventory: item.remaining_inventory,\n isLimited: !!item.is_limited,\n consumeType: item.consume_type,\n handle: item.sku_handle,\n sku: item.goods_sku,\n image: item.goods_url,\n }\n })\n }, [copy.list, activeTab, redeemableList])\n\n const handles = alpcList.map(item => item.handle)\n const { data: products } = useProductsByHandles({ handles })\n\n const list = useMemo(() => {\n const currentList = copy.list.find(item => item.label === activeTab)\n return currentList?.list\n .filter(item => alpcList.some(alpcItem => alpcItem.id === item.id))\n .map(item => {\n const alpcItem = alpcList.find(alpcItem => alpcItem.id === item.id)\n const product = products?.find(product => product.handle === alpcItem?.handle)\n const variant = product?.variants.find(variant => variant.sku === alpcItem?.sku)\n if (alpcItem?.consumeType === AlpcConsumeType.Product && (!product || !variant)) return null\n return {\n alpc: alpcList.find(alpcItem => alpcItem.id === item.id),\n config: item,\n product,\n variant,\n }\n })\n .filter(item => item !== null) as unknown as RedeemableItemType[]\n }, [alpcList, products])\n\n const handleRedeemError = useCallback(\n (errorCode: AlpcErrorCode) => {\n if (errorCode === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n getRedeemableList()\n }\n },\n [getRedeemableList]\n )\n\n console.log('popRedeemData', popRedeemData)\n\n return (\n <Container className={classNames('relative bg-[#F5F5F7]', className)}>\n {!hideTitle && <Heading as=\"h2\" size=\"4\" html={copy.title} />}\n\n <Tabs\n shape=\"rounded\"\n align=\"left\"\n className={classNames('sticky top-0 z-20 py-[24px] md:justify-center', tabClassName)}\n value={activeTab.toString()}\n onValueChange={value => {\n setActiveTab(value)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_navigation',\n event_parameters: {\n navigation: value,\n page_group: pageGroup,\n },\n })\n }}\n >\n <TabsList>\n {copy.list.map(item => (\n <TabsTrigger key={item.label} value={item.label}>\n {item.label}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n {/* PC\u7AEF */}\n {!!alpcList?.length && !listLoading && (\n <div\n className={classNames('relative grid grid-cols-4 gap-[16px] md:grid-cols-2 md:gap-[12px] md-xl:grid-cols-3')}\n >\n {list?.map(item => (\n <RedeemableItem\n key={item?.alpc?.id}\n copy={copy}\n item={item}\n onRedeem={(item: RedeemableItemType) => {\n if (!isLogin) {\n openSignUpPopup()\n } else if (!profile?.activated && !activate.isSuccess) {\n activate.openAuthCodePopup()\n activate.setOnSuccess(() => {\n setPopRedeemData(item)\n })\n } else {\n setPopRedeemData(item)\n }\n }}\n onRulesOpen={setRules}\n className={cardClassName}\n />\n ))}\n </div>\n )}\n\n {popRedeemData?.alpc?.consumeType === AlpcConsumeType.Coupon && copy?.redeemModal?.coupon && popRedeemData && (\n <RedeemCouponModal\n isOpen={!!popRedeemData}\n item={popRedeemData}\n copy={copy}\n onError={handleRedeemError}\n onClose={() => {\n setPopRedeemData(undefined)\n }}\n />\n )}\n {popRedeemData?.alpc?.consumeType === AlpcConsumeType.Product && copy?.redeemModal && popRedeemData && (\n <RedeemProductModal\n isOpen={!!popRedeemData}\n item={popRedeemData}\n copy={copy}\n onError={handleRedeemError}\n onClose={() => {\n setPopRedeemData(undefined)\n }}\n />\n )}\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className=\"md:h-fit md:rounded-b-[16px]\"\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={copy?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["creditsRedeemList_exports", "__export", "CreditsRedeemList", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_classnames", "import_react", "import_RedeemCouponModal", "import_RedeemProductModal", "import_provider", "import_useRedeemableList", "import_const", "import_useProductsByHandles", "import_RedeemableItem", "import_rulesModal", "import_track", "copy", "className", "tabClassName", "hideTitle", "cardClassName", "activate", "profile", "openSignUpPopup", "pageGroup", "isLogin", "activeTab", "setActiveTab", "popRedeemData", "setPopRedeemData", "rules", "setRules", "listLoading", "redeemableList", "getRedeemableList", "useRedeemableList", "alpcList", "item", "handles", "products", "list", "alpcItem", "product", "variant", "handleRedeemError", "errorCode", "classNames", "value", "RedeemCouponModal", "RedeemProductModal", "RulesModal"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var j=Object.create;var r=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var A=(e,i)=>{for(var a in i)r(e,a,{get:i[a],enumerable:!0})},h=(e,i,a,b)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of R(i))!U.call(e,n)&&n!==a&&r(e,n,{get:()=>i[n],enumerable:!(b=_(i,n))||b.enumerable});return e};var x=(e,i,a)=>(a=e!=null?j(T(e)):{},h(i||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),G=e=>h(r({},"__esModule",{value:!0}),e);var E={};A(E,{useActions:()=>W});module.exports=G(E);var t=require("./type"),k=require("../context/provider"),d=require("react"),f=x(require("../context/hooks/useReceiptUploaded")),N=require("../context/hooks/useFirstPurchaseFinished"),L=require("../context/hooks/useSubscribed"),C=require("../../../shopify/context/ShopifyProvider"),P=require("../../../helpers/track");const W=({copy:e,subscribe:i,uploadReceipt:a,activate:b,gaParameters:n})=>{const{openSignUpPopup:s,gtm:g,profile:l}=(0,k.useCreditsContext)(),u=(0,L.useSubscribed)(),c=(0,N.useFirstPurchaseFinished)(),m=(0,f.default)(),{appName:v}=(0,C.useShopifyContext)(),p=(0,d.useMemo)(()=>(l?.first_name||l?.last_name)&&l?.phone_number&&l?.dob,[l]);return(0,d.useMemo)(()=>{const o=({buttonName:F,id:w,callback:S})=>{(0,P.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:l?.activated?"active":"not active",event_parameters:{page_group:g.pageGroup,position:n?.position||e.title,button_name:F,info:w}}),S()};return{actions:{[t.TaskType.Activate]:{finished:l?.activated,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Activate})},notFinished:{buttonLabel:e?.activate,handleClick:()=>o({buttonName:e?.activate,callback:()=>b.openAuthCodePopup(),id:t.TaskType.Activate})},completed:{buttonLabel:e?.completed}},[t.TaskType.Subscribe]:{finished:u,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Subscribe})},notFinished:{buttonLabel:e?.subscribe,handleClick:()=>o({buttonName:e?.subscribe,callback:()=>i.openSubscribePopup(),id:t.TaskType.Subscribe})},completed:{buttonLabel:e?.completed}},[t.TaskType.CompleteProfile]:{finished:p,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.CompleteProfile})},notFinished:{buttonLabel:e?.completeProfile,link:`/account/profile?app=${v}`,handleClick:()=>o({buttonName:e?.completeProfile,callback:()=>{},id:t.TaskType.CompleteProfile})},completed:{buttonLabel:e?.completed}},[t.TaskType.FirstPurchase]:{finished:c,notLogin:{buttonLabel:e?.makeFirstPurchase,handleClick:()=>o({buttonName:e?.makeFirstPurchase,callback:s,id:t.TaskType.FirstPurchase})},notFinished:{buttonLabel:e?.makeFirstPurchase,link:e?.goShopLink,handleClick:()=>o({buttonName:e?.makeFirstPurchase,callback:()=>{},id:t.TaskType.FirstPurchase})},completed:{buttonLabel:e?.completed}},[t.TaskType.UploadReceipt]:{finished:m,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.UploadReceipt})},notFinished:{buttonLabel:e?.uploadReceipt,handleClick:()=>o({buttonName:e?.uploadReceipt,callback:()=>a.openUploadReceiptPopup(),id:t.TaskType.UploadReceipt})},completed:{buttonLabel:e?.completed}},[t.TaskType.Shop]:{finished:!1,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Shop})},notFinished:{buttonLabel:e?.shopNow,link:e?.goShopLink,handleClick:()=>o({buttonName:e?.shopNow,callback:()=>{},id:t.TaskType.Shop})},completed:{buttonLabel:e?.completed}}}}},[l?.activated,e?.joinNow,e?.activate,e?.completed,e?.subscribe,e?.completeProfile,e?.makeFirstPurchase,e?.uploadReceipt,e?.shopNow,e.title,e?.goShopLink,u,p,c,m,n?.position,s])};
1
+ "use strict";var j=Object.create;var r=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var T=Object.getPrototypeOf,U=Object.prototype.hasOwnProperty;var A=(e,i)=>{for(var a in i)r(e,a,{get:i[a],enumerable:!0})},h=(e,i,a,b)=>{if(i&&typeof i=="object"||typeof i=="function")for(let n of R(i))!U.call(e,n)&&n!==a&&r(e,n,{get:()=>i[n],enumerable:!(b=_(i,n))||b.enumerable});return e};var x=(e,i,a)=>(a=e!=null?j(T(e)):{},h(i||!e||!e.__esModule?r(a,"default",{value:e,enumerable:!0}):a,e)),G=e=>h(r({},"__esModule",{value:!0}),e);var E={};A(E,{useActions:()=>W});module.exports=G(E);var t=require("./type"),k=require("../context/provider"),d=require("react"),f=x(require("../context/hooks/useReceiptUploaded")),N=require("../context/hooks/useFirstPurchaseFinished"),L=require("../context/hooks/useSubscribed"),C=require("@shopify/context/ShopifyProvider"),P=require("../../../helpers/track");const W=({copy:e,subscribe:i,uploadReceipt:a,activate:b,gaParameters:n})=>{const{openSignUpPopup:s,gtm:g,profile:l}=(0,k.useCreditsContext)(),u=(0,L.useSubscribed)(),c=(0,N.useFirstPurchaseFinished)(),m=(0,f.default)(),{appName:v}=(0,C.useShopifyContext)(),p=(0,d.useMemo)(()=>(l?.first_name||l?.last_name)&&l?.phone_number&&l?.dob,[l]);return(0,d.useMemo)(()=>{const o=({buttonName:F,id:w,callback:S})=>{(0,P.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:l?.activated?"active":"not active",event_parameters:{page_group:g.pageGroup,position:n?.position||e.title,button_name:F,info:w}}),S()};return{actions:{[t.TaskType.Activate]:{finished:l?.activated,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Activate})},notFinished:{buttonLabel:e?.activate,handleClick:()=>o({buttonName:e?.activate,callback:()=>b.openAuthCodePopup(),id:t.TaskType.Activate})},completed:{buttonLabel:e?.completed}},[t.TaskType.Subscribe]:{finished:u,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Subscribe})},notFinished:{buttonLabel:e?.subscribe,handleClick:()=>o({buttonName:e?.subscribe,callback:()=>i.openSubscribePopup(),id:t.TaskType.Subscribe})},completed:{buttonLabel:e?.completed}},[t.TaskType.CompleteProfile]:{finished:p,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.CompleteProfile})},notFinished:{buttonLabel:e?.completeProfile,link:`/account/profile?app=${v}`,handleClick:()=>o({buttonName:e?.completeProfile,callback:()=>{},id:t.TaskType.CompleteProfile})},completed:{buttonLabel:e?.completed}},[t.TaskType.FirstPurchase]:{finished:c,notLogin:{buttonLabel:e?.makeFirstPurchase,handleClick:()=>o({buttonName:e?.makeFirstPurchase,callback:s,id:t.TaskType.FirstPurchase})},notFinished:{buttonLabel:e?.makeFirstPurchase,link:e?.goShopLink,handleClick:()=>o({buttonName:e?.makeFirstPurchase,callback:()=>{},id:t.TaskType.FirstPurchase})},completed:{buttonLabel:e?.completed}},[t.TaskType.UploadReceipt]:{finished:m,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.UploadReceipt})},notFinished:{buttonLabel:e?.uploadReceipt,handleClick:()=>o({buttonName:e?.uploadReceipt,callback:()=>a.openUploadReceiptPopup(),id:t.TaskType.UploadReceipt})},completed:{buttonLabel:e?.completed}},[t.TaskType.Shop]:{finished:!1,notLogin:{buttonLabel:e?.joinNow,handleClick:()=>o({buttonName:e?.joinNow,callback:s,id:t.TaskType.Shop})},notFinished:{buttonLabel:e?.shopNow,link:e?.goShopLink,handleClick:()=>o({buttonName:e?.shopNow,callback:()=>{},id:t.TaskType.Shop})},completed:{buttonLabel:e?.completed}}}}},[l?.activated,e?.joinNow,e?.activate,e?.completed,e?.subscribe,e?.completeProfile,e?.makeFirstPurchase,e?.uploadReceipt,e?.shopNow,e.title,e?.goShopLink,u,p,c,m,n?.position,s])};
2
2
  //# sourceMappingURL=useActions.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsWaysToGetCredits/useActions.ts"],
4
- "sourcesContent": ["import { TaskType } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useMemo } from 'react'\nimport useReceiptUploaded from '../context/hooks/useReceiptUploaded'\nimport { useFirstPurchaseFinished } from '../context/hooks/useFirstPurchaseFinished'\nimport { useSubscribed } from '../context/hooks/useSubscribed'\nimport type { CreditsWaysToGetCreditsProps } from './type'\nimport { useShopifyContext } from '../../../shopify/context/ShopifyProvider'\nimport { gaTrack } from '../../../helpers/track'\n\nexport const useActions = ({\n copy,\n subscribe,\n uploadReceipt,\n activate,\n gaParameters,\n}: CreditsWaysToGetCreditsProps & {\n gaParameters?: {\n position: string\n }\n}) => {\n const { openSignUpPopup, gtm, profile } = useCreditsContext()\n const isSubscribed = useSubscribed()\n const firstPurchaseFinished = useFirstPurchaseFinished()\n const uploadedReceipt = useReceiptUploaded()\n const { appName } = useShopifyContext()\n\n const profileCompleted = useMemo(() => {\n return (profile?.first_name || profile?.last_name) && profile?.phone_number && profile?.dob\n }, [profile])\n\n return useMemo(() => {\n const handleClickWithTrack = ({\n buttonName,\n id,\n callback,\n }: {\n buttonName: string\n id?: string\n callback: () => void\n }) => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: gtm.pageGroup,\n position: gaParameters?.position || copy.title,\n button_name: buttonName,\n info: id,\n },\n })\n callback()\n }\n return {\n actions: {\n [TaskType.Activate]: {\n finished: profile?.activated,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({ buttonName: copy?.joinNow, callback: openSignUpPopup, id: TaskType.Activate }),\n },\n notFinished: {\n buttonLabel: copy?.activate,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.activate,\n callback: () => activate.openAuthCodePopup(),\n id: TaskType.Activate,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.Subscribe]: {\n finished: isSubscribed,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({ buttonName: copy?.joinNow, callback: openSignUpPopup, id: TaskType.Subscribe }),\n },\n notFinished: {\n buttonLabel: copy?.subscribe,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.subscribe,\n callback: () => subscribe.openSubscribePopup(),\n id: TaskType.Subscribe,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.CompleteProfile]: {\n finished: profileCompleted,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.CompleteProfile,\n }),\n },\n notFinished: {\n buttonLabel: copy?.completeProfile,\n link: `/account/profile?app=${appName}`,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.completeProfile,\n callback: () => {},\n id: TaskType.CompleteProfile,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.FirstPurchase]: {\n finished: firstPurchaseFinished,\n notLogin: {\n buttonLabel: copy?.makeFirstPurchase,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.makeFirstPurchase,\n callback: openSignUpPopup,\n id: TaskType.FirstPurchase,\n }),\n },\n notFinished: {\n buttonLabel: copy?.makeFirstPurchase,\n link: copy?.goShopLink,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.makeFirstPurchase,\n callback: () => {},\n id: TaskType.FirstPurchase,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.UploadReceipt]: {\n finished: uploadedReceipt,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.UploadReceipt,\n }),\n },\n notFinished: {\n buttonLabel: copy?.uploadReceipt,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.uploadReceipt,\n callback: () => uploadReceipt.openUploadReceiptPopup(),\n id: TaskType.UploadReceipt,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.Shop]: {\n finished: false,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.Shop,\n }),\n },\n notFinished: {\n buttonLabel: copy?.shopNow,\n link: copy?.goShopLink,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.shopNow,\n callback: () => {},\n id: TaskType.Shop,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n },\n }\n }, [\n profile?.activated,\n copy?.joinNow,\n copy?.activate,\n copy?.completed,\n copy?.subscribe,\n copy?.completeProfile,\n copy?.makeFirstPurchase,\n copy?.uploadReceipt,\n copy?.shopNow,\n copy.title,\n copy?.goShopLink,\n isSubscribed,\n profileCompleted,\n firstPurchaseFinished,\n uploadedReceipt,\n gaParameters?.position,\n openSignUpPopup,\n ])\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { TaskType } from './type'\nimport { useCreditsContext } from '../context/provider'\nimport { useMemo } from 'react'\nimport useReceiptUploaded from '../context/hooks/useReceiptUploaded'\nimport { useFirstPurchaseFinished } from '../context/hooks/useFirstPurchaseFinished'\nimport { useSubscribed } from '../context/hooks/useSubscribed'\nimport type { CreditsWaysToGetCreditsProps } from './type'\nimport { useShopifyContext } from '@shopify/context/ShopifyProvider'\nimport { gaTrack } from '../../../helpers/track'\n\nexport const useActions = ({\n copy,\n subscribe,\n uploadReceipt,\n activate,\n gaParameters,\n}: CreditsWaysToGetCreditsProps & {\n gaParameters?: {\n position: string\n }\n}) => {\n const { openSignUpPopup, gtm, profile } = useCreditsContext()\n const isSubscribed = useSubscribed()\n const firstPurchaseFinished = useFirstPurchaseFinished()\n const uploadedReceipt = useReceiptUploaded()\n const { appName } = useShopifyContext()\n\n const profileCompleted = useMemo(() => {\n return (profile?.first_name || profile?.last_name) && profile?.phone_number && profile?.dob\n }, [profile])\n\n return useMemo(() => {\n const handleClickWithTrack = ({\n buttonName,\n id,\n callback,\n }: {\n buttonName: string\n id?: string\n callback: () => void\n }) => {\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: gtm.pageGroup,\n position: gaParameters?.position || copy.title,\n button_name: buttonName,\n info: id,\n },\n })\n callback()\n }\n return {\n actions: {\n [TaskType.Activate]: {\n finished: profile?.activated,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({ buttonName: copy?.joinNow, callback: openSignUpPopup, id: TaskType.Activate }),\n },\n notFinished: {\n buttonLabel: copy?.activate,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.activate,\n callback: () => activate.openAuthCodePopup(),\n id: TaskType.Activate,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.Subscribe]: {\n finished: isSubscribed,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({ buttonName: copy?.joinNow, callback: openSignUpPopup, id: TaskType.Subscribe }),\n },\n notFinished: {\n buttonLabel: copy?.subscribe,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.subscribe,\n callback: () => subscribe.openSubscribePopup(),\n id: TaskType.Subscribe,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.CompleteProfile]: {\n finished: profileCompleted,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.CompleteProfile,\n }),\n },\n notFinished: {\n buttonLabel: copy?.completeProfile,\n link: `/account/profile?app=${appName}`,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.completeProfile,\n callback: () => {},\n id: TaskType.CompleteProfile,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.FirstPurchase]: {\n finished: firstPurchaseFinished,\n notLogin: {\n buttonLabel: copy?.makeFirstPurchase,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.makeFirstPurchase,\n callback: openSignUpPopup,\n id: TaskType.FirstPurchase,\n }),\n },\n notFinished: {\n buttonLabel: copy?.makeFirstPurchase,\n link: copy?.goShopLink,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.makeFirstPurchase,\n callback: () => {},\n id: TaskType.FirstPurchase,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.UploadReceipt]: {\n finished: uploadedReceipt,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.UploadReceipt,\n }),\n },\n notFinished: {\n buttonLabel: copy?.uploadReceipt,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.uploadReceipt,\n callback: () => uploadReceipt.openUploadReceiptPopup(),\n id: TaskType.UploadReceipt,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n [TaskType.Shop]: {\n finished: false,\n notLogin: {\n buttonLabel: copy?.joinNow,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.joinNow,\n callback: openSignUpPopup,\n id: TaskType.Shop,\n }),\n },\n notFinished: {\n buttonLabel: copy?.shopNow,\n link: copy?.goShopLink,\n handleClick: () =>\n handleClickWithTrack({\n buttonName: copy?.shopNow,\n callback: () => {},\n id: TaskType.Shop,\n }),\n },\n completed: {\n buttonLabel: copy?.completed,\n },\n },\n },\n }\n }, [\n profile?.activated,\n copy?.joinNow,\n copy?.activate,\n copy?.completed,\n copy?.subscribe,\n copy?.completeProfile,\n copy?.makeFirstPurchase,\n copy?.uploadReceipt,\n copy?.shopNow,\n copy.title,\n copy?.goShopLink,\n isSubscribed,\n profileCompleted,\n firstPurchaseFinished,\n uploadedReceipt,\n gaParameters?.position,\n openSignUpPopup,\n ])\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["useActions_exports", "__export", "useActions", "__toCommonJS", "import_type", "import_provider", "import_react", "import_useReceiptUploaded", "import_useFirstPurchaseFinished", "import_useSubscribed", "import_ShopifyProvider", "import_track", "copy", "subscribe", "uploadReceipt", "activate", "gaParameters", "openSignUpPopup", "gtm", "profile", "isSubscribed", "firstPurchaseFinished", "uploadedReceipt", "useReceiptUploaded", "appName", "profileCompleted", "handleClickWithTrack", "buttonName", "id", "callback"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { Product, ProductVariant } from '../../shopify/types/product';
1
+ import type { Product, ProductVariant } from '@shopify/types/product';
2
2
  import type { AlpcConsumeType, ConsumeType } from './context/const';
3
3
  export interface Subscription {
4
4
  preference: {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/credits/type.ts"],
4
- "sourcesContent": ["import type { Product, ProductVariant } from '../../shopify/types/product'\nimport type { AlpcConsumeType, ConsumeType } from './context/const'\n\nexport interface Subscription {\n preference: {\n subscribe: boolean\n brand: string\n }[]\n}\n\nexport type RedeemableItem = {\n config: {\n title: string\n desc: string\n rules: string[]\n image: {\n url: string\n }\n type: ConsumeType\n value: string\n }\n alpc: {\n id: string\n consumeCredits: number\n remainingInventory: number\n isLimited: boolean\n consumeType: AlpcConsumeType\n showCredit: boolean\n title: string\n }\n product: Product\n variant: ProductVariant\n}\n\nexport interface ShippingCountry {\n id: string\n name: string\n code: string\n provinces: {\n id: string\n name: string\n code: string\n }[]\n}\n\nexport interface ShippingZone {\n name: string\n countries: ShippingCountry[]\n}\n\nexport type CreditsPageCommon = {\n pointUnit: string\n ruleLabel: string\n soldOut: string\n imageMapping: {\n [key in ConsumeType]: {\n url: string\n }\n }\n}\n"],
4
+ "sourcesContent": ["import type { Product, ProductVariant } from '@shopify/types/product'\nimport type { AlpcConsumeType, ConsumeType } from './context/const'\n\nexport interface Subscription {\n preference: {\n subscribe: boolean\n brand: string\n }[]\n}\n\nexport type RedeemableItem = {\n config: {\n title: string\n desc: string\n rules: string[]\n image: {\n url: string\n }\n type: ConsumeType\n value: string\n }\n alpc: {\n id: string\n consumeCredits: number\n remainingInventory: number\n isLimited: boolean\n consumeType: AlpcConsumeType\n showCredit: boolean\n title: string\n }\n product: Product\n variant: ProductVariant\n}\n\nexport interface ShippingCountry {\n id: string\n name: string\n code: string\n provinces: {\n id: string\n name: string\n code: string\n }[]\n}\n\nexport interface ShippingZone {\n name: string\n countries: ShippingCountry[]\n}\n\nexport type CreditsPageCommon = {\n pointUnit: string\n ruleLabel: string\n soldOut: string\n imageMapping: {\n [key in ConsumeType]: {\n url: string\n }\n }\n}\n"],
5
5
  "mappings": "+WAAA,IAAAA,EAAA,kBAAAC,EAAAD",
6
6
  "names": ["type_exports", "__toCommonJS"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  export * from './components/index';
2
- export { ShopifyProvider, useShopifyContext } from './shopify/context/ShopifyProvider';
3
- export * from './shopify/fetchers';
4
- export * from './shopify/hooks';
5
- export * from './shopify/queries';
6
- export * from './shopify/fragments';
7
- export type { Cart, LineItem, Product, ProductVariant, ProductImage, ProductMedia, ProductPrice, VariantCoupon, Discount, } from './shopify/types';
2
+ export { ShopifyProvider, useShopifyContext } from '@shopify/context/ShopifyProvider';
3
+ export * from '@shopify/fetchers';
4
+ export * from '@shopify/hooks';
5
+ export * from '@shopify/queries';
6
+ export * from '@shopify/fragments';
7
+ export type { Cart, LineItem, Product, ProductVariant, ProductImage, ProductMedia, ProductPrice, VariantCoupon, Discount, } from '@shopify/types';
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var p in t)u(e,p,{get:t[p],enumerable:!0})},m=(e,t,p,x)=>{if(t&&typeof t=="object"||typeof t=="function")for(let f of c(t))!d.call(e,f)&&f!==p&&u(e,f,{get:()=>t[f],enumerable:!(x=a(t,f))||x.enumerable});return e},r=(e,t,p)=>(m(e,t,"default"),p&&m(p,t,"default"));var n=e=>m(u({},"__esModule",{value:!0}),e);var o={};P(o,{ShopifyProvider:()=>i.ShopifyProvider,useShopifyContext:()=>i.useShopifyContext});module.exports=n(o);r(o,require("./components/index"),module.exports);var i=require("./shopify/context/ShopifyProvider");r(o,require("./shopify/fetchers"),module.exports);r(o,require("./shopify/hooks"),module.exports);r(o,require("./shopify/queries"),module.exports);r(o,require("./shopify/fragments"),module.exports);
1
+ "use strict";var u=Object.defineProperty;var a=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var p in t)u(e,p,{get:t[p],enumerable:!0})},m=(e,t,p,x)=>{if(t&&typeof t=="object"||typeof t=="function")for(let f of c(t))!d.call(e,f)&&f!==p&&u(e,f,{get:()=>t[f],enumerable:!(x=a(t,f))||x.enumerable});return e},r=(e,t,p)=>(m(e,t,"default"),p&&m(p,t,"default"));var n=e=>m(u({},"__esModule",{value:!0}),e);var o={};P(o,{ShopifyProvider:()=>i.ShopifyProvider,useShopifyContext:()=>i.useShopifyContext});module.exports=n(o);r(o,require("./components/index"),module.exports);var i=require("@shopify/context/ShopifyProvider");r(o,require("@shopify/fetchers"),module.exports);r(o,require("@shopify/hooks"),module.exports);r(o,require("@shopify/queries"),module.exports);r(o,require("@shopify/fragments"),module.exports);
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/index.ts"],
4
- "sourcesContent": ["export * from './components/index'\n\n// \u5BFC\u51FA Shopify Context \u76F8\u5173\u6A21\u5757\nexport { ShopifyProvider, useShopifyContext } from './shopify/context/ShopifyProvider'\n\n// \u5BFC\u51FA Shopify \u6838\u5FC3\u6A21\u5757\nexport * from './shopify/fetchers'\nexport * from './shopify/hooks'\nexport * from './shopify/queries'\nexport * from './shopify/fragments'\n\n// \u5BFC\u51FA Shopify \u6838\u5FC3\u7C7B\u578B\uFF08\u6392\u9664\u6709\u51B2\u7A81\u7684 Brand \u7C7B\u578B\uFF09\nexport type {\n Cart,\n LineItem,\n Product,\n ProductVariant,\n ProductImage,\n ProductMedia,\n ProductPrice,\n VariantCoupon,\n Discount,\n} from './shopify/types'\n"],
5
- "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kGAAAE,EAAAF,GAAAG,EAAAH,EAAc,8BAAd,gBAGA,IAAAI,EAAmD,6CAGnDD,EAAAH,EAAc,8BANd,gBAOAG,EAAAH,EAAc,2BAPd,gBAQAG,EAAAH,EAAc,6BARd,gBASAG,EAAAH,EAAc,+BATd",
4
+ "sourcesContent": ["export * from './components/index'\n\n// \u5BFC\u51FA Shopify Context \u76F8\u5173\u6A21\u5757\nexport { ShopifyProvider, useShopifyContext } from '@shopify/context/ShopifyProvider'\n\n// \u5BFC\u51FA Shopify \u6838\u5FC3\u6A21\u5757\nexport * from '@shopify/fetchers'\nexport * from '@shopify/hooks'\nexport * from '@shopify/queries'\nexport * from '@shopify/fragments'\n\n// \u5BFC\u51FA Shopify \u6838\u5FC3\u7C7B\u578B\uFF08\u6392\u9664\u6709\u51B2\u7A81\u7684 Brand \u7C7B\u578B\uFF09\nexport type {\n Cart,\n LineItem,\n Product,\n ProductVariant,\n ProductImage,\n ProductMedia,\n ProductPrice,\n VariantCoupon,\n Discount,\n} from '@shopify/types'\n"],
5
+ "mappings": "2dAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,kGAAAE,EAAAF,GAAAG,EAAAH,EAAc,8BAAd,gBAGA,IAAAI,EAAmD,4CAGnDD,EAAAH,EAAc,6BANd,gBAOAG,EAAAH,EAAc,0BAPd,gBAQAG,EAAAH,EAAc,4BARd,gBASAG,EAAAH,EAAc,8BATd",
6
6
  "names": ["src_exports", "__export", "__toCommonJS", "__reExport", "import_ShopifyProvider"]
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import React, { ReactNode } from 'react';
2
- import { ShopifyConfig, SiteConfig, ShopifyContextValue } from '../types/config';
2
+ import { ShopifyConfig, SiteConfig, ShopifyContextValue } from '@shopify/types/config';
3
3
  interface ShopifyProviderProps {
4
4
  children: ReactNode;
5
5
  shopifyConfig: ShopifyConfig;
@@ -1,6 +1,6 @@
1
1
  import { CartInput } from '../gql';
2
2
  import type { Cart } from '../types/cart';
3
- import { ShopifyFetcher } from '../types/fetcher';
3
+ import { ShopifyFetcher } from '@shopify/types/fetcher';
4
4
  /**
5
5
  * Creates a cart using the Shopify API.
6
6
  *
@@ -1,4 +1,4 @@
1
- import { HasMetafieldQueryRoot, ShopifyFetcher } from '../types/fetcher';
1
+ import { HasMetafieldQueryRoot, ShopifyFetcher } from '@shopify/types/fetcher';
2
2
  import { Product } from '../types/product';
3
3
  export type GetProductsByHandlesReq = {
4
4
  handles: string[];
@@ -1,4 +1,4 @@
1
1
  import { GetProductsMetafieldQueryRoot } from '../fetchers/get-products-by-handles';
2
- import { ShopifyHookOptions } from '../types/fetcher';
2
+ import { ShopifyHookOptions } from '@shopify/types/fetcher';
3
3
  import { GetProductsByHandlesReq } from '../fetchers/get-products-by-handles';
4
4
  export declare function useProductsByHandles({ handles, metafieldIdentifiers, }: ShopifyHookOptions<GetProductsByHandlesReq, GetProductsMetafieldQueryRoot>): import("swr").SWRResponse<import("src").Product[], any, any>;
@@ -1,5 +1,5 @@
1
1
  import { ProductVariant, Product } from '../types/product';
2
- import { Cart as ShopifyCart } from '../gql';
2
+ import { Cart as ShopifyCart } from '@shopify/gql';
3
3
  import { Discount } from './common';
4
4
  import { CustomerAddress } from './customer';
5
5
  export type Attributes = {
@@ -1,7 +1,7 @@
1
1
  import { HasMetafieldsIdentifier } from '../gql';
2
2
  import { PartialRecord } from './type-helper';
3
3
  import { SWRMutationResponse } from 'swr/mutation';
4
- import { ShopifyConfig } from './config';
4
+ import { ShopifyConfig } from '@shopify/types/config';
5
5
  type RequestBasicParams = {
6
6
  query?: string;
7
7
  config: ShopifyConfig;
@@ -1,4 +1,4 @@
1
- import { Media, Product as ShopifyProduct } from '../gql';
1
+ import { Media, Product as ShopifyProduct } from '@shopify/gql';
2
2
  import { SearchHook } from './search';
3
3
  export type ProductImage = {
4
4
  url: string;
@@ -1,4 +1,4 @@
1
- import { ShopifyConfig, SiteConfig } from '../types/config';
1
+ import { ShopifyConfig, SiteConfig } from '@shopify/types/config';
2
2
  export declare const SHOPIFY_COOKIE_EXPIRE = 30;
3
3
  export declare const SHOPIFY_CART_COOKIE_EXPIRE = 14;
4
4
  export declare const getCookieName: (type: string, domain: string, locale: string) => string;
@@ -1,4 +1,4 @@
1
- import { ShopifyConfig } from '../types/config';
1
+ import { ShopifyConfig } from '@shopify/types/config';
2
2
  /**
3
3
  * Graphql Api 接口 fetch 方法
4
4
  * @param query: 查询语句
@@ -1,6 +1,6 @@
1
- import { CartLine as ShopifyCartLine } from '../../gql';
2
- import type { Cart, LineItem } from '../../types/cart';
3
- import type { Cart as ShopifyCart } from '../../gql';
1
+ import { CartLine as ShopifyCartLine } from '@shopify/gql';
2
+ import type { Cart, LineItem } from '@shopify/types/cart';
3
+ import type { Cart as ShopifyCart } from '@shopify/gql';
4
4
  export declare function normalizeCart(cart: ShopifyCart, metafieldNamespacePrefix?: string): Cart;
5
5
  export declare function normalizeLineItem({ node: { id, merchandise: variant, quantity, discountAllocations, attributes, cost }, }: {
6
6
  node: ShopifyCartLine;
@@ -1,3 +1,3 @@
1
1
  import { Customer } from '../../types/customer';
2
- import { Customer as ShopifyCustomer } from '../../gql';
2
+ import { Customer as ShopifyCustomer } from '@shopify/gql';
3
3
  export declare function normalizeCustomer(customer: ShopifyCustomer): Customer;
@@ -1,2 +1,2 @@
1
- import{useCallback as L,useEffect as v,useState as o}from"react";import{useAlpcMutation as _}from"./useAlpcFetch";import{useCreditsContext as x}from"../provider";import{useShopifyContext as y}from"../../../../shopify/context/ShopifyProvider";function A({page:t,pageSize:r,options:n={}}){const{profile:e,isLoadingProfile:a}=x(),{brand:f}=y(),[i,p]=o([]),[c,l]=o(0),[u,C]=o(0),{isMutating:s,trigger:d}=_({url:"/v1/credit/log",initData:{brand:f}}),g=L(async()=>{const b={page:t,page_size:r,user_id:e?.user_id,...n};d(b,{onSuccess(m){C(t),l(m?.data?.total),p(i.concat(m?.data?.creditLogs||[]))}})},[i,e,t,r,n,d]);return v(()=>{a||!e||s||t!==u&&t&&g()},[g,a,s,e,t,u]),{activities:i,isLoading:s,total:c,canNext:c>i.length&&!s}}var z=A;export{z as default};
1
+ import{useCallback as L,useEffect as v,useState as o}from"react";import{useAlpcMutation as _}from"./useAlpcFetch";import{useCreditsContext as x}from"../provider";import{useShopifyContext as y}from"@shopify/context/ShopifyProvider";function A({page:t,pageSize:r,options:n={}}){const{profile:e,isLoadingProfile:a}=x(),{brand:f}=y(),[i,p]=o([]),[c,l]=o(0),[u,C]=o(0),{isMutating:s,trigger:d}=_({url:"/v1/credit/log",initData:{brand:f}}),g=L(async()=>{const b={page:t,page_size:r,user_id:e?.user_id,...n};d(b,{onSuccess(m){C(t),l(m?.data?.total),p(i.concat(m?.data?.creditLogs||[]))}})},[i,e,t,r,n,d]);return v(()=>{a||!e||s||t!==u&&t&&g()},[g,a,s,e,t,u]),{activities:i,isLoading:s,total:c,canNext:c>i.length&&!s}}var z=A;export{z as default};
2
2
  //# sourceMappingURL=useActivities.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useActivities.ts"],
4
- "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\n\nimport { useAlpcMutation } from './useAlpcFetch'\nimport type { CreditLogResponse } from '../response'\nimport { useCreditsContext } from '../provider'\nimport { useShopifyContext } from '../../../../shopify/context/ShopifyProvider'\n\nfunction useActivities({ page, pageSize, options = {} }: { page: number; pageSize: number; options?: any }) {\n const { profile, isLoadingProfile } = useCreditsContext()\n const { brand } = useShopifyContext()\n const [activities, setActivities] = useState<CreditLogResponse[]>([])\n const [total, setTotal] = useState(0)\n\n const [currentPage, setCurrentPage] = useState(0)\n\n const { isMutating: isLoading, trigger } = useAlpcMutation<\n {\n data: {\n total: number\n creditLogs: CreditLogResponse[]\n }\n },\n {\n page: number\n page_size: number\n user_id: string\n }\n >({\n url: `/v1/credit/log`,\n initData: {\n brand,\n },\n })\n\n const getActivities = useCallback(async () => {\n const params = {\n page: page,\n page_size: pageSize,\n user_id: profile?.user_id,\n ...options,\n }\n\n trigger(params, {\n onSuccess(responseData) {\n setCurrentPage(page)\n setTotal(responseData?.data?.total)\n setActivities(activities.concat(responseData?.data?.creditLogs || []))\n },\n })\n }, [activities, profile, page, pageSize, options, trigger])\n\n useEffect(() => {\n if (isLoadingProfile || !profile || isLoading) {\n return\n }\n\n if (page !== currentPage && page) {\n getActivities()\n }\n }, [getActivities, isLoadingProfile, isLoading, profile, page, currentPage])\n\n return {\n activities,\n isLoading,\n total,\n canNext: total > activities.length && !isLoading,\n }\n}\n\nexport default useActivities\n"],
5
- "mappings": "AAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAEjD,OAAS,mBAAAC,MAAuB,iBAEhC,OAAS,qBAAAC,MAAyB,cAClC,OAAS,qBAAAC,MAAyB,8CAElC,SAASC,EAAc,CAAE,KAAAC,EAAM,SAAAC,EAAU,QAAAC,EAAU,CAAC,CAAE,EAAsD,CAC1G,KAAM,CAAE,QAAAC,EAAS,iBAAAC,CAAiB,EAAIP,EAAkB,EAClD,CAAE,MAAAQ,CAAM,EAAIP,EAAkB,EAC9B,CAACQ,EAAYC,CAAa,EAAIZ,EAA8B,CAAC,CAAC,EAC9D,CAACa,EAAOC,CAAQ,EAAId,EAAS,CAAC,EAE9B,CAACe,EAAaC,CAAc,EAAIhB,EAAS,CAAC,EAE1C,CAAE,WAAYiB,EAAW,QAAAC,CAAQ,EAAIjB,EAYzC,CACA,IAAK,iBACL,SAAU,CACR,MAAAS,CACF,CACF,CAAC,EAEKS,EAAgBrB,EAAY,SAAY,CAC5C,MAAMsB,EAAS,CACb,KAAMf,EACN,UAAWC,EACX,QAASE,GAAS,QAClB,GAAGD,CACL,EAEAW,EAAQE,EAAQ,CACd,UAAUC,EAAc,CACtBL,EAAeX,CAAI,EACnBS,EAASO,GAAc,MAAM,KAAK,EAClCT,EAAcD,EAAW,OAAOU,GAAc,MAAM,YAAc,CAAC,CAAC,CAAC,CACvE,CACF,CAAC,CACH,EAAG,CAACV,EAAYH,EAASH,EAAMC,EAAUC,EAASW,CAAO,CAAC,EAE1D,OAAAnB,EAAU,IAAM,CACVU,GAAoB,CAACD,GAAWS,GAIhCZ,IAASU,GAAeV,GAC1Bc,EAAc,CAElB,EAAG,CAACA,EAAeV,EAAkBQ,EAAWT,EAASH,EAAMU,CAAW,CAAC,EAEpE,CACL,WAAAJ,EACA,UAAAM,EACA,MAAAJ,EACA,QAASA,EAAQF,EAAW,QAAU,CAACM,CACzC,CACF,CAEA,IAAOK,EAAQlB",
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\n\nimport { useAlpcMutation } from './useAlpcFetch'\nimport type { CreditLogResponse } from '../response'\nimport { useCreditsContext } from '../provider'\nimport { useShopifyContext } from '@shopify/context/ShopifyProvider'\n\nfunction useActivities({ page, pageSize, options = {} }: { page: number; pageSize: number; options?: any }) {\n const { profile, isLoadingProfile } = useCreditsContext()\n const { brand } = useShopifyContext()\n const [activities, setActivities] = useState<CreditLogResponse[]>([])\n const [total, setTotal] = useState(0)\n\n const [currentPage, setCurrentPage] = useState(0)\n\n const { isMutating: isLoading, trigger } = useAlpcMutation<\n {\n data: {\n total: number\n creditLogs: CreditLogResponse[]\n }\n },\n {\n page: number\n page_size: number\n user_id: string\n }\n >({\n url: `/v1/credit/log`,\n initData: {\n brand,\n },\n })\n\n const getActivities = useCallback(async () => {\n const params = {\n page: page,\n page_size: pageSize,\n user_id: profile?.user_id,\n ...options,\n }\n\n trigger(params, {\n onSuccess(responseData) {\n setCurrentPage(page)\n setTotal(responseData?.data?.total)\n setActivities(activities.concat(responseData?.data?.creditLogs || []))\n },\n })\n }, [activities, profile, page, pageSize, options, trigger])\n\n useEffect(() => {\n if (isLoadingProfile || !profile || isLoading) {\n return\n }\n\n if (page !== currentPage && page) {\n getActivities()\n }\n }, [getActivities, isLoadingProfile, isLoading, profile, page, currentPage])\n\n return {\n activities,\n isLoading,\n total,\n canNext: total > activities.length && !isLoading,\n }\n}\n\nexport default useActivities\n"],
5
+ "mappings": "AAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAEjD,OAAS,mBAAAC,MAAuB,iBAEhC,OAAS,qBAAAC,MAAyB,cAClC,OAAS,qBAAAC,MAAyB,mCAElC,SAASC,EAAc,CAAE,KAAAC,EAAM,SAAAC,EAAU,QAAAC,EAAU,CAAC,CAAE,EAAsD,CAC1G,KAAM,CAAE,QAAAC,EAAS,iBAAAC,CAAiB,EAAIP,EAAkB,EAClD,CAAE,MAAAQ,CAAM,EAAIP,EAAkB,EAC9B,CAACQ,EAAYC,CAAa,EAAIZ,EAA8B,CAAC,CAAC,EAC9D,CAACa,EAAOC,CAAQ,EAAId,EAAS,CAAC,EAE9B,CAACe,EAAaC,CAAc,EAAIhB,EAAS,CAAC,EAE1C,CAAE,WAAYiB,EAAW,QAAAC,CAAQ,EAAIjB,EAYzC,CACA,IAAK,iBACL,SAAU,CACR,MAAAS,CACF,CACF,CAAC,EAEKS,EAAgBrB,EAAY,SAAY,CAC5C,MAAMsB,EAAS,CACb,KAAMf,EACN,UAAWC,EACX,QAASE,GAAS,QAClB,GAAGD,CACL,EAEAW,EAAQE,EAAQ,CACd,UAAUC,EAAc,CACtBL,EAAeX,CAAI,EACnBS,EAASO,GAAc,MAAM,KAAK,EAClCT,EAAcD,EAAW,OAAOU,GAAc,MAAM,YAAc,CAAC,CAAC,CAAC,CACvE,CACF,CAAC,CACH,EAAG,CAACV,EAAYH,EAASH,EAAMC,EAAUC,EAASW,CAAO,CAAC,EAE1D,OAAAnB,EAAU,IAAM,CACVU,GAAoB,CAACD,GAAWS,GAIhCZ,IAASU,GAAeV,GAC1Bc,EAAc,CAElB,EAAG,CAACA,EAAeV,EAAkBQ,EAAWT,EAASH,EAAMU,CAAW,CAAC,EAEpE,CACL,WAAAJ,EACA,UAAAM,EACA,MAAAJ,EACA,QAASA,EAAQF,EAAW,QAAU,CAACM,CACzC,CACF,CAEA,IAAOK,EAAQlB",
6
6
  "names": ["useCallback", "useEffect", "useState", "useAlpcMutation", "useCreditsContext", "useShopifyContext", "useActivities", "page", "pageSize", "options", "profile", "isLoadingProfile", "brand", "activities", "setActivities", "total", "setTotal", "currentPage", "setCurrentPage", "isLoading", "trigger", "getActivities", "params", "responseData", "useActivities_default"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{useCallback as L,useEffect as A,useState as m}from"react";import{ALPC_COUNTRY_MAP as M,AlpcConsumeType as _}from"../const";import{useAlpcMutation as w}from"./useAlpcFetch";import{useCreditsContext as P}from"../provider";import{useShopifyContext as x}from"../../../../shopify/context/ShopifyProvider";function N({page:e,pageSize:s,consumeType:r}){const{isLoadingProfile:n,profile:t}=P(),{brand:f,locale:c,appName:g}=x(),y=!!t,[u,d]=m([]),[p,C]=m(0),[l,R]=m(0),{isMutating:o,trigger:a}=w({url:"/v1/credit/log/coupon",initData:{brand:f,country:M.get(c)||c,app_name:g}});A(()=>{n||!t||o||e!==l&&e&&a({consume_type:r||_.Coupon,page:e,page_size:s,user_id:t?.user_id},{onSuccess(i){R(e),C(i?.data?.total),d(u.concat(i?.data?.redeem_logs||[]))}})},[a,u,r,e,s,l,t,n,o]);const b=L(async()=>{n||!y||!t||o||await a({consume_type:r||_.Coupon,page:e,page_size:s,user_id:t?.user_id},{onSuccess(i){d(i?.data?.redeem_logs||[])}})},[r,o,n,e,s,t,a]);return{myRewards:u,isLoading:o,total:p,getMyRewards:b,canNext:p>u.length&&!o}}var z=N;export{z as default};
1
+ import{useCallback as L,useEffect as A,useState as m}from"react";import{ALPC_COUNTRY_MAP as M,AlpcConsumeType as _}from"../const";import{useAlpcMutation as w}from"./useAlpcFetch";import{useCreditsContext as P}from"../provider";import{useShopifyContext as x}from"@shopify/context/ShopifyProvider";function N({page:e,pageSize:s,consumeType:r}){const{isLoadingProfile:n,profile:t}=P(),{brand:f,locale:c,appName:g}=x(),y=!!t,[u,d]=m([]),[p,C]=m(0),[l,R]=m(0),{isMutating:o,trigger:a}=w({url:"/v1/credit/log/coupon",initData:{brand:f,country:M.get(c)||c,app_name:g}});A(()=>{n||!t||o||e!==l&&e&&a({consume_type:r||_.Coupon,page:e,page_size:s,user_id:t?.user_id},{onSuccess(i){R(e),C(i?.data?.total),d(u.concat(i?.data?.redeem_logs||[]))}})},[a,u,r,e,s,l,t,n,o]);const b=L(async()=>{n||!y||!t||o||await a({consume_type:r||_.Coupon,page:e,page_size:s,user_id:t?.user_id},{onSuccess(i){d(i?.data?.redeem_logs||[])}})},[r,o,n,e,s,t,a]);return{myRewards:u,isLoading:o,total:p,getMyRewards:b,canNext:p>u.length&&!o}}var z=N;export{z as default};
2
2
  //# sourceMappingURL=useMyRewards.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useMyRewards.ts"],
4
- "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\n\nimport { ALPC_COUNTRY_MAP, AlpcConsumeType } from '../const'\nimport { useAlpcMutation } from './useAlpcFetch'\nimport type { RedeemLogResponse } from '../response'\nimport { useCreditsContext } from '../provider'\nimport { useShopifyContext } from '../../../../shopify/context/ShopifyProvider'\n\nfunction useMyRewards({\n page,\n pageSize,\n consumeType,\n}: {\n page: number\n pageSize: number\n consumeType?: AlpcConsumeType\n}) {\n const { isLoadingProfile, profile } = useCreditsContext()\n const { brand, locale, appName } = useShopifyContext()\n const isLogin = !!profile\n\n const [myRewards, setMyRewards] = useState<RedeemLogResponse[]>([])\n const [total, setTotal] = useState(0)\n\n const [currentPage, setCurrentPage] = useState(0)\n\n const { isMutating: isLoading, trigger } = useAlpcMutation<\n { data: { redeem_logs: RedeemLogResponse[]; total: number } },\n {\n page: number\n page_size: number\n consume_type: AlpcConsumeType\n user_id: string\n }\n >({\n url: `/v1/credit/log/coupon`,\n initData: {\n brand: brand,\n country: ALPC_COUNTRY_MAP.get(locale) || locale,\n app_name: appName,\n },\n })\n\n useEffect(() => {\n if (isLoadingProfile || !profile || isLoading) {\n return\n }\n\n if (page !== currentPage && page) {\n trigger(\n {\n consume_type: consumeType || AlpcConsumeType.Coupon,\n page,\n page_size: pageSize,\n user_id: profile?.user_id,\n },\n {\n onSuccess(responseData) {\n setCurrentPage(page)\n setTotal(responseData?.data?.total)\n setMyRewards(myRewards.concat(responseData?.data?.redeem_logs || []))\n },\n }\n )\n }\n }, [trigger, myRewards, consumeType, page, pageSize, currentPage, profile, isLoadingProfile, isLoading])\n\n const getMyRewards = useCallback(async () => {\n if (isLoadingProfile || !isLogin || !profile || isLoading) {\n return\n }\n await trigger(\n {\n consume_type: consumeType || AlpcConsumeType.Coupon,\n page,\n page_size: pageSize,\n user_id: profile?.user_id,\n },\n {\n // \u4EC5\u652F\u63011\u9875\u7684\n onSuccess(responseData) {\n setMyRewards(responseData?.data?.redeem_logs || [])\n },\n }\n )\n }, [consumeType, isLoading, isLoadingProfile, page, pageSize, profile, trigger])\n\n return {\n myRewards,\n isLoading,\n total,\n getMyRewards,\n canNext: total > myRewards.length && !isLoading,\n }\n}\n\nexport default useMyRewards\n"],
5
- "mappings": "AAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAEjD,OAAS,oBAAAC,EAAkB,mBAAAC,MAAuB,WAClD,OAAS,mBAAAC,MAAuB,iBAEhC,OAAS,qBAAAC,MAAyB,cAClC,OAAS,qBAAAC,MAAyB,8CAElC,SAASC,EAAa,CACpB,KAAAC,EACA,SAAAC,EACA,YAAAC,CACF,EAIG,CACD,KAAM,CAAE,iBAAAC,EAAkB,QAAAC,CAAQ,EAAIP,EAAkB,EAClD,CAAE,MAAAQ,EAAO,OAAAC,EAAQ,QAAAC,CAAQ,EAAIT,EAAkB,EAC/CU,EAAU,CAAC,CAACJ,EAEZ,CAACK,EAAWC,CAAY,EAAIjB,EAA8B,CAAC,CAAC,EAC5D,CAACkB,EAAOC,CAAQ,EAAInB,EAAS,CAAC,EAE9B,CAACoB,EAAaC,CAAc,EAAIrB,EAAS,CAAC,EAE1C,CAAE,WAAYsB,EAAW,QAAAC,CAAQ,EAAIpB,EAQzC,CACA,IAAK,wBACL,SAAU,CACR,MAAOS,EACP,QAASX,EAAiB,IAAIY,CAAM,GAAKA,EACzC,SAAUC,CACZ,CACF,CAAC,EAEDf,EAAU,IAAM,CACVW,GAAoB,CAACC,GAAWW,GAIhCf,IAASa,GAAeb,GAC1BgB,EACE,CACE,aAAcd,GAAeP,EAAgB,OAC7C,KAAAK,EACA,UAAWC,EACX,QAASG,GAAS,OACpB,EACA,CACE,UAAUa,EAAc,CACtBH,EAAed,CAAI,EACnBY,EAASK,GAAc,MAAM,KAAK,EAClCP,EAAaD,EAAU,OAAOQ,GAAc,MAAM,aAAe,CAAC,CAAC,CAAC,CACtE,CACF,CACF,CAEJ,EAAG,CAACD,EAASP,EAAWP,EAAaF,EAAMC,EAAUY,EAAaT,EAASD,EAAkBY,CAAS,CAAC,EAEvG,MAAMG,EAAe3B,EAAY,SAAY,CACvCY,GAAoB,CAACK,GAAW,CAACJ,GAAWW,GAGhD,MAAMC,EACJ,CACE,aAAcd,GAAeP,EAAgB,OAC7C,KAAAK,EACA,UAAWC,EACX,QAASG,GAAS,OACpB,EACA,CAEE,UAAUa,EAAc,CACtBP,EAAaO,GAAc,MAAM,aAAe,CAAC,CAAC,CACpD,CACF,CACF,CACF,EAAG,CAACf,EAAaa,EAAWZ,EAAkBH,EAAMC,EAAUG,EAASY,CAAO,CAAC,EAE/E,MAAO,CACL,UAAAP,EACA,UAAAM,EACA,MAAAJ,EACA,aAAAO,EACA,QAASP,EAAQF,EAAU,QAAU,CAACM,CACxC,CACF,CAEA,IAAOI,EAAQpB",
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\n\nimport { ALPC_COUNTRY_MAP, AlpcConsumeType } from '../const'\nimport { useAlpcMutation } from './useAlpcFetch'\nimport type { RedeemLogResponse } from '../response'\nimport { useCreditsContext } from '../provider'\nimport { useShopifyContext } from '@shopify/context/ShopifyProvider'\n\nfunction useMyRewards({\n page,\n pageSize,\n consumeType,\n}: {\n page: number\n pageSize: number\n consumeType?: AlpcConsumeType\n}) {\n const { isLoadingProfile, profile } = useCreditsContext()\n const { brand, locale, appName } = useShopifyContext()\n const isLogin = !!profile\n\n const [myRewards, setMyRewards] = useState<RedeemLogResponse[]>([])\n const [total, setTotal] = useState(0)\n\n const [currentPage, setCurrentPage] = useState(0)\n\n const { isMutating: isLoading, trigger } = useAlpcMutation<\n { data: { redeem_logs: RedeemLogResponse[]; total: number } },\n {\n page: number\n page_size: number\n consume_type: AlpcConsumeType\n user_id: string\n }\n >({\n url: `/v1/credit/log/coupon`,\n initData: {\n brand: brand,\n country: ALPC_COUNTRY_MAP.get(locale) || locale,\n app_name: appName,\n },\n })\n\n useEffect(() => {\n if (isLoadingProfile || !profile || isLoading) {\n return\n }\n\n if (page !== currentPage && page) {\n trigger(\n {\n consume_type: consumeType || AlpcConsumeType.Coupon,\n page,\n page_size: pageSize,\n user_id: profile?.user_id,\n },\n {\n onSuccess(responseData) {\n setCurrentPage(page)\n setTotal(responseData?.data?.total)\n setMyRewards(myRewards.concat(responseData?.data?.redeem_logs || []))\n },\n }\n )\n }\n }, [trigger, myRewards, consumeType, page, pageSize, currentPage, profile, isLoadingProfile, isLoading])\n\n const getMyRewards = useCallback(async () => {\n if (isLoadingProfile || !isLogin || !profile || isLoading) {\n return\n }\n await trigger(\n {\n consume_type: consumeType || AlpcConsumeType.Coupon,\n page,\n page_size: pageSize,\n user_id: profile?.user_id,\n },\n {\n // \u4EC5\u652F\u63011\u9875\u7684\n onSuccess(responseData) {\n setMyRewards(responseData?.data?.redeem_logs || [])\n },\n }\n )\n }, [consumeType, isLoading, isLoadingProfile, page, pageSize, profile, trigger])\n\n return {\n myRewards,\n isLoading,\n total,\n getMyRewards,\n canNext: total > myRewards.length && !isLoading,\n }\n}\n\nexport default useMyRewards\n"],
5
+ "mappings": "AAAA,OAAS,eAAAA,EAAa,aAAAC,EAAW,YAAAC,MAAgB,QAEjD,OAAS,oBAAAC,EAAkB,mBAAAC,MAAuB,WAClD,OAAS,mBAAAC,MAAuB,iBAEhC,OAAS,qBAAAC,MAAyB,cAClC,OAAS,qBAAAC,MAAyB,mCAElC,SAASC,EAAa,CACpB,KAAAC,EACA,SAAAC,EACA,YAAAC,CACF,EAIG,CACD,KAAM,CAAE,iBAAAC,EAAkB,QAAAC,CAAQ,EAAIP,EAAkB,EAClD,CAAE,MAAAQ,EAAO,OAAAC,EAAQ,QAAAC,CAAQ,EAAIT,EAAkB,EAC/CU,EAAU,CAAC,CAACJ,EAEZ,CAACK,EAAWC,CAAY,EAAIjB,EAA8B,CAAC,CAAC,EAC5D,CAACkB,EAAOC,CAAQ,EAAInB,EAAS,CAAC,EAE9B,CAACoB,EAAaC,CAAc,EAAIrB,EAAS,CAAC,EAE1C,CAAE,WAAYsB,EAAW,QAAAC,CAAQ,EAAIpB,EAQzC,CACA,IAAK,wBACL,SAAU,CACR,MAAOS,EACP,QAASX,EAAiB,IAAIY,CAAM,GAAKA,EACzC,SAAUC,CACZ,CACF,CAAC,EAEDf,EAAU,IAAM,CACVW,GAAoB,CAACC,GAAWW,GAIhCf,IAASa,GAAeb,GAC1BgB,EACE,CACE,aAAcd,GAAeP,EAAgB,OAC7C,KAAAK,EACA,UAAWC,EACX,QAASG,GAAS,OACpB,EACA,CACE,UAAUa,EAAc,CACtBH,EAAed,CAAI,EACnBY,EAASK,GAAc,MAAM,KAAK,EAClCP,EAAaD,EAAU,OAAOQ,GAAc,MAAM,aAAe,CAAC,CAAC,CAAC,CACtE,CACF,CACF,CAEJ,EAAG,CAACD,EAASP,EAAWP,EAAaF,EAAMC,EAAUY,EAAaT,EAASD,EAAkBY,CAAS,CAAC,EAEvG,MAAMG,EAAe3B,EAAY,SAAY,CACvCY,GAAoB,CAACK,GAAW,CAACJ,GAAWW,GAGhD,MAAMC,EACJ,CACE,aAAcd,GAAeP,EAAgB,OAC7C,KAAAK,EACA,UAAWC,EACX,QAASG,GAAS,OACpB,EACA,CAEE,UAAUa,EAAc,CACtBP,EAAaO,GAAc,MAAM,aAAe,CAAC,CAAC,CACpD,CACF,CACF,CACF,EAAG,CAACf,EAAaa,EAAWZ,EAAkBH,EAAMC,EAAUG,EAASY,CAAO,CAAC,EAE/E,MAAO,CACL,UAAAP,EACA,UAAAM,EACA,MAAAJ,EACA,aAAAO,EACA,QAASP,EAAQF,EAAU,QAAU,CAACM,CACxC,CACF,CAEA,IAAOI,EAAQpB",
6
6
  "names": ["useCallback", "useEffect", "useState", "ALPC_COUNTRY_MAP", "AlpcConsumeType", "useAlpcMutation", "useCreditsContext", "useShopifyContext", "useMyRewards", "page", "pageSize", "consumeType", "isLoadingProfile", "profile", "brand", "locale", "appName", "isLogin", "myRewards", "setMyRewards", "total", "setTotal", "currentPage", "setCurrentPage", "isLoading", "trigger", "responseData", "getMyRewards", "useMyRewards_default"]
7
7
  }
@@ -1,4 +1,4 @@
1
- import type { ProductVariant } from '../../../../shopify/types/product';
1
+ import type { ProductVariant } from '@shopify/types/product';
2
2
  export declare const useRedeemAndBuy: () => import("swr/mutation").SWRMutationResponse<{
3
3
  success: boolean;
4
4
  url: string;
@@ -1,2 +1,2 @@
1
- import i from"swr/mutation";import{useRedeemCoupon as n}from"./useRedeemCoupon";import{useCreateCartMutation as a}from"../../../../shopify/hooks/useCreateCart";import{useCreditsContext as d}from"../provider";const y=()=>{const{trigger:o}=n(),{profile:u}=d(),{trigger:s}=a();return i("redeemAndBuy",async(c,{arg:e})=>{const r=await o({user_id:u?.user_id,rule_id:e.redeemId});if(r&&r?.data?.coupon_code){const t=await s({discountCodes:[r.data.coupon_code],lines:[{merchandiseId:String(e.productVariant.id),quantity:e.quantity||1}]});return t?.url?{success:!0,url:t.url}:{success:!1,error:"Create cart failed"}}else return{success:!1,error:"Redeem failed"}})};export{y as useRedeemAndBuy};
1
+ import i from"swr/mutation";import{useRedeemCoupon as n}from"./useRedeemCoupon";import{useCreateCartMutation as a}from"@shopify/hooks/useCreateCart";import{useCreditsContext as d}from"../provider";const y=()=>{const{trigger:o}=n(),{profile:u}=d(),{trigger:s}=a();return i("redeemAndBuy",async(c,{arg:e})=>{const r=await o({user_id:u?.user_id,rule_id:e.redeemId});if(r&&r?.data?.coupon_code){const t=await s({discountCodes:[r.data.coupon_code],lines:[{merchandiseId:String(e.productVariant.id),quantity:e.quantity||1}]});return t?.url?{success:!0,url:t.url}:{success:!1,error:"Create cart failed"}}else return{success:!1,error:"Redeem failed"}})};export{y as useRedeemAndBuy};
2
2
  //# sourceMappingURL=useRedeemAndBuy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useRedeemAndBuy.ts"],
4
- "sourcesContent": ["import useSWRMutation from 'swr/mutation'\nimport { useRedeemCoupon } from './useRedeemCoupon'\nimport { useCreateCartMutation } from '../../../../shopify/hooks/useCreateCart'\nimport type { ProductVariant } from '../../../../shopify/types/product'\nimport { useCreditsContext } from '../provider'\n\nexport const useRedeemAndBuy = () => {\n const { trigger } = useRedeemCoupon()\n const { profile } = useCreditsContext()\n\n const { trigger: buyNow } = useCreateCartMutation()\n\n return useSWRMutation(\n 'redeemAndBuy',\n async (\n _,\n {\n arg,\n }: {\n arg: {\n productVariant: ProductVariant\n quantity?: number\n redeemId: number\n }\n }\n ) => {\n const res = await trigger({\n user_id: profile?.user_id,\n rule_id: arg.redeemId,\n })\n if (res && res?.data?.coupon_code) {\n const cart = await buyNow({\n discountCodes: [res.data.coupon_code],\n lines: [\n {\n merchandiseId: String(arg.productVariant.id),\n quantity: arg.quantity || 1,\n },\n ],\n })\n if (cart?.url) {\n return {\n success: true,\n url: cart.url,\n }\n } else {\n return {\n success: false,\n error: 'Create cart failed',\n }\n }\n } else {\n return {\n success: false,\n error: 'Redeem failed',\n }\n }\n }\n )\n}\n"],
5
- "mappings": "AAAA,OAAOA,MAAoB,eAC3B,OAAS,mBAAAC,MAAuB,oBAChC,OAAS,yBAAAC,MAA6B,0CAEtC,OAAS,qBAAAC,MAAyB,cAE3B,MAAMC,EAAkB,IAAM,CACnC,KAAM,CAAE,QAAAC,CAAQ,EAAIJ,EAAgB,EAC9B,CAAE,QAAAK,CAAQ,EAAIH,EAAkB,EAEhC,CAAE,QAASI,CAAO,EAAIL,EAAsB,EAElD,OAAOF,EACL,eACA,MACEQ,EACA,CACE,IAAAC,CACF,IAOG,CACH,MAAMC,EAAM,MAAML,EAAQ,CACxB,QAASC,GAAS,QAClB,QAASG,EAAI,QACf,CAAC,EACD,GAAIC,GAAOA,GAAK,MAAM,YAAa,CACjC,MAAMC,EAAO,MAAMJ,EAAO,CACxB,cAAe,CAACG,EAAI,KAAK,WAAW,EACpC,MAAO,CACL,CACE,cAAe,OAAOD,EAAI,eAAe,EAAE,EAC3C,SAAUA,EAAI,UAAY,CAC5B,CACF,CACF,CAAC,EACD,OAAIE,GAAM,IACD,CACL,QAAS,GACT,IAAKA,EAAK,GACZ,EAEO,CACL,QAAS,GACT,MAAO,oBACT,CAEJ,KACE,OAAO,CACL,QAAS,GACT,MAAO,eACT,CAEJ,CACF,CACF",
4
+ "sourcesContent": ["import useSWRMutation from 'swr/mutation'\nimport { useRedeemCoupon } from './useRedeemCoupon'\nimport { useCreateCartMutation } from '@shopify/hooks/useCreateCart'\nimport type { ProductVariant } from '@shopify/types/product'\nimport { useCreditsContext } from '../provider'\n\nexport const useRedeemAndBuy = () => {\n const { trigger } = useRedeemCoupon()\n const { profile } = useCreditsContext()\n\n const { trigger: buyNow } = useCreateCartMutation()\n\n return useSWRMutation(\n 'redeemAndBuy',\n async (\n _,\n {\n arg,\n }: {\n arg: {\n productVariant: ProductVariant\n quantity?: number\n redeemId: number\n }\n }\n ) => {\n const res = await trigger({\n user_id: profile?.user_id,\n rule_id: arg.redeemId,\n })\n if (res && res?.data?.coupon_code) {\n const cart = await buyNow({\n discountCodes: [res.data.coupon_code],\n lines: [\n {\n merchandiseId: String(arg.productVariant.id),\n quantity: arg.quantity || 1,\n },\n ],\n })\n if (cart?.url) {\n return {\n success: true,\n url: cart.url,\n }\n } else {\n return {\n success: false,\n error: 'Create cart failed',\n }\n }\n } else {\n return {\n success: false,\n error: 'Redeem failed',\n }\n }\n }\n )\n}\n"],
5
+ "mappings": "AAAA,OAAOA,MAAoB,eAC3B,OAAS,mBAAAC,MAAuB,oBAChC,OAAS,yBAAAC,MAA6B,+BAEtC,OAAS,qBAAAC,MAAyB,cAE3B,MAAMC,EAAkB,IAAM,CACnC,KAAM,CAAE,QAAAC,CAAQ,EAAIJ,EAAgB,EAC9B,CAAE,QAAAK,CAAQ,EAAIH,EAAkB,EAEhC,CAAE,QAASI,CAAO,EAAIL,EAAsB,EAElD,OAAOF,EACL,eACA,MACEQ,EACA,CACE,IAAAC,CACF,IAOG,CACH,MAAMC,EAAM,MAAML,EAAQ,CACxB,QAASC,GAAS,QAClB,QAASG,EAAI,QACf,CAAC,EACD,GAAIC,GAAOA,GAAK,MAAM,YAAa,CACjC,MAAMC,EAAO,MAAMJ,EAAO,CACxB,cAAe,CAACG,EAAI,KAAK,WAAW,EACpC,MAAO,CACL,CACE,cAAe,OAAOD,EAAI,eAAe,EAAE,EAC3C,SAAUA,EAAI,UAAY,CAC5B,CACF,CACF,CAAC,EACD,OAAIE,GAAM,IACD,CACL,QAAS,GACT,IAAKA,EAAK,GACZ,EAEO,CACL,QAAS,GACT,MAAO,oBACT,CAEJ,KACE,OAAO,CACL,QAAS,GACT,MAAO,eACT,CAEJ,CACF,CACF",
6
6
  "names": ["useSWRMutation", "useRedeemCoupon", "useCreateCartMutation", "useCreditsContext", "useRedeemAndBuy", "trigger", "profile", "buyNow", "_", "arg", "res", "cart"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{ALPC_COUNTRY_MAP as p}from"../const";import{useAlpcMutation as r}from"./useAlpcFetch";import{useShopifyContext as u}from"../../../../shopify/context/ShopifyProvider";const a=(o={})=>{const{locale:e,appName:n,brand:t}=u();return r({url:"/v1/credit/redeem/coupon",initData:{brand:t,country:p.get(e)||e,app_name:n}},o)};export{a as useRedeemCoupon};
1
+ import{ALPC_COUNTRY_MAP as p}from"../const";import{useAlpcMutation as r}from"./useAlpcFetch";import{useShopifyContext as u}from"@shopify/context/ShopifyProvider";const a=(o={})=>{const{locale:e,appName:n,brand:t}=u();return r({url:"/v1/credit/redeem/coupon",initData:{brand:t,country:p.get(e)||e,app_name:n}},o)};export{a as useRedeemCoupon};
2
2
  //# sourceMappingURL=useRedeemCoupon.js.map