@anker-in/campaign-ui 0.2.11-beta.2 → 0.2.11-beta.3

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 (216) hide show
  1. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.d.ts +1 -0
  2. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +2 -0
  3. package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +7 -0
  4. package/dist/cjs/components/credits/context/hooks/useSubscriptions.d.ts +9 -0
  5. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +2 -0
  6. package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +7 -0
  7. package/dist/cjs/components/credits/context/utils.d.ts +4 -0
  8. package/dist/cjs/components/credits/context/utils.js +1 -1
  9. package/dist/cjs/components/credits/context/utils.js.map +3 -3
  10. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  11. package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  12. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +2 -0
  13. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +7 -0
  14. package/dist/cjs/components/credits/creditsBenefits/index.js +3 -3
  15. package/dist/cjs/components/credits/creditsBenefits/index.js.map +2 -2
  16. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  17. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  18. package/dist/cjs/components/credits/creditsFaq/index.js +1 -1
  19. package/dist/cjs/components/credits/creditsFaq/index.js.map +3 -3
  20. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  21. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +3 -3
  22. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  23. package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  24. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  25. package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  26. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
  27. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js +2 -0
  28. package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
  29. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  30. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
  31. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  32. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
  33. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  34. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
  35. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  36. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  37. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  38. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  39. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  40. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
  41. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  42. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  43. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  44. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  45. package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
  46. package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +3 -3
  47. package/dist/cjs/components/credits/modal/activitiesModal.js +1 -1
  48. package/dist/cjs/components/credits/modal/activitiesModal.js.map +3 -3
  49. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  50. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  51. package/dist/cjs/components/credits/modal/modalContainer.js +1 -1
  52. package/dist/cjs/components/credits/modal/modalContainer.js.map +3 -3
  53. package/dist/cjs/components/credits/modal/subscribeModal.js +1 -1
  54. package/dist/cjs/components/credits/modal/subscribeModal.js.map +3 -3
  55. package/dist/cjs/components/credits/modal/tip.js +1 -1
  56. package/dist/cjs/components/credits/modal/tip.js.map +3 -3
  57. package/dist/cjs/components/index.d.ts +2 -2
  58. package/dist/cjs/components/index.js +1 -1
  59. package/dist/cjs/components/index.js.map +2 -2
  60. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  61. package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
  62. package/dist/cjs/components/registration/modalContainer.js +1 -1
  63. package/dist/cjs/components/registration/modalContainer.js.map +3 -3
  64. package/dist/cjs/constants.d.ts +1 -0
  65. package/dist/cjs/constants.js +2 -0
  66. package/dist/cjs/constants.js.map +7 -0
  67. package/dist/cjs/helpers/fetchResponse.d.ts +14 -0
  68. package/dist/cjs/helpers/fetchResponse.js +2 -0
  69. package/dist/cjs/helpers/fetchResponse.js.map +7 -0
  70. package/dist/cjs/helpers/fetcher.d.ts +2 -0
  71. package/dist/cjs/helpers/fetcher.js +2 -0
  72. package/dist/cjs/helpers/fetcher.js.map +7 -0
  73. package/dist/cjs/helpers/index.d.ts +2 -0
  74. package/dist/cjs/helpers/index.js +2 -0
  75. package/dist/cjs/helpers/index.js.map +7 -0
  76. package/dist/cjs/helpers/track.d.ts +19 -0
  77. package/dist/cjs/helpers/track.js +2 -0
  78. package/dist/cjs/helpers/track.js.map +7 -0
  79. package/dist/cjs/helpers/utils.d.ts +3 -0
  80. package/dist/cjs/helpers/utils.js +2 -0
  81. package/dist/cjs/helpers/utils.js.map +7 -0
  82. package/dist/cjs/index.d.ts +3 -2
  83. package/dist/cjs/index.js +1 -1
  84. package/dist/cjs/index.js.map +2 -2
  85. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.d.ts +1 -0
  86. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +2 -0
  87. package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +7 -0
  88. package/dist/esm/components/credits/context/hooks/useSubscriptions.d.ts +9 -0
  89. package/dist/esm/components/credits/context/hooks/useSubscriptions.js +2 -0
  90. package/dist/esm/components/credits/context/hooks/useSubscriptions.js.map +7 -0
  91. package/dist/esm/components/credits/context/utils.d.ts +4 -0
  92. package/dist/esm/components/credits/context/utils.js +1 -1
  93. package/dist/esm/components/credits/context/utils.js.map +3 -3
  94. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
  95. package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
  96. package/dist/esm/components/credits/creditsBenefits/benefitItem.js +2 -0
  97. package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +7 -0
  98. package/dist/esm/components/credits/creditsBenefits/index.js +3 -3
  99. package/dist/esm/components/credits/creditsBenefits/index.js.map +2 -2
  100. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  101. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  102. package/dist/esm/components/credits/creditsFaq/index.js +1 -1
  103. package/dist/esm/components/credits/creditsFaq/index.js.map +3 -3
  104. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  105. package/dist/esm/components/credits/creditsInfoCard/index.js.map +2 -2
  106. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
  107. package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
  108. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
  109. package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
  110. package/dist/esm/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
  111. package/dist/esm/components/credits/creditsMemberPrice/Pagination.js +2 -0
  112. package/dist/esm/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
  113. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  114. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +2 -2
  115. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  116. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +2 -2
  117. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  118. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +2 -2
  119. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
  120. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
  121. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  122. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  123. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  124. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +2 -2
  125. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  126. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  127. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
  128. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
  129. package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
  130. package/dist/esm/components/credits/modal/MyRewardsModal.js.map +2 -2
  131. package/dist/esm/components/credits/modal/activitiesModal.js +1 -1
  132. package/dist/esm/components/credits/modal/activitiesModal.js.map +3 -3
  133. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  134. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  135. package/dist/esm/components/credits/modal/modalContainer.js +1 -1
  136. package/dist/esm/components/credits/modal/modalContainer.js.map +3 -3
  137. package/dist/esm/components/credits/modal/subscribeModal.js +1 -1
  138. package/dist/esm/components/credits/modal/subscribeModal.js.map +3 -3
  139. package/dist/esm/components/credits/modal/tip.js +1 -1
  140. package/dist/esm/components/credits/modal/tip.js.map +3 -3
  141. package/dist/esm/components/index.d.ts +2 -2
  142. package/dist/esm/components/index.js +1 -1
  143. package/dist/esm/components/index.js.map +2 -2
  144. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  145. package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
  146. package/dist/esm/components/registration/modalContainer.js +1 -1
  147. package/dist/esm/components/registration/modalContainer.js.map +3 -3
  148. package/dist/esm/constants.d.ts +1 -0
  149. package/dist/esm/constants.js +2 -0
  150. package/dist/esm/constants.js.map +7 -0
  151. package/dist/esm/helpers/fetchResponse.d.ts +14 -0
  152. package/dist/esm/helpers/fetchResponse.js +2 -0
  153. package/dist/esm/helpers/fetchResponse.js.map +7 -0
  154. package/dist/esm/helpers/fetcher.d.ts +2 -0
  155. package/dist/esm/helpers/fetcher.js +2 -0
  156. package/dist/esm/helpers/fetcher.js.map +7 -0
  157. package/dist/esm/helpers/index.d.ts +2 -0
  158. package/dist/esm/helpers/index.js +2 -0
  159. package/dist/esm/helpers/index.js.map +7 -0
  160. package/dist/esm/helpers/track.d.ts +19 -0
  161. package/dist/esm/helpers/track.js +2 -0
  162. package/dist/esm/helpers/track.js.map +7 -0
  163. package/dist/esm/helpers/utils.d.ts +3 -0
  164. package/dist/esm/helpers/utils.js +2 -0
  165. package/dist/esm/helpers/utils.js.map +7 -0
  166. package/dist/esm/index.d.ts +3 -2
  167. package/dist/esm/index.js +1 -1
  168. package/dist/esm/index.js.map +2 -2
  169. package/package.json +3 -3
  170. package/src/components/credits/context/utils.ts +9 -0
  171. package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +21 -18
  172. package/src/components/credits/creditsBenefits/BenefitItem.tsx +3 -2
  173. package/src/components/credits/creditsBenefits/index.tsx +1 -1
  174. package/src/components/credits/creditsCash/RedeemableItem.tsx +9 -4
  175. package/src/components/credits/creditsFaq/index.tsx +2 -1
  176. package/src/components/credits/creditsInfoCard/index.tsx +2 -1
  177. package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +37 -112
  178. package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +32 -9
  179. package/src/components/credits/creditsMemberPrice/Pagination.tsx +113 -0
  180. package/src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx +2 -1
  181. package/src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx +2 -1
  182. package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +2 -1
  183. package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +2 -1
  184. package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +2 -1
  185. package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +2 -1
  186. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +2 -1
  187. package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +14 -3
  188. package/src/components/credits/modal/MyRewardsModal.tsx +2 -1
  189. package/src/components/credits/modal/activitiesModal.tsx +2 -1
  190. package/src/components/credits/modal/creditsUploadReceiptModal.tsx +2 -1
  191. package/src/components/credits/modal/modalContainer.tsx +2 -1
  192. package/src/components/credits/modal/subscribeModal.tsx +2 -1
  193. package/src/components/credits/modal/tip.tsx +2 -1
  194. package/src/components/index.ts +2 -2
  195. package/src/components/registration/authCodeActivate/index.tsx +1 -1
  196. package/src/components/registration/modalContainer.tsx +2 -1
  197. package/src/constants.ts +1 -0
  198. package/src/index.ts +3 -2
  199. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js +0 -2
  200. package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +0 -7
  201. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js +0 -2
  202. package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +0 -7
  203. /package/dist/cjs/components/credits/creditsBenefits/{BenefitItem.d.ts → benefitItem.d.ts} +0 -0
  204. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.d.ts → iconInfo.d.ts} +0 -0
  205. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.js → iconInfo.js} +0 -0
  206. /package/dist/cjs/components/credits/creditsBenefits/{IconInfo.js.map → iconInfo.js.map} +0 -0
  207. /package/dist/cjs/templates/{Credits.d.ts → credits.d.ts} +0 -0
  208. /package/dist/cjs/templates/{Credits.js → credits.js} +0 -0
  209. /package/dist/cjs/templates/{Credits.js.map → credits.js.map} +0 -0
  210. /package/dist/esm/components/credits/creditsBenefits/{BenefitItem.d.ts → benefitItem.d.ts} +0 -0
  211. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.d.ts → iconInfo.d.ts} +0 -0
  212. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.js → iconInfo.js} +0 -0
  213. /package/dist/esm/components/credits/creditsBenefits/{IconInfo.js.map → iconInfo.js.map} +0 -0
  214. /package/dist/esm/templates/{Credits.d.ts → credits.d.ts} +0 -0
  215. /package/dist/esm/templates/{Credits.js → credits.js} +0 -0
  216. /package/dist/esm/templates/{Credits.js.map → credits.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- "use strict";var k=Object.defineProperty;var W=Object.getOwnPropertyDescriptor;var X=Object.getOwnPropertyNames;var Y=Object.prototype.hasOwnProperty;var Z=(e,i)=>{for(var m in i)k(e,m,{get:i[m],enumerable:!0})},y=(e,i,m,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of X(i))!Y.call(e,r)&&r!==m&&k(e,r,{get:()=>i[r],enumerable:!(l=W(i,r))||l.enumerable});return e};var ee=e=>y(k({},"__esModule",{value:!0}),e);var ae={};Z(ae,{AuthCodeActivate:()=>te});module.exports=ee(ae);var a=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),o=require("@anker-in/lib"),n=require("react"),V=require("./Message"),B=require("../context"),$=require("../modalContainer");const te=({copy:e})=>{const{locale:i,brand:m}=(0,o.useHeadlessContext)(),{email:l,authCodeActivate:r}=(0,B.useRegistration)(),F=o.ROUNDED_BRANDS.includes(m),{activeToken:E,setActiveToken:O,setIsSendingActivateEmail:D,setIsActivateSuccess:P,onAuthSuccess:v,autoSendEmail:I}=r,{isMutating:j,trigger:z}=(0,o.useEmailValidation)(),{isMutating:N,trigger:C,data:w}=(0,o.useSendEmailValidation)(),[K,g]=(0,n.useState)(""),[U,f]=(0,n.useState)(""),{startCountDown:R,startAction:H,countDown:q}=(0,o.useCountDown)(60),[L,p]=(0,n.useState)(""),[S,b]=(0,n.useState)(0),[u,T]=(0,n.useState)(new Array(6).fill("")),A=(0,n.useRef)([]),_=u.join("");(0,n.useEffect)(()=>{A.current[S]&&A.current[S].focus()},[S]),(0,n.useEffect)(()=>{w?.data?.data?.active_token&&O(w.data.data.active_token)},[w?.data?.data?.active_token]),(0,n.useEffect)(()=>{D(N)},[N,D]),(0,n.useEffect)(()=>{I&&l&&C({email:l,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{f("success"),g(e?.sendEmailSuccessMessage||""),H(),setTimeout(()=>{f(""),g("")},5e3)}})},[I,l,C]);const G=(0,n.useCallback)(async()=>{l&&(await C({email:l,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{f("success"),g(e?.sendEmailSuccessMessage||""),H(),setTimeout(()=>{f(""),g("")},5e3)}}),(0,o.gaTrack)({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"sent_again"}}))},[l,C]),J=(x,t)=>{const{value:s}=x.target;if(p(""),Number.isNaN(Number(s)))return;if(s.length>1){t<u.length-1&&(u[t+1]||(b(t+1),T(h=>{const M=[...h];return M[t]=s[0],s.length>1&&(M[t+1]=s[1]),M})));return}const d=[...u];d[t]=s,T(d),s?t<u.length-1&&!u[t+1]&&b(t+1):t>0&&b(t-1)},Q=(0,n.useCallback)(async()=>{if(!_?.length){p(e?.codeEmptyError||"");return}if(_.length<6){p(e?.incorrectCodeError||"");return}E&&await z({token:E,code:_},{onSuccess:t=>{t.status>=200&&t.status<300?(f("success"),g(e?.authSuccessMessage||""),P(!0),v?v():setTimeout(()=>{r.close()},3e3)):t?.data?.error_code==="104"?v?v():setTimeout(()=>{r.close()},3e3):t?.data?.error_code==="142"?p(e?.incorrectCodeError||"Invalid verification code."):t?.data?.error_code==="154"?p(e?.expiredCodeMessage||""):p(e?.sendEmailErrorMessage||"")}});let x=setTimeout(()=>{f(""),g(""),clearTimeout(x)},5e3);(0,o.gaTrack)({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active"}})},[_,e?.codeEmptyError,e?.authSuccessMessage,e?.incorrectCodeError,e?.expiredCodeMessage,e?.sendEmailErrorMessage,i,E]);return(0,a.jsx)($.RegistrationModalContainer,{isOpen:r.isOpen,onClose:r.close,children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(c.Text,{className:"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]",html:e?.authCodeTitle}),(0,a.jsx)(c.Text,{as:"p",className:"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]",html:e?.authCodeDesc?.replace("%email%",l||"")})]}),(0,a.jsxs)("div",{className:"mt-6",children:[(0,a.jsx)(c.Text,{className:"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6",html:e?.enterActiveCodeText}),(0,a.jsx)("div",{className:"my-3 grid grid-cols-6 gap-2",children:u.map((x,t)=>(0,a.jsx)("div",{className:"col-span-1 aspect-1 text-[#555]",children:(0,a.jsx)("input",{ref:s=>{s&&(A.current[t]=s)},type:"tel",className:(0,o.classNames)("flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none",F&&"rounded-[12px]"),value:x,autoComplete:"false",autoCorrect:"false",spellCheck:"false",autoCapitalize:"false",onChange:s=>J(s,t),onFocus:()=>{b(t)},onPaste:s=>{const d=s.clipboardData.getData("text");if(!Number.isNaN(Number(d))){const h=d.split("").slice(0,6);T(h.concat(Array(6-h.length).fill(""))),h.length<=u.length&&b(h.length-1)}},onKeyDown:s=>{const{value:d}=s.target;s.key==="Backspace"&&!d&&t>0&&b(t-1)}},t)},t))}),L&&(0,a.jsx)(c.Text,{className:"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]",html:L}),e?.authCodeContent&&(0,a.jsx)("ul",{className:'flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-["\u2022"]',dangerouslySetInnerHTML:{__html:e?.authCodeContent}})]}),(0,a.jsxs)("div",{className:"mt-4 min-l:mt-6",children:[(0,a.jsx)(c.Text,{className:"text-base font-semibold leading-[100%] text-[#333]",html:e?.authCodeReceiveText})," ",R?(0,a.jsx)(c.Text,{html:e?.retrieveText?.replace("%countdownTime%",q.toString()),className:"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline"}):(0,a.jsx)(c.Text,{onClick:G,className:(0,o.classNames)("cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline",{"pointer-events-none":R||N}),html:e?.sendAgainText}),(0,a.jsx)(c.Button,{type:"submit",loading:j,className:"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8",onClick:Q,children:e.buttonText})]}),(0,a.jsx)(V.Message,{status:U,message:K})]})})};
1
+ "use strict";var k=Object.defineProperty;var X=Object.getOwnPropertyDescriptor;var Y=Object.getOwnPropertyNames;var Z=Object.prototype.hasOwnProperty;var y=(e,i)=>{for(var m in i)k(e,m,{get:i[m],enumerable:!0})},ee=(e,i,m,l)=>{if(i&&typeof i=="object"||typeof i=="function")for(let r of Y(i))!Z.call(e,r)&&r!==m&&k(e,r,{get:()=>i[r],enumerable:!(l=X(i,r))||l.enumerable});return e};var te=e=>ee(k({},"__esModule",{value:!0}),e);var se={};y(se,{AuthCodeActivate:()=>ae});module.exports=te(se);var a=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),o=require("@anker-in/lib"),n=require("react"),V=require("./Message"),B=require("../context"),$=require("../modalContainer"),F=require("../../../constants");const ae=({copy:e})=>{const{locale:i,brand:m}=(0,o.useHeadlessContext)(),{email:l,authCodeActivate:r}=(0,B.useRegistration)(),O=F.ROUNDED_BRANDS.includes(m),{activeToken:E,setActiveToken:P,setIsSendingActivateEmail:D,setIsActivateSuccess:j,onAuthSuccess:v,autoSendEmail:I}=r,{isMutating:z,trigger:K}=(0,o.useEmailValidation)(),{isMutating:N,trigger:C,data:w}=(0,o.useSendEmailValidation)(),[U,g]=(0,n.useState)(""),[q,f]=(0,n.useState)(""),{startCountDown:R,startAction:H,countDown:G}=(0,o.useCountDown)(60),[L,p]=(0,n.useState)(""),[S,b]=(0,n.useState)(0),[u,T]=(0,n.useState)(new Array(6).fill("")),A=(0,n.useRef)([]),_=u.join("");(0,n.useEffect)(()=>{A.current[S]&&A.current[S].focus()},[S]),(0,n.useEffect)(()=>{w?.data?.data?.active_token&&P(w.data.data.active_token)},[w?.data?.data?.active_token]),(0,n.useEffect)(()=>{D(N)},[N,D]),(0,n.useEffect)(()=>{I&&l&&C({email:l,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{f("success"),g(e?.sendEmailSuccessMessage||""),H(),setTimeout(()=>{f(""),g("")},5e3)}})},[I,l,C]);const J=(0,n.useCallback)(async()=>{l&&(await C({email:l,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{f("success"),g(e?.sendEmailSuccessMessage||""),H(),setTimeout(()=>{f(""),g("")},5e3)}}),(0,o.gaTrack)({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"sent_again"}}))},[l,C]),Q=(x,t)=>{const{value:s}=x.target;if(p(""),Number.isNaN(Number(s)))return;if(s.length>1){t<u.length-1&&(u[t+1]||(b(t+1),T(h=>{const M=[...h];return M[t]=s[0],s.length>1&&(M[t+1]=s[1]),M})));return}const d=[...u];d[t]=s,T(d),s?t<u.length-1&&!u[t+1]&&b(t+1):t>0&&b(t-1)},W=(0,n.useCallback)(async()=>{if(!_?.length){p(e?.codeEmptyError||"");return}if(_.length<6){p(e?.incorrectCodeError||"");return}E&&await K({token:E,code:_},{onSuccess:t=>{t.status>=200&&t.status<300?(f("success"),g(e?.authSuccessMessage||""),j(!0),v?v():setTimeout(()=>{r.close()},3e3)):t?.data?.error_code==="104"?v?v():setTimeout(()=>{r.close()},3e3):t?.data?.error_code==="142"?p(e?.incorrectCodeError||"Invalid verification code."):t?.data?.error_code==="154"?p(e?.expiredCodeMessage||""):p(e?.sendEmailErrorMessage||"")}});let x=setTimeout(()=>{f(""),g(""),clearTimeout(x)},5e3);(0,o.gaTrack)({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active"}})},[_,e?.codeEmptyError,e?.authSuccessMessage,e?.incorrectCodeError,e?.expiredCodeMessage,e?.sendEmailErrorMessage,i,E]);return(0,a.jsx)($.RegistrationModalContainer,{isOpen:r.isOpen,onClose:r.close,children:(0,a.jsxs)("div",{className:"relative",children:[(0,a.jsxs)("div",{children:[(0,a.jsx)(c.Text,{className:"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]",html:e?.authCodeTitle}),(0,a.jsx)(c.Text,{as:"p",className:"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]",html:e?.authCodeDesc?.replace("%email%",l||"")})]}),(0,a.jsxs)("div",{className:"mt-6",children:[(0,a.jsx)(c.Text,{className:"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6",html:e?.enterActiveCodeText}),(0,a.jsx)("div",{className:"my-3 grid grid-cols-6 gap-2",children:u.map((x,t)=>(0,a.jsx)("div",{className:"col-span-1 aspect-1 text-[#555]",children:(0,a.jsx)("input",{ref:s=>{s&&(A.current[t]=s)},type:"tel",className:(0,o.classNames)("flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none",O&&"rounded-[12px]"),value:x,autoComplete:"false",autoCorrect:"false",spellCheck:"false",autoCapitalize:"false",onChange:s=>Q(s,t),onFocus:()=>{b(t)},onPaste:s=>{const d=s.clipboardData.getData("text");if(!Number.isNaN(Number(d))){const h=d.split("").slice(0,6);T(h.concat(Array(6-h.length).fill(""))),h.length<=u.length&&b(h.length-1)}},onKeyDown:s=>{const{value:d}=s.target;s.key==="Backspace"&&!d&&t>0&&b(t-1)}},t)},t))}),L&&(0,a.jsx)(c.Text,{className:"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]",html:L}),e?.authCodeContent&&(0,a.jsx)("ul",{className:'flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-["\u2022"]',dangerouslySetInnerHTML:{__html:e?.authCodeContent}})]}),(0,a.jsxs)("div",{className:"mt-4 min-l:mt-6",children:[(0,a.jsx)(c.Text,{className:"text-base font-semibold leading-[100%] text-[#333]",html:e?.authCodeReceiveText})," ",R?(0,a.jsx)(c.Text,{html:e?.retrieveText?.replace("%countdownTime%",G.toString()),className:"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline"}):(0,a.jsx)(c.Text,{onClick:J,className:(0,o.classNames)("cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline",{"pointer-events-none":R||N}),html:e?.sendAgainText}),(0,a.jsx)(c.Button,{type:"submit",loading:z,className:"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8",onClick:W,children:e.buttonText})]}),(0,a.jsx)(V.Message,{status:q,message:U})]})})};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/registration/authCodeActivate/index.tsx"],
4
- "sourcesContent": ["import { Button, Text } from '@anker-in/headless-ui'\nimport {\n useSendEmailValidation,\n gaTrack,\n classNames as cn,\n useHeadlessContext,\n useEmailValidation,\n useCountDown,\n ROUNDED_BRANDS,\n} from '@anker-in/lib'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { Message } from './Message'\nimport { AuthCodeActivateProps } from './type'\nimport { useRegistration } from '../context'\nimport { RegistrationModalContainer } from '../modalContainer'\n\nexport const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {\n const { locale, brand } = useHeadlessContext()\n const { email, authCodeActivate } = useRegistration()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const { activeToken, setActiveToken, setIsSendingActivateEmail, setIsActivateSuccess, onAuthSuccess, autoSendEmail } =\n authCodeActivate\n\n const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()\n\n const {\n isMutating: isSendingEmail,\n trigger: triggerSendValidationEmail,\n data: sendEmailData,\n } = useSendEmailValidation()\n\n const [messageText, setMessageText] = useState('')\n const [messageStatus, setMessageStatus] = useState('')\n const { startCountDown: isStartCountDown, startAction: startCountDown, countDown } = useCountDown(60)\n\n const [error, setError] = useState('')\n const [focusIndex, setFocusIndex] = useState(0)\n const [codeArray, setCodeArray] = useState(new Array(6).fill(''))\n\n const inputRefs = useRef<HTMLInputElement[]>([])\n const code = codeArray.join('')\n\n useEffect(() => {\n if (inputRefs.current[focusIndex]) {\n inputRefs.current[focusIndex].focus()\n }\n }, [focusIndex])\n\n useEffect(() => {\n if (sendEmailData?.data?.data?.active_token) {\n setActiveToken(sendEmailData.data.data.active_token)\n }\n }, [sendEmailData?.data?.data?.active_token])\n\n useEffect(() => {\n setIsSendingActivateEmail(isSendingEmail)\n }, [isSendingEmail, setIsSendingActivateEmail])\n\n // \u81EA\u52A8\u53D1\u9001\u90AE\u7BB1\u9A8C\u8BC1\u7801\n useEffect(() => {\n if (autoSendEmail && email) {\n triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n }\n }, [autoSendEmail, email, triggerSendValidationEmail])\n\n const handleSendAgain = useCallback(async () => {\n if (!email) return\n // \u53D1\u8D77\u7F51\u7EDC\u8BF7\u6C42\n await triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'sent_again',\n },\n })\n }, [email, triggerSendValidationEmail])\n\n const handleInputCodeChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const { value } = event.target\n\n setError('')\n\n if (Number.isNaN(Number(value))) {\n return\n }\n\n if (value.length > 1) {\n if (index < codeArray.length - 1) {\n if (!codeArray[index + 1]) {\n setFocusIndex(index + 1)\n setCodeArray(old => {\n const newCode = [...old]\n newCode[index] = value[0]\n if (value.length > 1) {\n newCode[index + 1] = value[1]\n }\n return newCode\n })\n }\n }\n return\n }\n const newCode = [...codeArray]\n newCode[index] = value\n setCodeArray(newCode)\n if (value) {\n if (index < codeArray.length - 1 && !codeArray[index + 1]) {\n setFocusIndex(index + 1)\n }\n } else if (index > 0) {\n setFocusIndex(index - 1)\n }\n }\n\n const handleAuthCodeSubmit = useCallback(async () => {\n if (!code?.length) {\n setError(copy?.codeEmptyError || '')\n return\n }\n\n if (code.length < 6) {\n setError(copy?.incorrectCodeError || '')\n return\n }\n\n if (activeToken) {\n await triggerEmailValidation(\n {\n token: activeToken,\n code: code,\n },\n {\n onSuccess: data => {\n if (data.status >= 200 && data.status < 300) {\n setMessageStatus('success')\n setMessageText(copy?.authSuccessMessage || '')\n setIsActivateSuccess(true)\n if (onAuthSuccess) {\n onAuthSuccess()\n } else {\n setTimeout(() => {\n authCodeActivate.close()\n }, 3000)\n }\n } else {\n if (data?.data?.error_code === '104') {\n if (onAuthSuccess) {\n onAuthSuccess()\n } else {\n setTimeout(() => {\n authCodeActivate.close()\n }, 3000)\n }\n } else if (data?.data?.error_code === '142') {\n setError(copy?.incorrectCodeError || 'Invalid verification code.')\n } else if (data?.data?.error_code === '154') {\n setError(copy?.expiredCodeMessage || '')\n } else {\n setError(copy?.sendEmailErrorMessage || '')\n }\n }\n },\n }\n )\n }\n\n // \u8BBE\u7F6E\u5B9A\u65F6\u5668\u6E05\u9664\u72B6\u6001\u4FE1\u606F\n let timer = setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n clearTimeout(timer)\n }, 5000)\n\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n },\n })\n }, [\n code,\n copy?.codeEmptyError,\n copy?.authSuccessMessage,\n copy?.incorrectCodeError,\n copy?.expiredCodeMessage,\n copy?.sendEmailErrorMessage,\n locale,\n activeToken,\n ])\n\n return (\n <RegistrationModalContainer isOpen={authCodeActivate.isOpen} onClose={authCodeActivate.close}>\n <div className=\"relative\">\n <div>\n <Text\n className=\"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]\"\n html={copy?.authCodeTitle}\n />\n <Text\n as=\"p\"\n className=\"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]\"\n html={copy?.authCodeDesc?.replace('%email%', email || '')}\n />\n </div>\n <div className=\"mt-6\">\n <Text\n className=\"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6\"\n html={copy?.enterActiveCodeText}\n />\n <div className=\"my-3 grid grid-cols-6 gap-2\">\n {codeArray.map((item, index) => (\n <div key={index} className=\"col-span-1 aspect-1 text-[#555]\">\n <input\n ref={inputRef => {\n if (inputRef) {\n inputRefs.current[index] = inputRef\n }\n }}\n key={index}\n type=\"tel\"\n className={cn(\n 'flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none',\n rounded && 'rounded-[12px]'\n )}\n value={item}\n autoComplete=\"false\"\n autoCorrect=\"false\"\n spellCheck=\"false\"\n autoCapitalize=\"false\"\n onChange={event => handleInputCodeChange(event, index)}\n onFocus={() => {\n setFocusIndex(index)\n }}\n onPaste={event => {\n const paste = event.clipboardData.getData('text')\n if (!Number.isNaN(Number(paste))) {\n const pastedCode = paste.split('').slice(0, 6)\n setCodeArray(pastedCode.concat(Array(6 - pastedCode.length).fill('')))\n if (pastedCode.length <= codeArray.length) {\n setFocusIndex(pastedCode.length - 1)\n }\n }\n }}\n onKeyDown={event => {\n const { value } = event.target as HTMLInputElement\n if (event.key === 'Backspace' && !value && index > 0) {\n setFocusIndex(index - 1)\n }\n }}\n />\n </div>\n ))}\n </div>\n\n {error && <Text className=\"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]\" html={error} />}\n {copy?.authCodeContent && (\n <ul\n className='flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-[\"\u2022\"]'\n dangerouslySetInnerHTML={{ __html: copy?.authCodeContent }}\n />\n )}\n </div>\n <div className=\"mt-4 min-l:mt-6\">\n <Text className=\"text-base font-semibold leading-[100%] text-[#333]\" html={copy?.authCodeReceiveText} />{' '}\n {isStartCountDown ? (\n <Text\n html={copy?.retrieveText?.replace('%countdownTime%', countDown.toString())}\n className=\"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline\"\n />\n ) : (\n <Text\n onClick={handleSendAgain}\n className={cn(\n 'cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline',\n {\n 'pointer-events-none': isStartCountDown || isSendingEmail,\n }\n )}\n html={copy?.sendAgainText}\n />\n )}\n <Button\n type=\"submit\"\n loading={emailValidationLoading}\n className=\"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8\"\n onClick={handleAuthCodeSubmit}\n >\n {copy.buttonText}\n </Button>\n </div>\n <Message status={messageStatus} message={messageText} />\n </div>\n </RegistrationModalContainer>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["authCodeActivate_exports", "__export", "AuthCodeActivate", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_react", "import_Message", "import_context", "import_modalContainer", "copy", "locale", "brand", "email", "authCodeActivate", "rounded", "activeToken", "setActiveToken", "setIsSendingActivateEmail", "setIsActivateSuccess", "onAuthSuccess", "autoSendEmail", "emailValidationLoading", "triggerEmailValidation", "isSendingEmail", "triggerSendValidationEmail", "sendEmailData", "messageText", "setMessageText", "messageStatus", "setMessageStatus", "isStartCountDown", "startCountDown", "countDown", "error", "setError", "focusIndex", "setFocusIndex", "codeArray", "setCodeArray", "inputRefs", "code", "handleSendAgain", "handleInputCodeChange", "event", "index", "value", "old", "newCode", "handleAuthCodeSubmit", "data", "timer", "item", "inputRef", "cn", "paste", "pastedCode"]
4
+ "sourcesContent": ["import { Button, Text } from '@anker-in/headless-ui'\nimport {\n useSendEmailValidation,\n gaTrack,\n classNames as cn,\n useHeadlessContext,\n useEmailValidation,\n useCountDown,\n} from '@anker-in/lib'\nimport React, { useCallback, useEffect, useRef, useState } from 'react'\nimport { Message } from './Message'\nimport { AuthCodeActivateProps } from './type'\nimport { useRegistration } from '../context'\nimport { RegistrationModalContainer } from '../modalContainer'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {\n const { locale, brand } = useHeadlessContext()\n const { email, authCodeActivate } = useRegistration()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const { activeToken, setActiveToken, setIsSendingActivateEmail, setIsActivateSuccess, onAuthSuccess, autoSendEmail } =\n authCodeActivate\n\n const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()\n\n const {\n isMutating: isSendingEmail,\n trigger: triggerSendValidationEmail,\n data: sendEmailData,\n } = useSendEmailValidation()\n\n const [messageText, setMessageText] = useState('')\n const [messageStatus, setMessageStatus] = useState('')\n const { startCountDown: isStartCountDown, startAction: startCountDown, countDown } = useCountDown(60)\n\n const [error, setError] = useState('')\n const [focusIndex, setFocusIndex] = useState(0)\n const [codeArray, setCodeArray] = useState(new Array(6).fill(''))\n\n const inputRefs = useRef<HTMLInputElement[]>([])\n const code = codeArray.join('')\n\n useEffect(() => {\n if (inputRefs.current[focusIndex]) {\n inputRefs.current[focusIndex].focus()\n }\n }, [focusIndex])\n\n useEffect(() => {\n if (sendEmailData?.data?.data?.active_token) {\n setActiveToken(sendEmailData.data.data.active_token)\n }\n }, [sendEmailData?.data?.data?.active_token])\n\n useEffect(() => {\n setIsSendingActivateEmail(isSendingEmail)\n }, [isSendingEmail, setIsSendingActivateEmail])\n\n // \u81EA\u52A8\u53D1\u9001\u90AE\u7BB1\u9A8C\u8BC1\u7801\n useEffect(() => {\n if (autoSendEmail && email) {\n triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n }\n }, [autoSendEmail, email, triggerSendValidationEmail])\n\n const handleSendAgain = useCallback(async () => {\n if (!email) return\n // \u53D1\u8D77\u7F51\u7EDC\u8BF7\u6C42\n await triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'sent_again',\n },\n })\n }, [email, triggerSendValidationEmail])\n\n const handleInputCodeChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const { value } = event.target\n\n setError('')\n\n if (Number.isNaN(Number(value))) {\n return\n }\n\n if (value.length > 1) {\n if (index < codeArray.length - 1) {\n if (!codeArray[index + 1]) {\n setFocusIndex(index + 1)\n setCodeArray(old => {\n const newCode = [...old]\n newCode[index] = value[0]\n if (value.length > 1) {\n newCode[index + 1] = value[1]\n }\n return newCode\n })\n }\n }\n return\n }\n const newCode = [...codeArray]\n newCode[index] = value\n setCodeArray(newCode)\n if (value) {\n if (index < codeArray.length - 1 && !codeArray[index + 1]) {\n setFocusIndex(index + 1)\n }\n } else if (index > 0) {\n setFocusIndex(index - 1)\n }\n }\n\n const handleAuthCodeSubmit = useCallback(async () => {\n if (!code?.length) {\n setError(copy?.codeEmptyError || '')\n return\n }\n\n if (code.length < 6) {\n setError(copy?.incorrectCodeError || '')\n return\n }\n\n if (activeToken) {\n await triggerEmailValidation(\n {\n token: activeToken,\n code: code,\n },\n {\n onSuccess: data => {\n if (data.status >= 200 && data.status < 300) {\n setMessageStatus('success')\n setMessageText(copy?.authSuccessMessage || '')\n setIsActivateSuccess(true)\n if (onAuthSuccess) {\n onAuthSuccess()\n } else {\n setTimeout(() => {\n authCodeActivate.close()\n }, 3000)\n }\n } else {\n if (data?.data?.error_code === '104') {\n if (onAuthSuccess) {\n onAuthSuccess()\n } else {\n setTimeout(() => {\n authCodeActivate.close()\n }, 3000)\n }\n } else if (data?.data?.error_code === '142') {\n setError(copy?.incorrectCodeError || 'Invalid verification code.')\n } else if (data?.data?.error_code === '154') {\n setError(copy?.expiredCodeMessage || '')\n } else {\n setError(copy?.sendEmailErrorMessage || '')\n }\n }\n },\n }\n )\n }\n\n // \u8BBE\u7F6E\u5B9A\u65F6\u5668\u6E05\u9664\u72B6\u6001\u4FE1\u606F\n let timer = setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n clearTimeout(timer)\n }, 5000)\n\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n },\n })\n }, [\n code,\n copy?.codeEmptyError,\n copy?.authSuccessMessage,\n copy?.incorrectCodeError,\n copy?.expiredCodeMessage,\n copy?.sendEmailErrorMessage,\n locale,\n activeToken,\n ])\n\n return (\n <RegistrationModalContainer isOpen={authCodeActivate.isOpen} onClose={authCodeActivate.close}>\n <div className=\"relative\">\n <div>\n <Text\n className=\"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]\"\n html={copy?.authCodeTitle}\n />\n <Text\n as=\"p\"\n className=\"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]\"\n html={copy?.authCodeDesc?.replace('%email%', email || '')}\n />\n </div>\n <div className=\"mt-6\">\n <Text\n className=\"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6\"\n html={copy?.enterActiveCodeText}\n />\n <div className=\"my-3 grid grid-cols-6 gap-2\">\n {codeArray.map((item, index) => (\n <div key={index} className=\"col-span-1 aspect-1 text-[#555]\">\n <input\n ref={inputRef => {\n if (inputRef) {\n inputRefs.current[index] = inputRef\n }\n }}\n key={index}\n type=\"tel\"\n className={cn(\n 'flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none',\n rounded && 'rounded-[12px]'\n )}\n value={item}\n autoComplete=\"false\"\n autoCorrect=\"false\"\n spellCheck=\"false\"\n autoCapitalize=\"false\"\n onChange={event => handleInputCodeChange(event, index)}\n onFocus={() => {\n setFocusIndex(index)\n }}\n onPaste={event => {\n const paste = event.clipboardData.getData('text')\n if (!Number.isNaN(Number(paste))) {\n const pastedCode = paste.split('').slice(0, 6)\n setCodeArray(pastedCode.concat(Array(6 - pastedCode.length).fill('')))\n if (pastedCode.length <= codeArray.length) {\n setFocusIndex(pastedCode.length - 1)\n }\n }\n }}\n onKeyDown={event => {\n const { value } = event.target as HTMLInputElement\n if (event.key === 'Backspace' && !value && index > 0) {\n setFocusIndex(index - 1)\n }\n }}\n />\n </div>\n ))}\n </div>\n\n {error && <Text className=\"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]\" html={error} />}\n {copy?.authCodeContent && (\n <ul\n className='flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-[\"\u2022\"]'\n dangerouslySetInnerHTML={{ __html: copy?.authCodeContent }}\n />\n )}\n </div>\n <div className=\"mt-4 min-l:mt-6\">\n <Text className=\"text-base font-semibold leading-[100%] text-[#333]\" html={copy?.authCodeReceiveText} />{' '}\n {isStartCountDown ? (\n <Text\n html={copy?.retrieveText?.replace('%countdownTime%', countDown.toString())}\n className=\"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline\"\n />\n ) : (\n <Text\n onClick={handleSendAgain}\n className={cn(\n 'cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline',\n {\n 'pointer-events-none': isStartCountDown || isSendingEmail,\n }\n )}\n html={copy?.sendAgainText}\n />\n )}\n <Button\n type=\"submit\"\n loading={emailValidationLoading}\n className=\"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8\"\n onClick={handleAuthCodeSubmit}\n >\n {copy.buttonText}\n </Button>\n </div>\n <Message status={messageStatus} message={messageText} />\n </div>\n </RegistrationModalContainer>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["authCodeActivate_exports", "__export", "AuthCodeActivate", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_react", "import_Message", "import_context", "import_modalContainer", "import_constants", "copy", "locale", "brand", "email", "authCodeActivate", "rounded", "activeToken", "setActiveToken", "setIsSendingActivateEmail", "setIsActivateSuccess", "onAuthSuccess", "autoSendEmail", "emailValidationLoading", "triggerEmailValidation", "isSendingEmail", "triggerSendValidationEmail", "sendEmailData", "messageText", "setMessageText", "messageStatus", "setMessageStatus", "isStartCountDown", "startCountDown", "countDown", "error", "setError", "focusIndex", "setFocusIndex", "codeArray", "setCodeArray", "inputRefs", "code", "handleSendAgain", "handleInputCodeChange", "event", "index", "value", "old", "newCode", "handleAuthCodeSubmit", "data", "timer", "item", "inputRef", "cn", "paste", "pastedCode"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,E=Object.prototype.hasOwnProperty;var D=(e,t)=>{for(var n in t)d(e,n,{get:t[n],enumerable:!0})},f=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of M(t))!E.call(e,a)&&a!==n&&d(e,a,{get:()=>t[a],enumerable:!(r=N(t,a))||r.enumerable});return e};var H=(e,t,n)=>(n=e!=null?y(R(e)):{},f(t||!e||!e.__esModule?d(n,"default",{value:e,enumerable:!0}):n,e)),k=e=>f(d({},"__esModule",{value:!0}),e);var Z={};D(Z,{RegistrationModalContainer:()=>S});module.exports=k(Z);var l=require("react/jsx-runtime"),o=require("@anker-in/lib"),m=require("react"),v=H(require("react-modal"));const S=({isOpen:e,title:t,className:n="",overlayClassName:r="",scrollClassName:a="",onClose:c,onScrollEnd:x,children:C,useAnimation:p=!0,titleClassName:u="",...h})=>{const{brand:L}=(0,o.useHeadlessContext)(),g=o.ROUNDED_BRANDS.includes(L),[w,b]=(0,m.useState)(!1);return(0,m.useEffect)(()=>{p&&requestAnimationFrame(()=>{b(e??!1)})},[e,p]),(0,l.jsxs)(v.default,{isOpen:e??!1,overlayClassName:(0,o.classNames)("fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end",r),className:(0,o.classNames)("min-md:max-h-[calc(100vh-96px)] w-[540px] relative flex min-h-[200px] flex-col overflow-hidden bg-white outline-none transition-all duration-300 md:h-auto md:w-full",g&&"rounded-[16px] md:rounded-b-none",p&&"md:translate-y-[100vh]",w&&"md:translate-y-0",n),onRequestClose:c,...h,children:[(0,l.jsxs)("div",{className:(0,o.classNames)("flex w-full shrink-0 items-center justify-between",t?"min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]":"h-[48px] px-[16px]",u),children:[(0,l.jsx)("div",{className:"text-[18px] font-bold",children:t}),(0,l.jsx)("div",{className:"size-[22px] cursor-pointer",onClick:c,onKeyDown:i=>{(i.key==="Enter"||i.key===" ")&&(i.preventDefault(),c?.())},role:"button",tabIndex:0,children:(0,l.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:(0,l.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z",fill:"#333333"})})})]}),(0,l.jsx)("div",{className:(0,o.classNames)("my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]",!t&&"mt-0","min-l:px-[32px]",a),onScroll:i=>{const s=i.target;s.scrollHeight<=s.clientHeight||s.scrollTop+s.clientHeight>=s.scrollHeight-50&&x&&x(i)},children:C})]})};
1
+ "use strict";var N=Object.create;var d=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var E=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty;var H=(e,t)=>{for(var n in t)d(e,n,{get:t[n],enumerable:!0})},f=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of R(t))!D.call(e,o)&&o!==n&&d(e,o,{get:()=>t[o],enumerable:!(r=M(t,o))||r.enumerable});return e};var k=(e,t,n)=>(n=e!=null?N(E(e)):{},f(t||!e||!e.__esModule?d(n,"default",{value:e,enumerable:!0}):n,e)),S=e=>f(d({},"__esModule",{value:!0}),e);var I={};H(I,{RegistrationModalContainer:()=>Z});module.exports=S(I);var l=require("react/jsx-runtime"),i=require("@anker-in/lib"),m=require("react"),v=k(require("react-modal")),C=require("../../constants");const Z=({isOpen:e,title:t,className:n="",overlayClassName:r="",scrollClassName:o="",onClose:c,onScrollEnd:x,children:u,useAnimation:p=!0,titleClassName:h="",...L})=>{const{brand:g}=(0,i.useHeadlessContext)(),w=C.ROUNDED_BRANDS.includes(g),[b,y]=(0,m.useState)(!1);return(0,m.useEffect)(()=>{p&&requestAnimationFrame(()=>{y(e??!1)})},[e,p]),(0,l.jsxs)(v.default,{isOpen:e??!1,overlayClassName:(0,i.classNames)("fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end",r),className:(0,i.classNames)("min-md:max-h-[calc(100vh-96px)] w-[540px] relative flex min-h-[200px] flex-col overflow-hidden bg-white outline-none transition-all duration-300 md:h-auto md:w-full",w&&"rounded-[16px] md:rounded-b-none",p&&"md:translate-y-[100vh]",b&&"md:translate-y-0",n),onRequestClose:c,...L,children:[(0,l.jsxs)("div",{className:(0,i.classNames)("flex w-full shrink-0 items-center justify-between",t?"min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]":"h-[48px] px-[16px]",h),children:[(0,l.jsx)("div",{className:"text-[18px] font-bold",children:t}),(0,l.jsx)("div",{className:"size-[22px] cursor-pointer",onClick:c,onKeyDown:a=>{(a.key==="Enter"||a.key===" ")&&(a.preventDefault(),c?.())},role:"button",tabIndex:0,children:(0,l.jsx)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"22",height:"22",viewBox:"0 0 22 22",fill:"none",children:(0,l.jsx)("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z",fill:"#333333"})})})]}),(0,l.jsx)("div",{className:(0,i.classNames)("my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]",!t&&"mt-0","min-l:px-[32px]",o),onScroll:a=>{const s=a.target;s.scrollHeight<=s.clientHeight||s.scrollTop+s.clientHeight>=s.scrollHeight-50&&x&&x(a)},children:u})]})};
2
2
  //# sourceMappingURL=modalContainer.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/registration/modalContainer.tsx"],
4
- "sourcesContent": ["import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n isOpen: boolean\n children?: any\n onClose: () => void\n onScrollEnd?: (event: UIEvent<HTMLDivElement>) => void\n}\n\nexport const RegistrationModalContainer = ({\n isOpen,\n title,\n className = '',\n overlayClassName = '',\n scrollClassName = '',\n onClose,\n onScrollEnd,\n children,\n useAnimation = true,\n titleClassName = '',\n ...props\n}: ModalContainerProps): React.ReactElement => {\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [animationShow, setAnimationShow] = useState(false)\n\n useEffect(() => {\n if (!useAnimation) {\n return\n }\n requestAnimationFrame(() => {\n setAnimationShow(isOpen ?? false)\n })\n }, [isOpen, useAnimation])\n\n return (\n <ReactModal\n isOpen={isOpen ?? false}\n overlayClassName={cn(\n 'fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end',\n overlayClassName\n )}\n className={cn(\n 'min-md:max-h-[calc(100vh-96px)] w-[540px] relative flex min-h-[200px] flex-col overflow-hidden bg-white outline-none transition-all duration-300 md:h-auto md:w-full',\n rounded && 'rounded-[16px] md:rounded-b-none',\n useAnimation && 'md:translate-y-[100vh]',\n animationShow && 'md:translate-y-0',\n className\n )}\n onRequestClose={onClose}\n {...props}\n >\n <div\n className={cn(\n 'flex w-full shrink-0 items-center justify-between',\n title ? 'min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]' : 'h-[48px] px-[16px]',\n titleClassName\n )}\n >\n <div className=\"text-[18px] font-bold\">{title}</div>\n <div\n className=\"size-[22px] cursor-pointer\"\n onClick={onClose}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClose?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n <div\n className={cn(\n 'my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]',\n !title && 'mt-0',\n 'min-l:px-[32px]',\n scrollClassName\n )}\n onScroll={event => {\n const targetElement = event.target as HTMLDivElement\n\n if (targetElement.scrollHeight <= targetElement.clientHeight) {\n return\n }\n\n if (targetElement.scrollTop + targetElement.clientHeight >= targetElement.scrollHeight - 50) {\n onScrollEnd && onScrollEnd(event)\n }\n }}\n >\n {children}\n </div>\n </ReactModal>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GA4DM,IAAAI,EAAA,6BA5DNC,EAAqE,yBACrEC,EAAkD,iBAClDC,EAAuB,0BAehB,MAAML,EAA6B,CAAC,CACzC,OAAAM,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EAAe,GACf,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EACvC,CAACE,EAAeC,CAAgB,KAAI,YAAS,EAAK,EAExD,sBAAU,IAAM,CACTN,GAGL,sBAAsB,IAAM,CAC1BM,EAAiBd,GAAU,EAAK,CAClC,CAAC,CACH,EAAG,CAACA,EAAQQ,CAAY,CAAC,KAGvB,QAAC,EAAAO,QAAA,CACC,OAAQf,GAAU,GAClB,oBAAkB,EAAAgB,YAChB,gGACAb,CACF,EACA,aAAW,EAAAa,YACT,uKACAJ,GAAW,mCACXJ,GAAgB,yBAChBK,GAAiB,mBACjBX,CACF,EACA,eAAgBG,EACf,GAAGK,EAEJ,qBAAC,OACC,aAAW,EAAAM,YACT,oDACAf,EAAQ,+DAAiE,qBACzEQ,CACF,EAEA,oBAAC,OAAI,UAAU,wBAAyB,SAAAR,EAAM,KAC9C,OAAC,OACC,UAAU,6BACV,QAASI,EACT,UAAWY,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OACjCA,EAAE,eAAe,EACjBZ,IAAU,EAEd,EACA,KAAK,SACL,SAAU,EAEV,mBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,mBAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,syCACF,KAAK,UACP,EACF,EACF,GACF,KACA,OAAC,OACC,aAAW,EAAAW,YACT,2EACA,CAACf,GAAS,OACV,kBACAG,CACF,EACA,SAAUc,GAAS,CACjB,MAAMC,EAAgBD,EAAM,OAExBC,EAAc,cAAgBA,EAAc,cAI5CA,EAAc,UAAYA,EAAc,cAAgBA,EAAc,aAAe,IACvFb,GAAeA,EAAYY,CAAK,CAEpC,EAEC,SAAAX,EACH,GACF,CAEJ",
6
- "names": ["modalContainer_exports", "__export", "RegistrationModalContainer", "__toCommonJS", "import_jsx_runtime", "import_lib", "import_react", "import_react_modal", "isOpen", "title", "className", "overlayClassName", "scrollClassName", "onClose", "onScrollEnd", "children", "useAnimation", "titleClassName", "props", "brand", "rounded", "animationShow", "setAnimationShow", "ReactModal", "cn", "e", "event", "targetElement"]
4
+ "sourcesContent": ["import { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\nimport { ROUNDED_BRANDS } from '../../constants'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n isOpen: boolean\n children?: any\n onClose: () => void\n onScrollEnd?: (event: UIEvent<HTMLDivElement>) => void\n}\n\nexport const RegistrationModalContainer = ({\n isOpen,\n title,\n className = '',\n overlayClassName = '',\n scrollClassName = '',\n onClose,\n onScrollEnd,\n children,\n useAnimation = true,\n titleClassName = '',\n ...props\n}: ModalContainerProps): React.ReactElement => {\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [animationShow, setAnimationShow] = useState(false)\n\n useEffect(() => {\n if (!useAnimation) {\n return\n }\n requestAnimationFrame(() => {\n setAnimationShow(isOpen ?? false)\n })\n }, [isOpen, useAnimation])\n\n return (\n <ReactModal\n isOpen={isOpen ?? false}\n overlayClassName={cn(\n 'fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end',\n overlayClassName\n )}\n className={cn(\n 'min-md:max-h-[calc(100vh-96px)] w-[540px] relative flex min-h-[200px] flex-col overflow-hidden bg-white outline-none transition-all duration-300 md:h-auto md:w-full',\n rounded && 'rounded-[16px] md:rounded-b-none',\n useAnimation && 'md:translate-y-[100vh]',\n animationShow && 'md:translate-y-0',\n className\n )}\n onRequestClose={onClose}\n {...props}\n >\n <div\n className={cn(\n 'flex w-full shrink-0 items-center justify-between',\n title ? 'min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]' : 'h-[48px] px-[16px]',\n titleClassName\n )}\n >\n <div className=\"text-[18px] font-bold\">{title}</div>\n <div\n className=\"size-[22px] cursor-pointer\"\n onClick={onClose}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClose?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n <div\n className={cn(\n 'my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]',\n !title && 'mt-0',\n 'min-l:px-[32px]',\n scrollClassName\n )}\n onScroll={event => {\n const targetElement = event.target as HTMLDivElement\n\n if (targetElement.scrollHeight <= targetElement.clientHeight) {\n return\n }\n\n if (targetElement.scrollTop + targetElement.clientHeight >= targetElement.scrollHeight - 50) {\n onScrollEnd && onScrollEnd(event)\n }\n }}\n >\n {children}\n </div>\n </ReactModal>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,gCAAAE,IAAA,eAAAC,EAAAH,GA6DM,IAAAI,EAAA,6BA7DNC,EAAqD,yBACrDC,EAAkD,iBAClDC,EAAuB,0BACvBC,EAA+B,2BAexB,MAAMN,EAA6B,CAAC,CACzC,OAAAO,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EAAe,GACf,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EACvC,CAACE,EAAeC,CAAgB,KAAI,YAAS,EAAK,EAExD,sBAAU,IAAM,CACTN,GAGL,sBAAsB,IAAM,CAC1BM,EAAiBd,GAAU,EAAK,CAClC,CAAC,CACH,EAAG,CAACA,EAAQQ,CAAY,CAAC,KAGvB,QAAC,EAAAO,QAAA,CACC,OAAQf,GAAU,GAClB,oBAAkB,EAAAgB,YAChB,gGACAb,CACF,EACA,aAAW,EAAAa,YACT,uKACAJ,GAAW,mCACXJ,GAAgB,yBAChBK,GAAiB,mBACjBX,CACF,EACA,eAAgBG,EACf,GAAGK,EAEJ,qBAAC,OACC,aAAW,EAAAM,YACT,oDACAf,EAAQ,+DAAiE,qBACzEQ,CACF,EAEA,oBAAC,OAAI,UAAU,wBAAyB,SAAAR,EAAM,KAC9C,OAAC,OACC,UAAU,6BACV,QAASI,EACT,UAAWY,GAAK,EACVA,EAAE,MAAQ,SAAWA,EAAE,MAAQ,OACjCA,EAAE,eAAe,EACjBZ,IAAU,EAEd,EACA,KAAK,SACL,SAAU,EAEV,mBAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,mBAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,syCACF,KAAK,UACP,EACF,EACF,GACF,KACA,OAAC,OACC,aAAW,EAAAW,YACT,2EACA,CAACf,GAAS,OACV,kBACAG,CACF,EACA,SAAUc,GAAS,CACjB,MAAMC,EAAgBD,EAAM,OAExBC,EAAc,cAAgBA,EAAc,cAI5CA,EAAc,UAAYA,EAAc,cAAgBA,EAAc,aAAe,IACvFb,GAAeA,EAAYY,CAAK,CAEpC,EAEC,SAAAX,EACH,GACF,CAEJ",
6
+ "names": ["modalContainer_exports", "__export", "RegistrationModalContainer", "__toCommonJS", "import_jsx_runtime", "import_lib", "import_react", "import_react_modal", "import_constants", "isOpen", "title", "className", "overlayClassName", "scrollClassName", "onClose", "onScrollEnd", "children", "useAnimation", "titleClassName", "props", "brand", "rounded", "animationShow", "setAnimationShow", "ReactModal", "cn", "e", "event", "targetElement"]
7
7
  }
@@ -0,0 +1 @@
1
+ export declare const ROUNDED_BRANDS: string[];
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var t=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var N=(e,o)=>{for(var c in o)n(e,c,{get:o[c],enumerable:!0})},R=(e,o,c,r)=>{if(o&&typeof o=="object"||typeof o=="function")for(let D of t(o))!u.call(e,D)&&D!==c&&n(e,D,{get:()=>o[D],enumerable:!(r=s(o,D))||r.enumerable});return e};var d=e=>R(n({},"__esModule",{value:!0}),e);var p={};N(p,{ROUNDED_BRANDS:()=>f});module.exports=d(p);const f=["eufy","soundcore"];
2
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/constants.ts"],
4
+ "sourcesContent": ["export const ROUNDED_BRANDS = ['eufy', 'soundcore']\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,oBAAAE,IAAA,eAAAC,EAAAH,GAAO,MAAME,EAAiB,CAAC,OAAQ,WAAW",
6
+ "names": ["constants_exports", "__export", "ROUNDED_BRANDS", "__toCommonJS"]
7
+ }
@@ -0,0 +1,14 @@
1
+ export declare function getAsyncError(res: {
2
+ json: () => any;
3
+ status: any;
4
+ statusText: any;
5
+ }): Promise<{
6
+ status: any;
7
+ statusText: any;
8
+ errors: any;
9
+ type: any;
10
+ data: any;
11
+ message: any;
12
+ } | undefined>;
13
+ declare const handleFetchResponse: (res: Response) => Promise<any>;
14
+ export default handleFetchResponse;
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var d=(a,t)=>{for(var s in t)o(a,s,{get:t[s],enumerable:!0})},l=(a,t,s,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let e of c(t))!y.call(a,e)&&e!==s&&o(a,e,{get:()=>t[e],enumerable:!(n=u(t,e))||n.enumerable});return a};var g=a=>l(o({},"__esModule",{value:!0}),a);var x={};d(x,{default:()=>p,getAsyncError:()=>r});module.exports=g(x);async function r(a){try{const t=await a.json();return{status:a.status,statusText:a.statusText,errors:t?.data?.error||t?.data?.code||a.statusText||a.status,type:t?.data?.type,data:t?.data,message:t?.data?.message}}catch(t){console.log(t)}}const i=async a=>{if(a.ok)try{const t=await a.json(),{errors:s}=t;return s&&s.length?{errors:s,status:a.status}:t}catch(t){console.log(t)}return await r(a)};var p=i;
2
+ //# sourceMappingURL=fetchResponse.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/fetchResponse.ts"],
4
+ "sourcesContent": ["export async function getAsyncError(res: { json: () => any; status: any; statusText: any }) {\n try {\n const result = await res.json()\n return {\n status: res.status,\n statusText: res.statusText,\n errors: result?.data?.error || result?.data?.code || res.statusText || res.status,\n type: result?.data?.type,\n data: result?.data,\n message: result?.data?.message,\n }\n } catch (error) {\n console.log(error)\n }\n}\n\nconst handleFetchResponse = async (res: Response) => {\n if (res.ok) {\n try {\n const result = await res.json()\n const { errors } = result\n if (errors && errors.length) {\n return { errors, status: res.status }\n }\n\n return result\n } catch (error) {\n console.log(error)\n }\n }\n\n return await getAsyncError(res)\n}\n\nexport default handleFetchResponse\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,EAAA,kBAAAC,IAAA,eAAAC,EAAAJ,GAAA,eAAsBG,EAAcE,EAAwD,CAC1F,GAAI,CACF,MAAMC,EAAS,MAAMD,EAAI,KAAK,EAC9B,MAAO,CACL,OAAQA,EAAI,OACZ,WAAYA,EAAI,WAChB,OAAQC,GAAQ,MAAM,OAASA,GAAQ,MAAM,MAAQD,EAAI,YAAcA,EAAI,OAC3E,KAAMC,GAAQ,MAAM,KACpB,KAAMA,GAAQ,KACd,QAASA,GAAQ,MAAM,OACzB,CACF,OAASC,EAAO,CACd,QAAQ,IAAIA,CAAK,CACnB,CACF,CAEA,MAAMC,EAAsB,MAAOH,GAAkB,CACnD,GAAIA,EAAI,GACN,GAAI,CACF,MAAMC,EAAS,MAAMD,EAAI,KAAK,EACxB,CAAE,OAAAI,CAAO,EAAIH,EACnB,OAAIG,GAAUA,EAAO,OACZ,CAAE,OAAAA,EAAQ,OAAQJ,EAAI,MAAO,EAG/BC,CACT,OAASC,EAAO,CACd,QAAQ,IAAIA,CAAK,CACnB,CAGF,OAAO,MAAMJ,EAAcE,CAAG,CAChC,EAEA,IAAOH,EAAQM",
6
+ "names": ["fetchResponse_exports", "__export", "fetchResponse_default", "getAsyncError", "__toCommonJS", "res", "result", "error", "handleFetchResponse", "errors"]
7
+ }
@@ -0,0 +1,2 @@
1
+ declare const fetcher: ({ locale, url, method, headers, body, type, timeout }: any) => Promise<any>;
2
+ export default fetcher;
@@ -0,0 +1,2 @@
1
+ "use strict";var h=Object.create;var o=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var y=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var b=(e,a)=>{for(var n in a)o(e,n,{get:a[n],enumerable:!0})},i=(e,a,n,t)=>{if(a&&typeof a=="object"||typeof a=="function")for(let r of u(a))!T.call(e,r)&&r!==n&&o(e,r,{get:()=>a[r],enumerable:!(t=p(a,r))||t.enumerable});return e};var w=(e,a,n)=>(n=e!=null?h(y(e)):{},i(a||!e||!e.__esModule?o(n,"default",{value:e,enumerable:!0}):n,e)),F=e=>i(o({},"__esModule",{value:!0}),e);var m={};b(m,{default:()=>S});module.exports=F(m);var f=w(require("./fetchResponse.js"));const O=async({locale:e="en",url:a,method:n="POST",headers:t={},body:r,type:d,timeout:l=9e4})=>{let s="";d==="uploadFile"?s=r:s=r?JSON.stringify(r):"";const c=new AbortController;l&&setTimeout(()=>c.abort(),l);const g=await fetch(a,{method:n,mode:"cors",headers:{"current-language":e,...t},...l&&{signal:c.signal},...n!=="GET"&&{body:s}});return(0,f.default)(g)};var S=O;
2
+ //# sourceMappingURL=fetcher.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/fetcher.ts"],
4
+ "sourcesContent": ["import handleFetchResponse from './fetchResponse.js'\n\nconst fetcher = async ({ locale = 'en', url, method = 'POST', headers = {}, body, type, timeout = 90000 }: any) => {\n // \u6DFB\u52A0\u8C37\u6B4C\u9A8C\u8BC1\n let bodyData = ''\n if (type === 'uploadFile') {\n bodyData = body\n } else {\n bodyData = body ? JSON.stringify(body) : ''\n }\n\n const controller = new AbortController()\n if (timeout) {\n // \u8D85\u65F6\u62A5\u9519\n setTimeout(() => controller.abort(), timeout)\n }\n\n const data = await fetch(url, {\n method,\n mode: 'cors',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n ...(timeout && { signal: controller.signal }),\n ...(method !== 'GET' && { body: bodyData }),\n })\n return handleFetchResponse(data)\n}\n\nexport default fetcher\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAgC,iCAEhC,MAAMC,EAAU,MAAO,CAAE,OAAAC,EAAS,KAAM,IAAAC,EAAK,OAAAC,EAAS,OAAQ,QAAAC,EAAU,CAAC,EAAG,KAAAC,EAAM,KAAAC,EAAM,QAAAC,EAAU,GAAM,IAAW,CAEjH,IAAIC,EAAW,GACXF,IAAS,aACXE,EAAWH,EAEXG,EAAWH,EAAO,KAAK,UAAUA,CAAI,EAAI,GAG3C,MAAMI,EAAa,IAAI,gBACnBF,GAEF,WAAW,IAAME,EAAW,MAAM,EAAGF,CAAO,EAG9C,MAAMG,EAAO,MAAM,MAAMR,EAAK,CAC5B,OAAAC,EACA,KAAM,OACN,QAAS,CACP,mBAAoBF,EACpB,GAAGG,CACL,EACA,GAAIG,GAAW,CAAE,OAAQE,EAAW,MAAO,EAC3C,GAAIN,IAAW,OAAS,CAAE,KAAMK,CAAS,CAC3C,CAAC,EACD,SAAO,EAAAG,SAAoBD,CAAI,CACjC,EAEA,IAAOb,EAAQG",
6
+ "names": ["fetcher_exports", "__export", "fetcher_default", "__toCommonJS", "import_fetchResponse", "fetcher", "locale", "url", "method", "headers", "body", "type", "timeout", "bodyData", "controller", "data", "handleFetchResponse"]
7
+ }
@@ -0,0 +1,2 @@
1
+ export { cn } from './utils.js';
2
+ export { noop } from './utils.js';
@@ -0,0 +1,2 @@
1
+ "use strict";var f=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var a=Object.prototype.hasOwnProperty;var b=(r,o)=>{for(var e in o)f(r,e,{get:o[e],enumerable:!0})},d=(r,o,e,m)=>{if(o&&typeof o=="object"||typeof o=="function")for(let p of c(o))!a.call(r,p)&&p!==e&&f(r,p,{get:()=>o[p],enumerable:!(m=x(o,p))||m.enumerable});return r};var g=r=>d(f({},"__esModule",{value:!0}),r);var h={};b(h,{cn:()=>n.cn,noop:()=>t.noop});module.exports=g(h);var n=require("./utils.js"),t=require("./utils.js");
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/index.ts"],
4
+ "sourcesContent": ["export { cn } from './utils.js'\nexport { noop } from './utils.js'\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,8CAAAE,EAAAF,GAAA,IAAAG,EAAmB,sBACnBA,EAAqB",
6
+ "names": ["helpers_exports", "__export", "__toCommonJS", "import_utils"]
7
+ }
@@ -0,0 +1,19 @@
1
+ declare global {
2
+ interface Window {
3
+ dataLayer?: Array<any>;
4
+ fbq?: (...args: any[]) => void;
5
+ klaviyo?: any;
6
+ gtag?: any;
7
+ }
8
+ }
9
+ export declare const gaTrack: (data: any) => "" | undefined;
10
+ export declare function gaNormalClick({ position, label }: {
11
+ position: string;
12
+ label: string;
13
+ }): void;
14
+ export declare const fbq: (...args: any[]) => "" | undefined;
15
+ export declare const gtag: (...args: any[]) => "" | undefined;
16
+ export declare const getGtmGroup: ({ query, asPath }: {
17
+ query: any;
18
+ asPath: string;
19
+ }) => any;
@@ -0,0 +1,2 @@
1
+ "use strict";var a=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var p=(e,n)=>{for(var t in n)a(e,t,{get:n[t],enumerable:!0})},s=(e,n,t,o)=>{if(n&&typeof n=="object"||typeof n=="function")for(let r of g(n))!w.call(e,r)&&r!==t&&a(e,r,{get:()=>n[r],enumerable:!(o=d(n,r))||o.enumerable});return e};var u=e=>s(a({},"__esModule",{value:!0}),e);var m={};p(m,{fbq:()=>f,gaNormalClick:()=>c,gaTrack:()=>i,getGtmGroup:()=>y,gtag:()=>l});module.exports=u(m);const i=e=>{if(typeof window>"u"||(window.dataLayer=window?.dataLayer||[],!Array.isArray(window.dataLayer)))return"";try{window?.dataLayer?.push({event_parameters:null}),window?.dataLayer?.push(e||{})}catch(n){console.log("pageGTMEvent error",n)}};function c({position:e,label:n}){i({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"soundcoreCredits Rewards Program",position:e,button_name:n}})}const f=(...e)=>{if(typeof window>"u")return"";window.fbq&&window.fbq(...e)},l=(...e)=>{if(typeof window>"u")return"";window.gtag&&window.gtag(...e)},y=({query:e,asPath:n})=>n.includes("collections")?`Product List Page_${e?.handle}`:n.includes("products")?"Product Detail Page_"+e?.handle:n==="/"||n==="/app-home"?"Home Page":"Activity Page_"+e?.handle||e?.paths?.[0]?.replace("storefront-","");
2
+ //# sourceMappingURL=track.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/track.ts"],
4
+ "sourcesContent": ["declare global {\n interface Window {\n dataLayer?: Array<any>\n fbq?: (...args: any[]) => void\n klaviyo?: any\n gtag?: any\n }\n}\n\n// GA \u57CB\u70B9\nexport const gaTrack = (data: any) => {\n if (typeof window === 'undefined') {\n return ''\n }\n window.dataLayer = window?.dataLayer || []\n if (!Array.isArray(window.dataLayer)) {\n return ''\n }\n\n try {\n window?.dataLayer?.push({ event_parameters: null })\n window?.dataLayer?.push(data || {})\n } catch (error) {\n console.log('pageGTMEvent error', error)\n }\n}\n\nexport function gaNormalClick({ position, label }: { position: string; label: string }) {\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'soundcoreCredits Rewards Program',\n position: position,\n button_name: label,\n },\n })\n}\n\n// facebook \u57CB\u70B9\nexport const fbq = (...args: any[]) => {\n if (typeof window === 'undefined') {\n return ''\n }\n if (window.fbq) {\n window.fbq(...args)\n }\n}\n\nexport const gtag = (...args: any[]) => {\n if (typeof window === 'undefined') {\n return ''\n }\n if (window.gtag) {\n window.gtag(...args)\n }\n}\n\nexport const getGtmGroup = ({ query, asPath }: { query: any; asPath: string }) => {\n if (asPath.includes('collections')) {\n return `Product List Page_${query?.handle}`\n }\n\n if (asPath.includes('products')) {\n return 'Product Detail Page_' + query?.handle\n }\n\n if (asPath === '/' || asPath === '/app-home') {\n return 'Home Page'\n }\n\n return 'Activity Page_' + query?.handle || query?.paths?.[0]?.replace('storefront-', '')\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,SAAAE,EAAA,kBAAAC,EAAA,YAAAC,EAAA,gBAAAC,EAAA,SAAAC,IAAA,eAAAC,EAAAP,GAUO,MAAMI,EAAWI,GAAc,CAKpC,GAJI,OAAO,OAAW,MAGtB,OAAO,UAAY,QAAQ,WAAa,CAAC,EACrC,CAAC,MAAM,QAAQ,OAAO,SAAS,GACjC,MAAO,GAGT,GAAI,CACF,QAAQ,WAAW,KAAK,CAAE,iBAAkB,IAAK,CAAC,EAClD,QAAQ,WAAW,KAAKA,GAAQ,CAAC,CAAC,CACpC,OAASC,EAAO,CACd,QAAQ,IAAI,qBAAsBA,CAAK,CACzC,CACF,EAEO,SAASN,EAAc,CAAE,SAAAO,EAAU,MAAAC,CAAM,EAAwC,CACtFP,EAAQ,CACN,MAAO,WACP,WAAY,YACZ,iBAAkB,CAChB,WAAY,mCACZ,SAAUM,EACV,YAAaC,CACf,CACF,CAAC,CACH,CAGO,MAAMT,EAAM,IAAIU,IAAgB,CACrC,GAAI,OAAO,OAAW,IACpB,MAAO,GAEL,OAAO,KACT,OAAO,IAAI,GAAGA,CAAI,CAEtB,EAEaN,EAAO,IAAIM,IAAgB,CACtC,GAAI,OAAO,OAAW,IACpB,MAAO,GAEL,OAAO,MACT,OAAO,KAAK,GAAGA,CAAI,CAEvB,EAEaP,EAAc,CAAC,CAAE,MAAAQ,EAAO,OAAAC,CAAO,IACtCA,EAAO,SAAS,aAAa,EACxB,qBAAqBD,GAAO,MAAM,GAGvCC,EAAO,SAAS,UAAU,EACrB,uBAAyBD,GAAO,OAGrCC,IAAW,KAAOA,IAAW,YACxB,YAGF,iBAAmBD,GAAO,QAAUA,GAAO,QAAQ,CAAC,GAAG,QAAQ,cAAe,EAAE",
6
+ "names": ["track_exports", "__export", "fbq", "gaNormalClick", "gaTrack", "getGtmGroup", "gtag", "__toCommonJS", "data", "error", "position", "label", "args", "query", "asPath"]
7
+ }
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from 'clsx';
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ export declare function noop(): any;
@@ -0,0 +1,2 @@
1
+ "use strict";var n=Object.defineProperty;var s=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var f=(o,r)=>{for(var e in r)n(o,e,{get:r[e],enumerable:!0})},i=(o,r,e,p)=>{if(r&&typeof r=="object"||typeof r=="function")for(let t of u(r))!c.call(o,t)&&t!==e&&n(o,t,{get:()=>r[t],enumerable:!(p=s(r,t))||p.enumerable});return o};var m=o=>i(n({},"__esModule",{value:!0}),o);var C={};f(C,{cn:()=>x,noop:()=>y});module.exports=m(C);var a=require("clsx"),l=require("tailwind-merge");function x(...o){return(0,l.twMerge)((0,a.clsx)(o))}function y(){}
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/helpers/utils.ts"],
4
+ "sourcesContent": ["import { clsx, type ClassValue } from 'clsx'\nimport { twMerge } from 'tailwind-merge'\n\nexport function cn(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs))\n}\n\nexport function noop(): any {}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,QAAAE,EAAA,SAAAC,IAAA,eAAAC,EAAAJ,GAAA,IAAAK,EAAsC,gBACtCC,EAAwB,0BAEjB,SAASJ,KAAMK,EAAsB,CAC1C,SAAO,cAAQ,QAAKA,CAAM,CAAC,CAC7B,CAEO,SAASJ,GAAY,CAAC",
6
+ "names": ["utils_exports", "__export", "cn", "noop", "__toCommonJS", "import_clsx", "import_tailwind_merge", "inputs"]
7
+ }
@@ -1,2 +1,3 @@
1
- export * from './components';
2
- export * from './templates';
1
+ export * from './components/index.js';
2
+ export * from './templates/index.js';
3
+ export * from './constants.js';
package/dist/cjs/index.js CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(r,o,p,x)=>{if(o&&typeof o=="object"||typeof o=="function")for(let m of c(o))!d.call(r,m)&&m!==p&&a(r,m,{get:()=>o[m],enumerable:!(x=b(o,m))||x.enumerable});return r},f=(r,o,p)=>(t(r,o,"default"),p&&t(p,o,"default"));var g=r=>t(a({},"__esModule",{value:!0}),r);var e={};module.exports=g(e);f(e,require("./components"),module.exports);f(e,require("./templates"),module.exports);
1
+ "use strict";var a=Object.defineProperty;var b=Object.getOwnPropertyDescriptor;var c=Object.getOwnPropertyNames;var d=Object.prototype.hasOwnProperty;var t=(f,r,p,x)=>{if(r&&typeof r=="object"||typeof r=="function")for(let m of c(r))!d.call(f,m)&&m!==p&&a(f,m,{get:()=>r[m],enumerable:!(x=b(r,m))||x.enumerable});return f},e=(f,r,p)=>(t(f,r,"default"),p&&t(p,r,"default"));var g=f=>t(a({},"__esModule",{value:!0}),f);var o={};module.exports=g(o);e(o,require("./components/index.js"),module.exports);e(o,require("./templates/index.js"),module.exports);e(o,require("./constants.js"),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'\nexport * from './templates'\n"],
5
- "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,wBAAd,gBACAE,EAAAF,EAAc,uBADd",
4
+ "sourcesContent": ["export * from './components/index.js'\nexport * from './templates/index.js'\nexport * from './constants.js'\n"],
5
+ "mappings": "iaAAA,IAAAA,EAAA,kBAAAC,EAAAD,GAAAE,EAAAF,EAAc,iCAAd,gBACAE,EAAAF,EAAc,gCADd,gBAEAE,EAAAF,EAAc,0BAFd",
6
6
  "names": ["src_exports", "__toCommonJS", "__reExport"]
7
7
  }
@@ -0,0 +1 @@
1
+ export declare function useSendEmailValidation(): import("swr/mutation").SWRMutationResponse<any, any, "send-email-validation", never>;
@@ -0,0 +1,2 @@
1
+ import a from"../../../../helpers/fetcher";import i from"swr/mutation";import{useCreditsContext as n}from"../provider";import{useHeadlessContext as r}from"@anker-in/lib";function u(){const{profile:e}=n(),{appName:t,locale:o}=r();return i("send-email-validation",()=>a({locale:o,url:"/api/multipass/account/users/send_validation_email",method:"POST",body:{email:e?.email,app:t},needRecaptcha:!0,action:"verifyAccount"}))}export{u as useSendEmailValidation};
2
+ //# sourceMappingURL=useSendEmailValidation.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/context/hooks/useSendEmailValidation.ts"],
4
+ "sourcesContent": ["import fetcher from '../../../../helpers/fetcher'\nimport useSWRMutation from 'swr/mutation'\nimport { useCreditsContext } from '../provider'\nimport { useHeadlessContext } from '@anker-in/lib'\n\nexport function useSendEmailValidation() {\n const { profile } = useCreditsContext()\n const { appName, locale } = useHeadlessContext()\n\n return useSWRMutation('send-email-validation', () =>\n fetcher({\n locale,\n url: '/api/multipass/account/users/send_validation_email',\n method: 'POST',\n body: { email: profile?.email, app: appName },\n needRecaptcha: true,\n action: 'verifyAccount',\n })\n )\n}\n"],
5
+ "mappings": "AAAA,OAAOA,MAAa,8BACpB,OAAOC,MAAoB,eAC3B,OAAS,qBAAAC,MAAyB,cAClC,OAAS,sBAAAC,MAA0B,gBAE5B,SAASC,GAAyB,CACvC,KAAM,CAAE,QAAAC,CAAQ,EAAIH,EAAkB,EAChC,CAAE,QAAAI,EAAS,OAAAC,CAAO,EAAIJ,EAAmB,EAE/C,OAAOF,EAAe,wBAAyB,IAC7CD,EAAQ,CACN,OAAAO,EACA,IAAK,qDACL,OAAQ,OACR,KAAM,CAAE,MAAOF,GAAS,MAAO,IAAKC,CAAQ,EAC5C,cAAe,GACf,OAAQ,eACV,CAAC,CACH,CACF",
6
+ "names": ["fetcher", "useSWRMutation", "useCreditsContext", "useHeadlessContext", "useSendEmailValidation", "profile", "appName", "locale"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import { SWRResponse } from 'swr';
2
+ import type { Subscription } from '../../type';
3
+ export type SubscriptionApiResponse = {
4
+ data: Subscription;
5
+ };
6
+ export type FetchSubscriptionResponse = SWRResponse<Subscription>;
7
+ export declare function useSubscriptions({ email }: {
8
+ email?: string;
9
+ }): FetchSubscriptionResponse;
@@ -0,0 +1,2 @@
1
+ import n from"swr";import r from"../../../../helpers/fetcher";import{useHeadlessContext as c}from"@anker-in/lib";function m({email:s}){const{locale:t}=c(),{data:e,...o}=n(s?["/api/multipass/account/subscriptions",s]:null,async([p,i])=>r({method:"GET",url:p,body:{email:i},action:"login",locale:t,headers:{},type:""}));return{data:e?.data,...o}}export{m as useSubscriptions};
2
+ //# sourceMappingURL=useSubscriptions.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/credits/context/hooks/useSubscriptions.ts"],
4
+ "sourcesContent": ["import useSWR, { SWRResponse } from 'swr'\nimport type { Subscription } from '../../type'\nimport fetcher from '../../../../helpers/fetcher'\nimport { useHeadlessContext } from '@anker-in/lib'\n\nexport type SubscriptionApiResponse = { data: Subscription }\nexport type FetchSubscriptionResponse = SWRResponse<Subscription>\n\nexport function useSubscriptions({ email }: { email?: string }): FetchSubscriptionResponse {\n const { locale } = useHeadlessContext()\n\n const { data, ...rest } = useSWR<SubscriptionApiResponse>(\n email ? ['/api/multipass/account/subscriptions', email] : null,\n async ([url, email]) =>\n fetcher({\n method: 'GET',\n url,\n body: {\n email,\n },\n action: 'login',\n locale,\n headers: {},\n type: '',\n })\n )\n\n return { data: data?.data, ...rest } as unknown as FetchSubscriptionResponse\n}\n"],
5
+ "mappings": "AAAA,OAAOA,MAA6B,MAEpC,OAAOC,MAAa,8BACpB,OAAS,sBAAAC,MAA0B,gBAK5B,SAASC,EAAiB,CAAE,MAAAC,CAAM,EAAkD,CACzF,KAAM,CAAE,OAAAC,CAAO,EAAIH,EAAmB,EAEhC,CAAE,KAAAI,EAAM,GAAGC,CAAK,EAAIP,EACxBI,EAAQ,CAAC,uCAAwCA,CAAK,EAAI,KAC1D,MAAO,CAACI,EAAKJ,CAAK,IAChBH,EAAQ,CACN,OAAQ,MACR,IAAAO,EACA,KAAM,CACJ,MAAAJ,CACF,EACA,OAAQ,QACR,OAAAC,EACA,QAAS,CAAC,EACV,KAAM,EACR,CAAC,CACL,EAEA,MAAO,CAAE,KAAMC,GAAM,KAAM,GAAGC,CAAK,CACrC",
6
+ "names": ["useSWR", "fetcher", "useHeadlessContext", "useSubscriptions", "email", "locale", "data", "rest", "url"]
7
+ }
@@ -23,3 +23,7 @@ export declare function formatVariantPrice({ amount, baseAmount, currencyCode, l
23
23
  basePrice: string | undefined;
24
24
  discount: string | null;
25
25
  };
26
+ /**
27
+ * 提取 variant id,去掉 gid://shopify/ProductVariant/ 前缀
28
+ */
29
+ export declare function extractVariantId(id: string | number | undefined): string | null;
@@ -1,2 +1,2 @@
1
- import g from"js-cookie";import{PRICE_SYMBOL as a}from"./const";function k(e=""){let n=!1;const r=g.get("alpcEU");return r===void 0||r===""?["de","eu-de","eu","eu-en","uk","fr","fra"].includes(e)&&(n=!0):Number(r)&&(n=!0),n?"/api/multipass/alpc-eu":"/api/multipass/alpc"}function C(e=0){return typeof Intl>"u"?e:new Intl.NumberFormat().format(e)}const E=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),c=e=>({us:"en-us",uk:"en-gb",ca:"en-ca",au:"en-au",nz:"en-nz",eu:"en-eu",pl:"pl-pl",fr:"fr-fr",de:"de-de",vn:"vi-vn",sg:"en-sg","ae-en":"en-ae",plus:"en-us",cl:"es-cl",es:"es-es",se:"en-se",dk:"en-dk",is:"en-is",no:"en-no",fi:"en-fi"})[e]||"";function f({amount:e,currencyCode:n,locale:r,maximumFractionDigits:t,minimumFractionDigits:u,removeTrailingZeros:o=!1}){let i=new Intl.NumberFormat(c(r)||r,{style:"currency",currency:n||"USD",minimumFractionDigits:t===0?0:u,maximumFractionDigits:t}).format(e);return["eu-de","eu-en","de","eu"].includes(r)&&(i=i?.toString()?.replace(/[\s]/g,"")),o&&(i=i.replace(/(\.\d*?[1-9])0+\b/,"$1").replace(/\.0+\b/,"").replace(/(\,\d*?[1-9])0+\b/,"$1").replace(/\,0+\b/,"")),i}function I({amount:e,baseAmount:n,currencyCode:r,locale:t,maximumFractionDigits:u,minimumFractionDigits:o,removeTrailingZeros:s}){if(typeof Intl>"u")return{price:`${a[t]}${e}`,basePrice:`${a[t]}${n}`,discount:`${a[t]}${n-e||0}`};const i=n>e,m=new Intl.NumberFormat(c(t),{style:"percent"}),p=i?m.format((n-e)/n):null,l=f({amount:e,currencyCode:r,locale:t,removeTrailingZeros:s}),d=i?f({amount:n,currencyCode:r,locale:t,maximumFractionDigits:u,minimumFractionDigits:o,removeTrailingZeros:s}):void 0;return{price:l,basePrice:d,discount:p}}export{E as emailValidate,f as formatPrice,I as formatVariantPrice,k as getAlpcPath,c as languageTerritory,C as numberFormat};
1
+ import g from"js-cookie";import{PRICE_SYMBOL as a}from"./const";function I(e=""){let n=!1;const r=g.get("alpcEU");return r===void 0||r===""?["de","eu-de","eu","eu-en","uk","fr","fra"].includes(e)&&(n=!0):Number(r)&&(n=!0),n?"/api/multipass/alpc-eu":"/api/multipass/alpc"}function P(e=0){return typeof Intl>"u"?e:new Intl.NumberFormat().format(e)}const k=e=>/^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(e),c=e=>({us:"en-us",uk:"en-gb",ca:"en-ca",au:"en-au",nz:"en-nz",eu:"en-eu",pl:"pl-pl",fr:"fr-fr",de:"de-de",vn:"vi-vn",sg:"en-sg","ae-en":"en-ae",plus:"en-us",cl:"es-cl",es:"es-es",se:"en-se",dk:"en-dk",is:"en-is",no:"en-no",fi:"en-fi"})[e]||"";function f({amount:e,currencyCode:n,locale:r,maximumFractionDigits:t,minimumFractionDigits:u,removeTrailingZeros:o=!1}){let i=new Intl.NumberFormat(c(r)||r,{style:"currency",currency:n||"USD",minimumFractionDigits:t===0?0:u,maximumFractionDigits:t}).format(e);return["eu-de","eu-en","de","eu"].includes(r)&&(i=i?.toString()?.replace(/[\s]/g,"")),o&&(i=i.replace(/(\.\d*?[1-9])0+\b/,"$1").replace(/\.0+\b/,"").replace(/(\,\d*?[1-9])0+\b/,"$1").replace(/\,0+\b/,"")),i}function x({amount:e,baseAmount:n,currencyCode:r,locale:t,maximumFractionDigits:u,minimumFractionDigits:o,removeTrailingZeros:s}){if(typeof Intl>"u")return{price:`${a[t]}${e}`,basePrice:`${a[t]}${n}`,discount:`${a[t]}${n-e||0}`};const i=n>e,m=new Intl.NumberFormat(c(t),{style:"percent"}),p=i?m.format((n-e)/n):null,l=f({amount:e,currencyCode:r,locale:t,removeTrailingZeros:s}),d=i?f({amount:n,currencyCode:r,locale:t,maximumFractionDigits:u,minimumFractionDigits:o,removeTrailingZeros:s}):void 0;return{price:l,basePrice:d,discount:p}}function C(e){return e?(typeof e=="number"?e.toString():e).replace("gid://shopify/ProductVariant/",""):null}export{k as emailValidate,C as extractVariantId,f as formatPrice,x as formatVariantPrice,I as getAlpcPath,c as languageTerritory,P as numberFormat};
2
2
  //# sourceMappingURL=utils.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/context/utils.ts"],
4
- "sourcesContent": ["import Cookies from 'js-cookie'\nimport { PRICE_SYMBOL } from './const'\n\nexport function getAlpcPath(locale = '') {\n let isEU = false\n const alpcEUCookie = Cookies.get('alpcEU')\n if (alpcEUCookie === undefined || alpcEUCookie === '') {\n if (['de', 'eu-de', 'eu', 'eu-en', 'uk', 'fr', 'fra'].includes(locale)) {\n isEU = true\n }\n } else {\n let alpcEU = Number(alpcEUCookie)\n if (alpcEU) {\n isEU = true\n }\n }\n\n if (isEU) {\n return '/api/multipass/alpc-eu'\n }\n\n return '/api/multipass/alpc'\n}\n\nexport function numberFormat(num: number = 0) {\n if (typeof Intl === 'undefined') {\n return num\n }\n\n return new Intl.NumberFormat().format(num)\n}\n\nexport const emailValidate = (email: any) => {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n}\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-us',\n uk: 'en-gb',\n ca: 'en-ca',\n au: 'en-au',\n nz: 'en-nz',\n eu: 'en-eu',\n pl: 'pl-pl',\n fr: 'fr-fr',\n de: 'de-de',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'en-ae',\n plus: 'en-us',\n cl: 'es-cl',\n es: 'es-es',\n // Nordic countries\n se: 'en-se',\n dk: 'en-dk',\n is: 'en-is',\n no: 'en-no',\n fi: 'en-fi',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n const formatCurrency = new Intl.NumberFormat(languageTerritory(locale) || locale, {\n style: 'currency',\n currency: currencyCode || 'USD',\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency.format(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace(/[\\s]/g, '')\n }\n\n if (removeTrailingZeros) {\n // Adjust the regex to match comma as decimal separator\n formattedValue = formattedValue\n .replace(/(\\.\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\.0+\\b/, '')\n .replace(/(\\,\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\,0+\\b/, '')\n }\n\n return formattedValue\n}\n\nexport function formatVariantPrice({\n amount,\n baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n}: {\n baseAmount: number\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n if (typeof Intl === 'undefined') {\n return {\n price: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${amount}`,\n basePrice: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount}`,\n discount: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount - amount || 0}`,\n }\n }\n\n const hasDiscount = baseAmount > amount\n const formatDiscount = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'percent',\n })\n const discount = hasDiscount ? formatDiscount.format((baseAmount - amount) / baseAmount) : null\n\n const price = formatPrice({ amount, currencyCode, locale, removeTrailingZeros })\n const basePrice = hasDiscount\n ? formatPrice({\n amount: baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n })\n : undefined\n\n return { price, basePrice, discount }\n}\n"],
5
- "mappings": "AAAA,OAAOA,MAAa,YACpB,OAAS,gBAAAC,MAAoB,UAEtB,SAASC,EAAYC,EAAS,GAAI,CACvC,IAAIC,EAAO,GACX,MAAMC,EAAeL,EAAQ,IAAI,QAAQ,EAYzC,OAXIK,IAAiB,QAAaA,IAAiB,GAC7C,CAAC,KAAM,QAAS,KAAM,QAAS,KAAM,KAAM,KAAK,EAAE,SAASF,CAAM,IACnEC,EAAO,IAGI,OAAOC,CAAY,IAE9BD,EAAO,IAIPA,EACK,yBAGF,qBACT,CAEO,SAASE,EAAaC,EAAc,EAAG,CAC5C,OAAI,OAAO,KAAS,IACXA,EAGF,IAAI,KAAK,aAAa,EAAE,OAAOA,CAAG,CAC3C,CAEO,MAAMC,EAAiBC,GACrB,yJAAyJ,KAC9JA,CACF,EAGWC,EAAqBP,IAE/B,CACC,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,KAAM,QACN,GAAI,QACJ,GAAI,QAEJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACN,GAAGA,CAAM,GAAK,GAET,SAASQ,EAAY,CAC1B,OAAAC,EACA,aAAAC,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,EAAsB,EACxB,EAOG,CAQD,IAAIC,EAPmB,IAAI,KAAK,aAAaP,EAAkBP,CAAM,GAAKA,EAAQ,CAChF,MAAO,WACP,SAAUU,GAAgB,MAC1B,sBAAuBC,IAA0B,EAAI,EAAIC,EACzD,sBAAAD,CACF,CAAC,EAEmC,OAAOF,CAAM,EAEjD,MAAI,CAAC,QAAS,QAAS,KAAM,IAAI,EAAE,SAAST,CAAM,IAChDc,EAAiBA,GAAgB,SAAS,GAAG,QAAQ,QAAS,EAAE,GAG9DD,IAEFC,EAAiBA,EACd,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,EACpB,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,GAGlBA,CACT,CAEO,SAASC,EAAmB,CACjC,OAAAN,EACA,WAAAO,EACA,aAAAN,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,CACF,EAQG,CACD,GAAI,OAAO,KAAS,IAClB,MAAO,CACL,MAAO,GAAGf,EAAaE,CAAmC,CAAC,GAAGS,CAAM,GACpE,UAAW,GAAGX,EAAaE,CAAmC,CAAC,GAAGgB,CAAU,GAC5E,SAAU,GAAGlB,EAAaE,CAAmC,CAAC,GAAGgB,EAAaP,GAAU,CAAC,EAC3F,EAGF,MAAMQ,EAAcD,EAAaP,EAC3BS,EAAiB,IAAI,KAAK,aAAaX,EAAkBP,CAAM,EAAG,CACtE,MAAO,SACT,CAAC,EACKmB,EAAWF,EAAcC,EAAe,QAAQF,EAAaP,GAAUO,CAAU,EAAI,KAErFI,EAAQZ,EAAY,CAAE,OAAAC,EAAQ,aAAAC,EAAc,OAAAV,EAAQ,oBAAAa,CAAoB,CAAC,EACzEQ,EAAYJ,EACdT,EAAY,CACV,OAAQQ,EACR,aAAAN,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,CACF,CAAC,EACD,OAEJ,MAAO,CAAE,MAAAO,EAAO,UAAAC,EAAW,SAAAF,CAAS,CACtC",
6
- "names": ["Cookies", "PRICE_SYMBOL", "getAlpcPath", "locale", "isEU", "alpcEUCookie", "numberFormat", "num", "emailValidate", "email", "languageTerritory", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "formattedValue", "formatVariantPrice", "baseAmount", "hasDiscount", "formatDiscount", "discount", "price", "basePrice"]
4
+ "sourcesContent": ["import Cookies from 'js-cookie'\nimport { PRICE_SYMBOL } from './const'\n\nexport function getAlpcPath(locale = '') {\n let isEU = false\n const alpcEUCookie = Cookies.get('alpcEU')\n if (alpcEUCookie === undefined || alpcEUCookie === '') {\n if (['de', 'eu-de', 'eu', 'eu-en', 'uk', 'fr', 'fra'].includes(locale)) {\n isEU = true\n }\n } else {\n let alpcEU = Number(alpcEUCookie)\n if (alpcEU) {\n isEU = true\n }\n }\n\n if (isEU) {\n return '/api/multipass/alpc-eu'\n }\n\n return '/api/multipass/alpc'\n}\n\nexport function numberFormat(num: number = 0) {\n if (typeof Intl === 'undefined') {\n return num\n }\n\n return new Intl.NumberFormat().format(num)\n}\n\nexport const emailValidate = (email: any) => {\n return /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n}\n\nexport const languageTerritory = (locale: string) =>\n // https://unicode-org.github.io/cldr-staging/charts/37/supplemental/language_territory_information.html\n ({\n us: 'en-us',\n uk: 'en-gb',\n ca: 'en-ca',\n au: 'en-au',\n nz: 'en-nz',\n eu: 'en-eu',\n pl: 'pl-pl',\n fr: 'fr-fr',\n de: 'de-de',\n vn: 'vi-vn',\n sg: 'en-sg',\n 'ae-en': 'en-ae',\n plus: 'en-us',\n cl: 'es-cl',\n es: 'es-es',\n // Nordic countries\n se: 'en-se',\n dk: 'en-dk',\n is: 'en-is',\n no: 'en-no',\n fi: 'en-fi',\n })[locale] || ''\n\nexport function formatPrice({\n amount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros = false,\n}: {\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n const formatCurrency = new Intl.NumberFormat(languageTerritory(locale) || locale, {\n style: 'currency',\n currency: currencyCode || 'USD',\n minimumFractionDigits: maximumFractionDigits === 0 ? 0 : minimumFractionDigits,\n maximumFractionDigits,\n })\n\n let formattedValue = formatCurrency.format(amount)\n\n if (['eu-de', 'eu-en', 'de', 'eu'].includes(locale)) {\n formattedValue = formattedValue?.toString()?.replace(/[\\s]/g, '')\n }\n\n if (removeTrailingZeros) {\n // Adjust the regex to match comma as decimal separator\n formattedValue = formattedValue\n .replace(/(\\.\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\.0+\\b/, '')\n .replace(/(\\,\\d*?[1-9])0+\\b/, '$1')\n .replace(/\\,0+\\b/, '')\n }\n\n return formattedValue\n}\n\nexport function formatVariantPrice({\n amount,\n baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n}: {\n baseAmount: number\n amount: number\n currencyCode: string\n locale: string\n maximumFractionDigits?: number\n minimumFractionDigits?: number\n removeTrailingZeros?: boolean\n}) {\n if (typeof Intl === 'undefined') {\n return {\n price: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${amount}`,\n basePrice: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount}`,\n discount: `${PRICE_SYMBOL[locale as keyof typeof PRICE_SYMBOL]}${baseAmount - amount || 0}`,\n }\n }\n\n const hasDiscount = baseAmount > amount\n const formatDiscount = new Intl.NumberFormat(languageTerritory(locale), {\n style: 'percent',\n })\n const discount = hasDiscount ? formatDiscount.format((baseAmount - amount) / baseAmount) : null\n\n const price = formatPrice({ amount, currencyCode, locale, removeTrailingZeros })\n const basePrice = hasDiscount\n ? formatPrice({\n amount: baseAmount,\n currencyCode,\n locale,\n maximumFractionDigits,\n minimumFractionDigits,\n removeTrailingZeros,\n })\n : undefined\n\n return { price, basePrice, discount }\n}\n\n/**\n * \u63D0\u53D6 variant id\uFF0C\u53BB\u6389 gid://shopify/ProductVariant/ \u524D\u7F00\n */\nexport function extractVariantId(id: string | number | undefined): string | null {\n if (!id) return null\n const idStr = typeof id === 'number' ? id.toString() : id\n return idStr.replace('gid://shopify/ProductVariant/', '')\n}\n"],
5
+ "mappings": "AAAA,OAAOA,MAAa,YACpB,OAAS,gBAAAC,MAAoB,UAEtB,SAASC,EAAYC,EAAS,GAAI,CACvC,IAAIC,EAAO,GACX,MAAMC,EAAeL,EAAQ,IAAI,QAAQ,EAYzC,OAXIK,IAAiB,QAAaA,IAAiB,GAC7C,CAAC,KAAM,QAAS,KAAM,QAAS,KAAM,KAAM,KAAK,EAAE,SAASF,CAAM,IACnEC,EAAO,IAGI,OAAOC,CAAY,IAE9BD,EAAO,IAIPA,EACK,yBAGF,qBACT,CAEO,SAASE,EAAaC,EAAc,EAAG,CAC5C,OAAI,OAAO,KAAS,IACXA,EAGF,IAAI,KAAK,aAAa,EAAE,OAAOA,CAAG,CAC3C,CAEO,MAAMC,EAAiBC,GACrB,yJAAyJ,KAC9JA,CACF,EAGWC,EAAqBP,IAE/B,CACC,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,QAAS,QACT,KAAM,QACN,GAAI,QACJ,GAAI,QAEJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,QACJ,GAAI,OACN,GAAGA,CAAM,GAAK,GAET,SAASQ,EAAY,CAC1B,OAAAC,EACA,aAAAC,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,EAAsB,EACxB,EAOG,CAQD,IAAIC,EAPmB,IAAI,KAAK,aAAaP,EAAkBP,CAAM,GAAKA,EAAQ,CAChF,MAAO,WACP,SAAUU,GAAgB,MAC1B,sBAAuBC,IAA0B,EAAI,EAAIC,EACzD,sBAAAD,CACF,CAAC,EAEmC,OAAOF,CAAM,EAEjD,MAAI,CAAC,QAAS,QAAS,KAAM,IAAI,EAAE,SAAST,CAAM,IAChDc,EAAiBA,GAAgB,SAAS,GAAG,QAAQ,QAAS,EAAE,GAG9DD,IAEFC,EAAiBA,EACd,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,EACpB,QAAQ,oBAAqB,IAAI,EACjC,QAAQ,SAAU,EAAE,GAGlBA,CACT,CAEO,SAASC,EAAmB,CACjC,OAAAN,EACA,WAAAO,EACA,aAAAN,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,CACF,EAQG,CACD,GAAI,OAAO,KAAS,IAClB,MAAO,CACL,MAAO,GAAGf,EAAaE,CAAmC,CAAC,GAAGS,CAAM,GACpE,UAAW,GAAGX,EAAaE,CAAmC,CAAC,GAAGgB,CAAU,GAC5E,SAAU,GAAGlB,EAAaE,CAAmC,CAAC,GAAGgB,EAAaP,GAAU,CAAC,EAC3F,EAGF,MAAMQ,EAAcD,EAAaP,EAC3BS,EAAiB,IAAI,KAAK,aAAaX,EAAkBP,CAAM,EAAG,CACtE,MAAO,SACT,CAAC,EACKmB,EAAWF,EAAcC,EAAe,QAAQF,EAAaP,GAAUO,CAAU,EAAI,KAErFI,EAAQZ,EAAY,CAAE,OAAAC,EAAQ,aAAAC,EAAc,OAAAV,EAAQ,oBAAAa,CAAoB,CAAC,EACzEQ,EAAYJ,EACdT,EAAY,CACV,OAAQQ,EACR,aAAAN,EACA,OAAAV,EACA,sBAAAW,EACA,sBAAAC,EACA,oBAAAC,CACF,CAAC,EACD,OAEJ,MAAO,CAAE,MAAAO,EAAO,UAAAC,EAAW,SAAAF,CAAS,CACtC,CAKO,SAASG,EAAiBC,EAAgD,CAC/E,OAAKA,GACS,OAAOA,GAAO,SAAWA,EAAG,SAAS,EAAIA,GAC1C,QAAQ,gCAAiC,EAAE,EAFxC,IAGlB",
6
+ "names": ["Cookies", "PRICE_SYMBOL", "getAlpcPath", "locale", "isEU", "alpcEUCookie", "numberFormat", "num", "emailValidate", "email", "languageTerritory", "formatPrice", "amount", "currencyCode", "maximumFractionDigits", "minimumFractionDigits", "removeTrailingZeros", "formattedValue", "formatVariantPrice", "baseAmount", "hasDiscount", "formatDiscount", "discount", "price", "basePrice", "extractVariantId", "id"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Fragment as A,jsx as e,jsxs as i}from"react/jsx-runtime";import{Button as y,Container as P,Heading as b,Picture as z,Text as _}from"@anker-in/headless-ui";import{ChevronDownIcon as E,ChevronUpIcon as H}from"@heroicons/react/24/outline";import{motion as j}from"framer-motion";import{useMemo as q,useState as d}from"react";import{TaskType as g}from"./type";import{useActions as V}from"../creditsWaysToGetCredits/useActions";import{useCreditsContext as G}from"../context/provider";import{classNames as h,useHeadlessContext as J,ROUNDED_BRANDS as K}from"@anker-in/lib";import{useRegistration as Q}from"../../registration";import{CreditsUploadReceiptModal as W}from"../modal/creditsUploadReceiptModal";import{CreditsSubscribeModal as X}from"../modal/subscribeModal";const re=({copy:s,classNames:Y,id:v})=>{const[l,k]=d(!1),{profile:M}=G(),{authCodeActivate:R}=Q(),{brand:L}=J(),p=K.includes(L),m=!!M,[T,C]=d(!1),[U,x]=d(!1),[F,O]=d(!1),[N,B]=d(!1),{actions:u}=V({copy:s,subscribe:{openSubscribePopup:()=>x(!0),isSuccess:F},uploadReceipt:{openUploadReceiptPopup:()=>C(!0),isSuccess:N}}),w=q(()=>{const t=s.list.map(n=>{if(!u[n.id])return;const{finished:o,notLogin:S,notFinished:f,completed:D}=u[n.id];let r="",c,I;return m?o?(r=D.buttonLabel,c=void 0):(r=f.buttonLabel,c=f.handleClick,I=f.link):(r=S.buttonLabel,c=S.handleClick),{...n,buttonLabel:r,handleClick:c,finished:o,link:I}}).filter(Boolean);return m?t.sort((n,o)=>n?.finished&&!o?.finished?1:!n?.finished&&o?.finished?-1:0):t},[u,s.list,m]),a=w.length>3;return i(P,{id:v,className:"[&>div]:l:!px-0 bg-[#F5F5F7]",children:[e(b,{as:"h2",size:"4",html:s.title,className:"md:px-[16px]"}),i("div",{className:h("mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden",p?"rounded-[8px]":"",!p&&"l:rounded-none"),style:{background:"linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)"},children:[e("div",{className:"absolute inset-0 pointer-events-none -z-10",style:{background:"radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)"}}),i("div",{className:"flex items-center justify-between h-[560px] md:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start",children:[i("div",{className:"flex flex-col gap-[8px]",children:[e(b,{as:"h3",size:4,html:s?.subtitle,className:"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]"}),e("div",{className:"flex items-center gap-[8px]",children:e("p",{className:"text-[48px] font-bold tracking-[-1.92px] leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]",dangerouslySetInnerHTML:{__html:s.equalCredits}})})]}),s.mainImage?.url&&e(z,{className:"w-full max-w-[50%] md:max-w-full md:mt-[24px] l:max-w-full l:mt-[24px]",source:s.mainImage.url})]}),i("div",{className:"relative",children:[i(j.div,{className:h("grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto"),initial:{height:a?512:"auto"},animate:{height:l||!a?"auto":512},transition:{duration:.3},onAnimationComplete:()=>{if(!l&&a&&window.screen.width<768){const t=document.getElementById(v||"ankersolix-task");t&&t.scrollIntoView({behavior:"smooth",block:"end"})}},children:[w.map(t=>i("div",{className:h("flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] md:p-[16px] l:p-[24px]",""),children:[i("div",{children:[e(b,{as:"h4",html:t.title,size:2,className:"text-[24px] font-bold text-[#080a0f] tracking-[-0.96px] leading-[1.2] text-pretty md:text-[18px] l:text-[20px]"}),i("div",{className:"mt-[8px] flex items-center gap-[4px]",children:[e(z,{className:"size-[24px] [&_path]:size-full",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450"}),e(_,{as:"p",html:t.credits,size:2,className:"text-[18px] font-bold text-[#080a0f] tracking-[-0.36px] leading-[1.4] md:text-[16px]"})]})]}),t.handleClick&&!(t.id===g.UploadReceipt&&N)&&!(t.id===g.Activate&&R.isActivateSuccess)&&!(t.id===g.Subscribe&&F)?e(y,{as:t.link?"a":"button",...t.link&&{href:t.link},...t.handleClick&&{onClick:t.handleClick},variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",children:t.buttonLabel}):e(y,{variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",disabled:!0,children:t.buttonLabel})]},t.id)),!l&&a&&e("div",{className:"absolute inset-0 pointer-events-none min-md:hidden",style:{background:"linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)"}})]}),a&&e(A,{children:l?e("button",{className:"mx-auto mt-[12px] block w-fit min-md:hidden",onClick:()=>{k(!1)},children:e(H,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})}):e(A,{children:e("div",{className:"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden",children:e("button",{className:"w-fit",onClick:()=>k(!l),children:e(E,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})})})})})]})]}),s.receipt&&e(W,{isOpen:T,onClose:()=>{C(!1)},copy:s.receipt,onSuccess:()=>{B(!0)}}),s.subscribe&&e(X,{copy:s.subscribe,onSuccess:()=>{O(!0),setTimeout(()=>{x(!1)},3e3)},isOpen:U,onClose:()=>{x(!1)}})]})};export{re as CreditsAnkersolixTask};
1
+ import{Fragment as M,jsx as e,jsxs as i}from"react/jsx-runtime";import{Button as I,Container as j,Heading as y,Picture as z,Text as A}from"@anker-in/headless-ui";import{ChevronDownIcon as _,ChevronUpIcon as E}from"@heroicons/react/24/outline";import{motion as H}from"framer-motion";import{useMemo as q,useState as d}from"react";import{TaskType as b}from"./type";import{useActions as V}from"../creditsWaysToGetCredits/useActions";import{useCreditsContext as G}from"../context/provider";import{classNames as h,useHeadlessContext as J}from"@anker-in/lib";import{useRegistration as K}from"../../registration";import{CreditsUploadReceiptModal as Q}from"../modal/creditsUploadReceiptModal";import{CreditsSubscribeModal as W}from"../modal/subscribeModal";import{ROUNDED_BRANDS as X}from"../../../constants";const ce=({copy:s,classNames:Y,id:g})=>{const[l,v]=d(!1),{profile:R}=G(),{authCodeActivate:L}=K(),{brand:T}=J(),p=X.includes(T),x=!!R,[U,k]=d(!1),[O,u]=d(!1),[C,B]=d(!1),[F,D]=d(!1),{actions:m}=V({copy:s,subscribe:{openSubscribePopup:()=>u(!0),isSuccess:C},uploadReceipt:{openUploadReceiptPopup:()=>k(!0),isSuccess:F}}),N=q(()=>{const t=s.list.map(n=>{if(!m[n.id])return;const{finished:a,notLogin:w,notFinished:f,completed:P}=m[n.id];let r="",c,S;return x?a?(r=P.buttonLabel,c=void 0):(r=f.buttonLabel,c=f.handleClick,S=f.link):(r=w.buttonLabel,c=w.handleClick),{...n,buttonLabel:r,handleClick:c,finished:a,link:S}}).filter(Boolean);return x?t.sort((n,a)=>n?.finished&&!a?.finished?1:!n?.finished&&a?.finished?-1:0):t},[m,s.list,x]),o=N.length>3;return i(j,{id:g,className:"bg-[#F5F5F7]",children:[e(y,{as:"h2",size:"4",html:s.title}),i("div",{className:h("mt-[24px] p-[32px] md-l:p-[32px] md:p-[16px] relative overflow-hidden",p?"rounded-[8px]":"",!p&&"l:rounded-none"),style:{background:"linear-gradient(180deg, rgba(255, 241, 214, 0) 39.51%, #F4CA81 119.53%)"},children:[e("div",{className:"absolute inset-0 pointer-events-none -z-10",style:{background:"radial-gradient(ellipse 130% 205% at 45% -20%, #FFF6EA 0%, #FFFFFF 73%, #FFF1D6 100%)"}}),i("div",{className:"flex items-center justify-between xl-xxl:h-[448px] l-xl:h-[336px] h-[560px] l:h-auto md:flex-col md:items-start l:h-auto l:mb-[16px] l:flex-col-reverse l:items-start",children:[i("div",{className:"flex flex-col gap-[8px] l:mt-[8px]",children:[e(y,{as:"h3",size:4,html:s?.subtitle,className:"text-[32px] font-bold text-[#080a0f] tracking-[-1.28px] leading-[1.2] xl:text-[24px]"}),e("div",{className:"flex items-center gap-[8px]",children:e("p",{className:"text-[48px] font-bold tracking-[-1.92px] leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]",dangerouslySetInnerHTML:{__html:s.equalCredits}})})]}),s.mainImage?.url&&e(z,{className:"h-full object-contain l:mx-auto md:h-auto md:w-full md-l:h-[302px]",imgClassName:"!h-full !object-contain",source:s.mainImage.url})]}),i("div",{className:"relative mt-[24px]",children:[i(H.div,{className:h("grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto"),initial:{height:o?512:"auto"},animate:{height:l||!o?"auto":512},transition:{duration:.3},onAnimationComplete:()=>{if(!l&&o&&window.screen.width<768){const t=document.getElementById(g||"ankersolix-task");t&&t.scrollIntoView({behavior:"smooth",block:"end"})}},children:[N.map(t=>i("div",{className:h("flex min-h-[241px] xl-xxl:min-h-[192px] l:min-h-[160px] l-xl:min-h-[170px] flex-col justify-between bg-white p-[32px] xl:p-[16px]",p?"rounded-[16px]":""),children:[i("div",{children:[e(A,{as:"p",html:t.title,size:2,className:"text-pretty text-[24px] font-bold xxl:text-[20px]"}),i("div",{className:"mt-[8px] l:mt-[4px] flex items-center",children:[e(z,{className:"size-[24px] xxl:size-[18px] [&_path]:size-full",source:"https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450"}),e(A,{as:"p",html:t.credits,size:2,className:"ml-[4px] mt-[6px] text-[18px] xxl:text-[14px]"})]})]}),t.handleClick&&!(t.id===b.UploadReceipt&&F)&&!(t.id===b.Activate&&L.isActivateSuccess)&&!(t.id===b.Subscribe&&C)?e(I,{as:t.link?"a":"button",...t.link&&{href:t.link},...t.handleClick&&{onClick:t.handleClick},variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",children:t.buttonLabel}):e(I,{variant:"primary",size:"lg",className:"mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]",disabled:!0,children:t.buttonLabel})]},t.id)),!l&&o&&e("div",{className:"absolute inset-0 pointer-events-none min-md:hidden",style:{background:"linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)"}})]}),o&&e(M,{children:l?e("button",{className:"mx-auto mt-[12px] block w-fit min-md:hidden",onClick:()=>{v(!1)},children:e(E,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})}):e(M,{children:e("div",{className:"absolute bottom-0 flex w-full translate-y-1/2 justify-center min-md:hidden",children:e("button",{className:"w-fit",onClick:()=>v(!l),children:e(_,{className:"size-[40px] rounded-full bg-[#FFFFFF33] p-[8px]"})})})})})]})]}),s.receipt&&e(Q,{isOpen:U,onClose:()=>{k(!1)},copy:s.receipt,onSuccess:()=>{D(!0)}}),s.subscribe&&e(W,{copy:s.subscribe,onSuccess:()=>{B(!0),setTimeout(()=>{u(!1)},3e3)},isOpen:O,onClose:()=>{u(!1)}})]})};export{ce as CreditsAnkersolixTask};
2
2
  //# sourceMappingURL=CreditsAnkersolixTask.js.map