@anker-in/campaign-ui 0.5.0-beta.3 → 0.5.0-beta.4

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 (227) hide show
  1. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js +1 -1
  2. package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +3 -3
  3. package/dist/cjs/components/credits/context/hooks/useCountries.js +1 -1
  4. package/dist/cjs/components/credits/context/hooks/useCountries.js.map +3 -3
  5. package/dist/cjs/components/credits/context/hooks/useSubscribed.js.map +2 -2
  6. package/dist/cjs/components/index.d.ts +3 -2
  7. package/dist/cjs/components/index.js +1 -1
  8. package/dist/cjs/components/index.js.map +2 -2
  9. package/dist/cjs/components/memberPopup/MemberPopup.d.ts +9 -0
  10. package/dist/cjs/components/memberPopup/MemberPopup.js +2 -0
  11. package/dist/cjs/components/memberPopup/MemberPopup.js.map +7 -0
  12. package/dist/cjs/components/memberPopup/context/provider.d.ts +11 -0
  13. package/dist/cjs/components/memberPopup/context/provider.js +2 -0
  14. package/dist/cjs/components/memberPopup/context/provider.js.map +7 -0
  15. package/dist/cjs/components/memberPopup/context/viewStack.d.ts +12 -0
  16. package/dist/cjs/components/memberPopup/context/viewStack.js +2 -0
  17. package/dist/cjs/components/memberPopup/context/viewStack.js.map +7 -0
  18. package/dist/cjs/components/memberPopup/icons.d.ts +27 -0
  19. package/dist/cjs/components/memberPopup/icons.js +2 -0
  20. package/dist/cjs/components/memberPopup/icons.js.map +7 -0
  21. package/dist/cjs/components/memberPopup/index.d.ts +4 -0
  22. package/dist/cjs/components/memberPopup/index.js +2 -0
  23. package/dist/cjs/components/memberPopup/index.js.map +7 -0
  24. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.d.ts +10 -0
  25. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.js +2 -0
  26. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.js.map +7 -0
  27. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.d.ts +7 -0
  28. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js +2 -0
  29. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js.map +7 -0
  30. package/dist/cjs/components/memberPopup/panels/Activity/index.d.ts +7 -0
  31. package/dist/cjs/components/memberPopup/panels/Activity/index.js +2 -0
  32. package/dist/cjs/components/memberPopup/panels/Activity/index.js.map +7 -0
  33. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.d.ts +19 -0
  34. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js +2 -0
  35. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js.map +7 -0
  36. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.d.ts +20 -0
  37. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js +2 -0
  38. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js.map +7 -0
  39. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.d.ts +12 -0
  40. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js +2 -0
  41. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js.map +7 -0
  42. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.d.ts +17 -0
  43. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js +2 -0
  44. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js.map +7 -0
  45. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.d.ts +8 -0
  46. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js +2 -0
  47. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js.map +7 -0
  48. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.d.ts +7 -0
  49. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js +2 -0
  50. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js.map +7 -0
  51. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.d.ts +8 -0
  52. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js +2 -0
  53. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +7 -0
  54. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.d.ts +10 -0
  55. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js +2 -0
  56. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js.map +7 -0
  57. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.d.ts +9 -0
  58. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +2 -0
  59. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +7 -0
  60. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.d.ts +9 -0
  61. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +2 -0
  62. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +7 -0
  63. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.d.ts +10 -0
  64. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js +2 -0
  65. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +7 -0
  66. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.d.ts +9 -0
  67. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.js +2 -0
  68. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.js.map +7 -0
  69. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.d.ts +18 -0
  70. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.js +2 -0
  71. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.js.map +7 -0
  72. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.d.ts +9 -0
  73. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js +2 -0
  74. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js.map +7 -0
  75. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +17 -0
  76. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +2 -0
  77. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +7 -0
  78. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.d.ts +13 -0
  79. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js +2 -0
  80. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js.map +7 -0
  81. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.d.ts +13 -0
  82. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js +2 -0
  83. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js.map +7 -0
  84. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.d.ts +12 -0
  85. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +2 -0
  86. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +7 -0
  87. package/dist/cjs/components/memberPopup/panels/Referral/index.d.ts +7 -0
  88. package/dist/cjs/components/memberPopup/panels/Referral/index.js +2 -0
  89. package/dist/cjs/components/memberPopup/panels/Referral/index.js.map +7 -0
  90. package/dist/cjs/components/memberPopup/type.d.ts +216 -0
  91. package/dist/cjs/components/memberPopup/type.js +2 -0
  92. package/dist/cjs/components/memberPopup/type.js.map +7 -0
  93. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js +1 -1
  94. package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +3 -3
  95. package/dist/esm/components/credits/context/hooks/useCountries.js +1 -1
  96. package/dist/esm/components/credits/context/hooks/useCountries.js.map +3 -3
  97. package/dist/esm/components/credits/context/hooks/useSubscribed.js.map +2 -2
  98. package/dist/esm/components/index.d.ts +3 -2
  99. package/dist/esm/components/index.js +1 -1
  100. package/dist/esm/components/index.js.map +2 -2
  101. package/dist/esm/components/memberPopup/MemberPopup.d.ts +9 -0
  102. package/dist/esm/components/memberPopup/MemberPopup.js +2 -0
  103. package/dist/esm/components/memberPopup/MemberPopup.js.map +7 -0
  104. package/dist/esm/components/memberPopup/context/provider.d.ts +11 -0
  105. package/dist/esm/components/memberPopup/context/provider.js +2 -0
  106. package/dist/esm/components/memberPopup/context/provider.js.map +7 -0
  107. package/dist/esm/components/memberPopup/context/viewStack.d.ts +12 -0
  108. package/dist/esm/components/memberPopup/context/viewStack.js +2 -0
  109. package/dist/esm/components/memberPopup/context/viewStack.js.map +7 -0
  110. package/dist/esm/components/memberPopup/icons.d.ts +27 -0
  111. package/dist/esm/components/memberPopup/icons.js +2 -0
  112. package/dist/esm/components/memberPopup/icons.js.map +7 -0
  113. package/dist/esm/components/memberPopup/index.d.ts +4 -0
  114. package/dist/esm/components/memberPopup/index.js +2 -0
  115. package/dist/esm/components/memberPopup/index.js.map +7 -0
  116. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.d.ts +10 -0
  117. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.js +2 -0
  118. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.js.map +7 -0
  119. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.d.ts +7 -0
  120. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js +2 -0
  121. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js.map +7 -0
  122. package/dist/esm/components/memberPopup/panels/Activity/index.d.ts +7 -0
  123. package/dist/esm/components/memberPopup/panels/Activity/index.js +2 -0
  124. package/dist/esm/components/memberPopup/panels/Activity/index.js.map +7 -0
  125. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.d.ts +19 -0
  126. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js +2 -0
  127. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js.map +7 -0
  128. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.d.ts +20 -0
  129. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js +2 -0
  130. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js.map +7 -0
  131. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.d.ts +12 -0
  132. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js +2 -0
  133. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js.map +7 -0
  134. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.d.ts +17 -0
  135. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js +2 -0
  136. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js.map +7 -0
  137. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.d.ts +8 -0
  138. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js +2 -0
  139. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js.map +7 -0
  140. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.d.ts +7 -0
  141. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js +2 -0
  142. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js.map +7 -0
  143. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.d.ts +8 -0
  144. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js +2 -0
  145. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +7 -0
  146. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.d.ts +10 -0
  147. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js +2 -0
  148. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js.map +7 -0
  149. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.d.ts +9 -0
  150. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +2 -0
  151. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +7 -0
  152. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.d.ts +9 -0
  153. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +2 -0
  154. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +7 -0
  155. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.d.ts +10 -0
  156. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js +2 -0
  157. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +7 -0
  158. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.d.ts +9 -0
  159. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.js +2 -0
  160. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.js.map +7 -0
  161. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.d.ts +18 -0
  162. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.js +2 -0
  163. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.js.map +7 -0
  164. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.d.ts +9 -0
  165. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js +2 -0
  166. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js.map +7 -0
  167. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +17 -0
  168. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +2 -0
  169. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +7 -0
  170. package/dist/esm/components/memberPopup/panels/EarnCredits/index.d.ts +13 -0
  171. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js +2 -0
  172. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js.map +7 -0
  173. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.d.ts +13 -0
  174. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js +2 -0
  175. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js.map +7 -0
  176. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.d.ts +12 -0
  177. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +2 -0
  178. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +7 -0
  179. package/dist/esm/components/memberPopup/panels/Referral/index.d.ts +7 -0
  180. package/dist/esm/components/memberPopup/panels/Referral/index.js +2 -0
  181. package/dist/esm/components/memberPopup/panels/Referral/index.js.map +7 -0
  182. package/dist/esm/components/memberPopup/type.d.ts +216 -0
  183. package/dist/esm/components/memberPopup/type.js +2 -0
  184. package/dist/esm/components/memberPopup/type.js.map +7 -0
  185. package/dist/index.d.mts +1775 -0
  186. package/dist/index.d.ts +1775 -0
  187. package/dist/index.js +18542 -0
  188. package/dist/index.js.map +1 -0
  189. package/dist/index.mjs +18514 -0
  190. package/dist/index.mjs.map +1 -0
  191. package/package.json +1 -2
  192. package/src/components/LiveChatWidget/components/MessageContent/TextBlock.tsx +5 -7
  193. package/src/components/credits/context/hooks/useCountries.ts +5 -15
  194. package/src/components/credits/context/hooks/useSubscribed.ts +0 -1
  195. package/src/components/index.ts +4 -2
  196. package/src/components/memberPopup/MemberPopup.tsx +325 -0
  197. package/src/components/memberPopup/context/provider.tsx +52 -0
  198. package/src/components/memberPopup/context/viewStack.tsx +23 -0
  199. package/src/components/memberPopup/icons.tsx +147 -0
  200. package/src/components/memberPopup/index.ts +24 -0
  201. package/src/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.tsx +150 -0
  202. package/src/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.tsx +142 -0
  203. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.ts +33 -0
  204. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.ts +38 -0
  205. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.ts +55 -0
  206. package/src/components/memberPopup/panels/ConsumeCredits/index.tsx +220 -0
  207. package/src/components/memberPopup/panels/EarnCredits/ActivatePanel.tsx +323 -0
  208. package/src/components/memberPopup/panels/EarnCredits/CompleteProfileModal.tsx +191 -0
  209. package/src/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.tsx +184 -0
  210. package/src/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.tsx +130 -0
  211. package/src/components/memberPopup/panels/EarnCredits/SubscribeModal.tsx +144 -0
  212. package/src/components/memberPopup/panels/EarnCredits/SubscribePanel.tsx +147 -0
  213. package/src/components/memberPopup/panels/EarnCredits/hooks/useActivities.ts +64 -0
  214. package/src/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.ts +32 -0
  215. package/src/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.ts +50 -0
  216. package/src/components/memberPopup/panels/EarnCredits/index.tsx +215 -0
  217. package/src/components/memberPopup/panels/Referral/hooks/useReferralOverview.ts +41 -0
  218. package/src/components/memberPopup/panels/Referral/index.tsx +108 -0
  219. package/src/components/memberPopup/type.ts +230 -0
  220. package/tailwind.config.ts +4 -0
  221. package/dist/cjs/stories/CartCard.stories.d.ts +0 -33
  222. package/dist/cjs/stories/CartCard.stories.js +0 -21
  223. package/dist/cjs/stories/CartCard.stories.js.map +0 -7
  224. package/dist/esm/stories/CartCard.stories.d.ts +0 -33
  225. package/dist/esm/stories/CartCard.stories.js +0 -21
  226. package/dist/esm/stories/CartCard.stories.js.map +0 -7
  227. package/src/stories/CartCard.stories.tsx +0 -459
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/SubscribeModal.tsx"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Button, Checkbox, Text } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { CreditsModalContainer } from '../../../credits/modal/ModalContainer'\nimport { emailValidate } from '../../../credits/context/utils'\nimport { useMemberPopupContext } from '../../context/provider'\nimport type { SubscribeModalCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n isOpen: boolean\n onClose: () => void\n onSuccess?: () => void\n copy: SubscribeModalCopy\n email?: string\n}\n\nfunction getAdCookie() {\n if (typeof window === 'undefined') return { register_source: '' }\n const { search, href } = window.location\n const query = parse(search)\n return {\n fbuy_ref_code: Cookies.get('fbuy_ref_code'),\n ref: Cookies.get('ref_ads'),\n inviter_code: query.ic ?? query.inviter_code ?? Cookies.get('inviter_code'),\n register_source: query.redirect ?? Cookies.get('reg_source') ?? href,\n }\n}\n\nasync function getRecaptchaToken(sitekey: string): Promise<string> {\n if (typeof window === 'undefined' || !window?.grecaptcha?.execute) return ''\n if (!sitekey) return ''\n try {\n return await window.grecaptcha.execute(sitekey, { action: 'activity' })\n } catch {\n return ''\n }\n}\n\nexport function EarnCreditsSubscribeModal({ isOpen, onClose, onSuccess, copy, email: initialEmail }: Props) {\n const { alpcConfig } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand: headlessBrand, storeDomain, recaptchaSitekey } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(false)\n const [email, setEmail] = useState(initialEmail ?? '')\n const [errorMessage, setErrorMessage] = useState('')\n const [successMessage, setSuccessMessage] = useState('')\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n if (initialEmail) setEmail(initialEmail)\n }, [initialEmail])\n\n const handleSubmit = useCallback(async () => {\n setErrorMessage('')\n if (!email) return setErrorMessage('Please fill in your email')\n if (!emailValidate(email)) return setErrorMessage('Invalid email address')\n if (!policy) return setErrorMessage('Please agree to the policy')\n\n setLoading(true)\n const { register_source } = getAdCookie()\n const recaptchaToken = await getRecaptchaToken(recaptchaSitekey || '')\n try {\n const response = await fetch('/api/multipass/rainbowbridge/activities', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n 'X-Recaptcha-Token': recaptchaToken,\n },\n body: JSON.stringify({\n email,\n register_source,\n shopify_domain: storeDomain,\n single_brand_subscribe: copy.single_brand_subscribe ?? true,\n genre: copy.genre ?? copy.dealsType ?? '',\n sub_brand_type: copy.sub_brand_type ?? '',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n onSuccess?.()\n setTimeout(() => {\n setSuccessMessage('')\n onClose()\n }, 3000)\n } else {\n setErrorMessage(result.errors ?? 'Error occurred')\n }\n } catch {\n setErrorMessage('Network error')\n } finally {\n setLoading(false)\n }\n }, [email, policy, locale, storeDomain, copy, onSuccess, onClose])\n\n return (\n <CreditsModalContainer\n isOpen={isOpen}\n onClose={onClose}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] md:mb-[24px]\"\n useAnimation\n animationClassName=\"md:translate-y-[100vh]\"\n >\n <div className=\"flex flex-col gap-[16px] text-center\">\n <Text className=\"text-[22px] font-bold\" html={copy.title} />\n {copy.desc && (\n <Text className=\"text-left text-[16px] font-semibold text-[#1f2021]\" html={copy.desc} />\n )}\n <div className={cn('flex h-[52px] w-full overflow-hidden md:flex-col md:h-auto md:gap-[16px]', rounded ? 'rounded-[2px]' : 'rounded-none')}>\n <input\n className={cn('h-full flex-1 border border-[#d8d8d8] px-[14px] text-[16px] outline-none placeholder:text-[#999] md:h-[52px]', rounded ? 'rounded-l-[2px] md:rounded-[2px]' : 'rounded-none')}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => { setErrorMessage(''); setEmail(e.target.value.trim()) }}\n />\n <Button\n variant=\"primary\"\n loading={loading}\n className={cn('!h-full !min-w-0 !px-[24px] md:!h-[46px]', rounded ? '!rounded-l-none !rounded-r-[2px] md:!rounded-[2px]' : '!rounded-none')}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </Button>\n </div>\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"border-[#1d1d1f]\" />\n <label\n className=\"text-left text-[14px] font-semibold text-[#777] [&_a]:underline\"\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n <div className={cn('text-left text-[16px] font-semibold', errorMessage && 'text-[#f84d4f]', successMessage && 'text-[#52c41a]')}>\n <Text html={successMessage || errorMessage || ''} />\n </div>\n </div>\n </CreditsModalContainer>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SubscribeModal_exports", "__export", "EarnCreditsSubscribeModal", "__toCommonJS", "import_jsx_runtime", "import_react", "import_headless_ui", "import_lib", "import_js_cookie", "import_query_string", "import_ModalContainer", "import_utils", "import_provider", "import_constants", "getAdCookie", "search", "href", "query", "Cookies", "getRecaptchaToken", "sitekey", "isOpen", "onClose", "onSuccess", "copy", "initialEmail", "alpcConfig", "locale", "headlessBrand", "storeDomain", "recaptchaSitekey", "rounded", "policy", "setPolicy", "email", "setEmail", "errorMessage", "setErrorMessage", "successMessage", "setSuccessMessage", "loading", "setLoading", "handleSubmit", "register_source", "recaptchaToken", "result", "cn", "e", "v"]
7
+ }
@@ -0,0 +1,9 @@
1
+ import type { SubscribeModalCopy } from '../../type';
2
+ type Props = {
3
+ copy: SubscribeModalCopy;
4
+ email?: string;
5
+ onClose: () => void;
6
+ onSuccess?: () => void;
7
+ };
8
+ export default function SubscribePanel({ copy, email: initialEmail, onClose, onSuccess }: Props): import("react/jsx-runtime").JSX.Element;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var E=Object.create;var m=Object.defineProperty;var H=Object.getOwnPropertyDescriptor;var I=Object.getOwnPropertyNames;var j=Object.getPrototypeOf,q=Object.prototype.hasOwnProperty;var J=(e,t)=>{for(var r in t)m(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,l)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of I(t))!q.call(e,a)&&a!==r&&m(e,a,{get:()=>t[a],enumerable:!(l=H(t,a))||l.enumerable});return e};var U=(e,t,r)=>(r=e!=null?E(j(e)):{},S(t||!e||!e.__esModule?m(r,"default",{value:e,enumerable:!0}):r,e)),V=e=>S(m({},"__esModule",{value:!0}),e);var F={};J(F,{default:()=>D});module.exports=V(F);var s=require("react/jsx-runtime"),o=require("react"),f=require("@anker-in/headless-ui"),c=require("@anker-in/lib"),u=U(require("js-cookie")),k=require("query-string"),T=require("../../../credits/context/utils"),P=require("../../context/provider"),M=require("../../../../constants");function X(){if(typeof window>"u")return{register_source:""};const{search:e,href:t}=window.location,r=(0,k.parse)(e);return{fbuy_ref_code:u.default.get("fbuy_ref_code"),ref:u.default.get("ref_ads"),inviter_code:r.ic??r.inviter_code??u.default.get("inviter_code"),register_source:r.redirect??u.default.get("reg_source")??t}}async function z(e){if(typeof window>"u"||!window?.grecaptcha?.execute||!e)return"";try{return await window.grecaptcha.execute(e,{action:"activity"})}catch{return""}}function D({copy:e,email:t,onClose:r,onSuccess:l}){const{alpcConfig:a}=(0,P.useMemberPopupContext)(),{locale:g}=a,{brand:R,storeDomain:h,recaptchaSitekey:L}=(0,c.useHeadlessContext)(),_=M.ROUNDED_BRANDS.includes(R),[x,y]=(0,o.useState)(!1),[d,v]=(0,o.useState)(t??""),[p,n]=(0,o.useState)(""),[b,w]=(0,o.useState)(""),[O,N]=(0,o.useState)(!1);(0,o.useEffect)(()=>{t&&v(t)},[t]);const A=(0,o.useCallback)(async()=>{if(n(""),!d)return n("Please fill in your email");if(!(0,T.emailValidate)(d))return n("Invalid email address");if(!x)return n("Please agree to the policy");N(!0);const{register_source:i}=X(),B=await z(L||"");try{const C=await(await fetch("/api/multipass/rainbowbridge/activities",{method:"POST",headers:{"Content-Type":"application/json","current-language":g,"X-Recaptcha-Token":B},body:JSON.stringify({email:d,register_source:i,shopify_domain:h,single_brand_subscribe:e.single_brand_subscribe??!0,genre:e.genre??e.dealsType??"",sub_brand_type:e.sub_brand_type??""})})).json();C.errors?n(C.errors??"Error occurred"):(w(e.successTips??"Subscribed successfully!"),l?.(),setTimeout(()=>{w(""),r()},3e3))}catch{n("Network error")}finally{N(!1)}},[d,x,g,h,e,r,l]);return(0,s.jsxs)("div",{className:"flex flex-col gap-[12px]",children:[(0,s.jsxs)("div",{className:"flex flex-col gap-[8px]",children:[e.title&&(0,s.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),e.desc&&(0,s.jsx)(f.Text,{className:"text-[16px] text-[#1e2024]",html:e.desc})]}),(0,s.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,s.jsx)("input",{className:(0,c.classNames)("h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]",p?"border-[#f84d4f]":"border-[#d8d8d8]",_?"rounded-[4px]":"rounded-none"),placeholder:e.placeholder,value:d,onChange:i=>{n(""),v(i.target.value.trim())}}),(0,s.jsxs)("div",{className:"flex w-full items-start gap-[8px]",children:[(0,s.jsx)(f.Checkbox,{checked:x,onCheckedChange:()=>y(i=>!i),className:"mt-[2px] border-[#1d1d1f]"}),(0,s.jsx)("label",{className:"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline",onClick:()=>y(i=>!i),dangerouslySetInnerHTML:{__html:e.policy??""}})]}),(p||b)&&(0,s.jsx)("div",{className:(0,c.classNames)("text-[14px] font-[700]",p&&"text-[#f84d4f]",b&&"text-[#52c41a]"),children:(0,s.jsx)(f.Text,{html:b||p})}),(0,s.jsx)("button",{className:(0,c.classNames)("w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60",_?"rounded-[4px]":"rounded-none"),disabled:O,onClick:A,children:e.buttonLabel??"Subscribe"})]})]})}
2
+ //# sourceMappingURL=SubscribePanel.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/SubscribePanel.tsx"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Checkbox, Text } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { emailValidate } from '../../../credits/context/utils'\nimport { useMemberPopupContext } from '../../context/provider'\nimport type { SubscribeModalCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: SubscribeModalCopy\n email?: string\n onClose: () => void\n onSuccess?: () => void\n}\n\nfunction getAdCookie() {\n if (typeof window === 'undefined') return { register_source: '' }\n const { search, href } = window.location\n const query = parse(search)\n return {\n fbuy_ref_code: Cookies.get('fbuy_ref_code'),\n ref: Cookies.get('ref_ads'),\n inviter_code: query.ic ?? query.inviter_code ?? Cookies.get('inviter_code'),\n register_source: query.redirect ?? Cookies.get('reg_source') ?? href,\n }\n}\n\nasync function getRecaptchaToken(sitekey: string): Promise<string> {\n if (typeof window === 'undefined' || !window?.grecaptcha?.execute) return ''\n if (!sitekey) return ''\n try {\n return await window.grecaptcha.execute(sitekey, { action: 'activity' })\n } catch {\n return ''\n }\n}\n\nexport default function SubscribePanel({ copy, email: initialEmail, onClose, onSuccess }: Props) {\n const { alpcConfig } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand: headlessBrand, storeDomain, recaptchaSitekey } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(false)\n const [email, setEmail] = useState(initialEmail ?? '')\n const [errorMessage, setErrorMessage] = useState('')\n const [successMessage, setSuccessMessage] = useState('')\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n if (initialEmail) setEmail(initialEmail)\n }, [initialEmail])\n\n const handleSubmit = useCallback(async () => {\n setErrorMessage('')\n if (!email) return setErrorMessage('Please fill in your email')\n if (!emailValidate(email)) return setErrorMessage('Invalid email address')\n if (!policy) return setErrorMessage('Please agree to the policy')\n\n setLoading(true)\n const { register_source } = getAdCookie()\n const recaptchaToken = await getRecaptchaToken(recaptchaSitekey || '')\n try {\n const response = await fetch('/api/multipass/rainbowbridge/activities', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n 'X-Recaptcha-Token': recaptchaToken,\n },\n body: JSON.stringify({\n email,\n register_source,\n shopify_domain: storeDomain,\n single_brand_subscribe: copy.single_brand_subscribe ?? true,\n genre: copy.genre ?? copy.dealsType ?? '',\n sub_brand_type: copy.sub_brand_type ?? '',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n onSuccess?.()\n setTimeout(() => {\n setSuccessMessage('')\n onClose()\n }, 3000)\n } else {\n setErrorMessage(result.errors ?? 'Error occurred')\n }\n } catch {\n setErrorMessage('Network error')\n } finally {\n setLoading(false)\n }\n }, [email, policy, locale, storeDomain, copy, onClose, onSuccess])\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && (\n <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>\n )}\n {copy.desc && (\n <Text className=\"text-[16px] text-[#1e2024]\" html={copy.desc} />\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n <input\n className={cn(\n 'h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]',\n errorMessage ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => { setErrorMessage(''); setEmail(e.target.value.trim()) }}\n />\n\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"mt-[2px] border-[#1d1d1f]\" />\n <label\n className=\"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline\"\n onClick={() => setPolicy(v => !v)}\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n\n {(errorMessage || successMessage) && (\n <div className={cn('text-[14px] font-[700]', errorMessage && 'text-[#f84d4f]', successMessage && 'text-[#52c41a]')}>\n <Text html={successMessage || errorMessage} />\n </div>\n )}\n\n <button\n className={cn('w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60', rounded ? 'rounded-[4px]' : 'rounded-none')}\n disabled={loading}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </button>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["SubscribePanel_exports", "__export", "SubscribePanel", "__toCommonJS", "import_jsx_runtime", "import_react", "import_headless_ui", "import_lib", "import_js_cookie", "import_query_string", "import_utils", "import_provider", "import_constants", "getAdCookie", "search", "href", "query", "Cookies", "getRecaptchaToken", "sitekey", "copy", "initialEmail", "onClose", "onSuccess", "alpcConfig", "locale", "headlessBrand", "storeDomain", "recaptchaSitekey", "rounded", "policy", "setPolicy", "email", "setEmail", "errorMessage", "setErrorMessage", "successMessage", "setSuccessMessage", "loading", "setLoading", "handleSubmit", "register_source", "recaptchaToken", "result", "cn", "e", "v"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import type { CreditLogResponse } from '../../../../credits/context/response';
2
+ type UseActivitiesConfig = {
3
+ userId: string | undefined;
4
+ brand: string;
5
+ apiBaseUrl?: string;
6
+ locale?: string;
7
+ };
8
+ type Params = {
9
+ page: number;
10
+ pageSize: number;
11
+ };
12
+ declare function useActivities({ userId, brand, apiBaseUrl, locale }: UseActivitiesConfig, { page, pageSize }: Params): {
13
+ activities: CreditLogResponse[];
14
+ isLoading: boolean;
15
+ total: number;
16
+ canNext: boolean;
17
+ };
18
+ export default useActivities;
@@ -0,0 +1,2 @@
1
+ "use strict";var S=Object.create;var c=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var x=Object.getPrototypeOf,T=Object.prototype.hasOwnProperty;var U=(t,e)=>{for(var s in e)c(t,s,{get:e[s],enumerable:!0})},y=(t,e,s,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of R(e))!T.call(t,i)&&i!==s&&c(t,i,{get:()=>e[i],enumerable:!(r=L(e,i))||r.enumerable});return t};var b=(t,e,s)=>(s=t!=null?S(x(t)):{},y(e||!t||!t.__esModule?c(s,"default",{value:t,enumerable:!0}):s,t)),j=t=>y(c({},"__esModule",{value:!0}),t);var N={};U(N,{default:()=>M});module.exports=j(N);var n=require("react"),v=b(require("swr/mutation")),C=require("../../../../credits/context/utils");function w({userId:t,brand:e,apiBaseUrl:s,locale:r=""},{page:i,pageSize:u}){const[p,h]=(0,n.useState)([]),[f,A]=(0,n.useState)(0),[m,P]=(0,n.useState)(0),{isMutating:o,trigger:l}=(0,v.default)("/v1/credit/log",async(a,{arg:g})=>(await fetch((0,C.getAlpcPath)(r,s)+a,{method:"POST",headers:{"Content-Type":"application/json","current-language":r},body:JSON.stringify(g)})).json()),d=(0,n.useCallback)(async()=>{await l({page:i,page_size:u,user_id:t,brand:e},{onSuccess(a){P(i),A(a?.data?.total??0),h(g=>g.concat(a?.data?.creditLogs??[]))}})},[i,u,t,e,l]);return(0,n.useEffect)(()=>{!t||!e||o||i===m||d()},[d,t,e,i,m,o]),{activities:p,isLoading:o,total:f,canNext:f>p.length&&!o}}var M=w;
2
+ //# sourceMappingURL=useActivities.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/components/memberPopup/panels/EarnCredits/hooks/useActivities.ts"],
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport useSWRMutation from 'swr/mutation'\nimport { getAlpcPath } from '../../../../credits/context/utils'\nimport type { CreditLogResponse } from '../../../../credits/context/response'\n\ntype UseActivitiesConfig = {\n userId: string | undefined\n brand: string\n apiBaseUrl?: string\n locale?: string\n}\n\ntype Params = {\n page: number\n pageSize: number\n}\n\nfunction useActivities(\n { userId, brand, apiBaseUrl, locale = '' }: UseActivitiesConfig,\n { page, pageSize }: Params\n) {\n const [activities, setActivities] = useState<CreditLogResponse[]>([])\n const [total, setTotal] = useState(0)\n const [currentPage, setCurrentPage] = useState(0)\n\n const { isMutating: isLoading, trigger } = useSWRMutation(\n `/v1/credit/log`,\n async (url: string, { arg }: { arg: Record<string, any> }) => {\n const response = await fetch(getAlpcPath(locale, apiBaseUrl) + url, {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'current-language': locale },\n body: JSON.stringify(arg),\n })\n return response.json()\n }\n )\n\n const fetchActivities = useCallback(async () => {\n await trigger(\n { page, page_size: pageSize, user_id: userId, brand },\n {\n onSuccess(data) {\n setCurrentPage(page)\n setTotal(data?.data?.total ?? 0)\n setActivities(prev => prev.concat(data?.data?.creditLogs ?? []))\n },\n }\n )\n }, [page, pageSize, userId, brand, trigger])\n\n useEffect(() => {\n if (!userId || !brand || isLoading || page === currentPage) return\n fetchActivities()\n }, [fetchActivities, userId, brand, page, currentPage, isLoading])\n\n return {\n activities,\n isLoading,\n total,\n canNext: total > activities.length && !isLoading,\n }\n}\n\nexport default useActivities\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAiD,iBACjDC,EAA2B,2BAC3BC,EAA4B,6CAe5B,SAASC,EACP,CAAE,OAAAC,EAAQ,MAAAC,EAAO,WAAAC,EAAY,OAAAC,EAAS,EAAG,EACzC,CAAE,KAAAC,EAAM,SAAAC,CAAS,EACjB,CACA,KAAM,CAACC,EAAYC,CAAa,KAAI,YAA8B,CAAC,CAAC,EAC9D,CAACC,EAAOC,CAAQ,KAAI,YAAS,CAAC,EAC9B,CAACC,EAAaC,CAAc,KAAI,YAAS,CAAC,EAE1C,CAAE,WAAYC,EAAW,QAAAC,CAAQ,KAAI,EAAAC,SACzC,iBACA,MAAOC,EAAa,CAAE,IAAAC,CAAI,KACP,MAAM,SAAM,eAAYb,EAAQD,CAAU,EAAIa,EAAK,CAClE,OAAQ,OACR,QAAS,CAAE,eAAgB,mBAAoB,mBAAoBZ,CAAO,EAC1E,KAAM,KAAK,UAAUa,CAAG,CAC1B,CAAC,GACe,KAAK,CAEzB,EAEMC,KAAkB,eAAY,SAAY,CAC9C,MAAMJ,EACJ,CAAE,KAAAT,EAAM,UAAWC,EAAU,QAASL,EAAQ,MAAAC,CAAM,EACpD,CACE,UAAUiB,EAAM,CACdP,EAAeP,CAAI,EACnBK,EAASS,GAAM,MAAM,OAAS,CAAC,EAC/BX,EAAcY,GAAQA,EAAK,OAAOD,GAAM,MAAM,YAAc,CAAC,CAAC,CAAC,CACjE,CACF,CACF,CACF,EAAG,CAACd,EAAMC,EAAUL,EAAQC,EAAOY,CAAO,CAAC,EAE3C,sBAAU,IAAM,CACV,CAACb,GAAU,CAACC,GAASW,GAAaR,IAASM,GAC/CO,EAAgB,CAClB,EAAG,CAACA,EAAiBjB,EAAQC,EAAOG,EAAMM,EAAaE,CAAS,CAAC,EAE1D,CACL,WAAAN,EACA,UAAAM,EACA,MAAAJ,EACA,QAASA,EAAQF,EAAW,QAAU,CAACM,CACzC,CACF,CAEA,IAAOlB,EAAQK",
6
+ "names": ["useActivities_exports", "__export", "useActivities_default", "__toCommonJS", "import_react", "import_mutation", "import_utils", "useActivities", "userId", "brand", "apiBaseUrl", "locale", "page", "pageSize", "activities", "setActivities", "total", "setTotal", "currentPage", "setCurrentPage", "isLoading", "trigger", "useSWRMutation", "url", "arg", "fetchActivities", "data", "prev"]
7
+ }
@@ -0,0 +1,9 @@
1
+ type UseSubscribedConfig = {
2
+ userId: string | undefined;
3
+ brand: string;
4
+ email: string | undefined;
5
+ locale?: string;
6
+ apiBaseUrl?: string;
7
+ };
8
+ export declare function useSubscribed({ userId, brand, email, locale, apiBaseUrl }: UseSubscribedConfig): boolean;
9
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.create;var u=Object.defineProperty;var S=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,B=Object.prototype.hasOwnProperty;var U=(e,r)=>{for(var s in r)u(e,s,{get:r[s],enumerable:!0})},p=(e,r,s,t)=>{if(r&&typeof r=="object"||typeof r=="function")for(let i of y(r))!B.call(e,i)&&i!==s&&u(e,i,{get:()=>r[i],enumerable:!(t=S(r,i))||t.enumerable});return e};var k=(e,r,s)=>(s=e!=null?g(l(e)):{},p(r||!e||!e.__esModule?u(s,"default",{value:e,enumerable:!0}):s,e)),v=e=>p(u({},"__esModule",{value:!0}),e);var P={};U(P,{useSubscribed:()=>C});module.exports=v(P);var a=require("react"),f=require("@anker-in/lib"),d=require("../../../../credits/context/const"),m=k(require("./useActivities"));function C({userId:e,brand:r,email:s,locale:t="",apiBaseUrl:i}){const{activities:c}=(0,m.default)({userId:e,brand:r,apiBaseUrl:i,locale:t},{page:1,pageSize:50}),{data:b}=(0,f.useSubscriptions)({email:s}),o=b?.data||b;return(0,a.useMemo)(()=>o?.preference?o.preference.some(n=>n.brand===r&&n.subscribe)?!0:c?.some(n=>n.task_sub_type===d.TaskSubType.Subscription):!1,[o?.preference,c,r])}
2
+ //# sourceMappingURL=useSubscribed.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.ts"],
4
+ "sourcesContent": ["import { useMemo } from 'react'\nimport { useSubscriptions } from '@anker-in/lib'\nimport { TaskSubType } from '../../../../credits/context/const'\nimport useActivities from './useActivities'\n\ntype UseSubscribedConfig = {\n userId: string | undefined\n brand: string\n email: string | undefined\n locale?: string\n apiBaseUrl?: string\n}\n\nexport function useSubscribed({ userId, brand, email, locale = '', apiBaseUrl }: UseSubscribedConfig) {\n const { activities } = useActivities(\n { userId, brand, apiBaseUrl, locale },\n { page: 1, pageSize: 50 }\n )\n const { data: subscription } = useSubscriptions({ email })\n const subscriptionData = subscription?.data || subscription\n\n return useMemo(() => {\n if (!subscriptionData?.preference) {\n return false\n }\n const subscribedByPreference = subscriptionData.preference.some(\n (item: any) => item.brand === brand && item.subscribe\n )\n if (subscribedByPreference) return true\n return activities?.some(item => item.task_sub_type === TaskSubType.Subscription)\n }, [subscriptionData?.preference, activities, brand])\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,mBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAwB,iBACxBC,EAAiC,yBACjCC,EAA4B,6CAC5BC,EAA0B,8BAUnB,SAASL,EAAc,CAAE,OAAAM,EAAQ,MAAAC,EAAO,MAAAC,EAAO,OAAAC,EAAS,GAAI,WAAAC,CAAW,EAAwB,CACpG,KAAM,CAAE,WAAAC,CAAW,KAAI,EAAAC,SACrB,CAAE,OAAAN,EAAQ,MAAAC,EAAO,WAAAG,EAAY,OAAAD,CAAO,EACpC,CAAE,KAAM,EAAG,SAAU,EAAG,CAC1B,EACM,CAAE,KAAMI,CAAa,KAAI,oBAAiB,CAAE,MAAAL,CAAM,CAAC,EACnDM,EAAmBD,GAAc,MAAQA,EAE/C,SAAO,WAAQ,IACRC,GAAkB,WAGQA,EAAiB,WAAW,KACxDC,GAAcA,EAAK,QAAUR,GAASQ,EAAK,SAC9C,EACmC,GAC5BJ,GAAY,KAAKI,GAAQA,EAAK,gBAAkB,cAAY,YAAY,EANtE,GAOR,CAACD,GAAkB,WAAYH,EAAYJ,CAAK,CAAC,CACtD",
6
+ "names": ["useSubscribed_exports", "__export", "useSubscribed", "__toCommonJS", "import_react", "import_lib", "import_const", "import_useActivities", "userId", "brand", "email", "locale", "apiBaseUrl", "activities", "useActivities", "subscription", "subscriptionData", "item"]
7
+ }
@@ -0,0 +1,17 @@
1
+ type UseUpdateProfileConfig = {
2
+ locale?: string;
3
+ appName?: string;
4
+ };
5
+ type ProfileData = {
6
+ first_name?: string;
7
+ last_name?: string;
8
+ phone_number?: string;
9
+ country?: string;
10
+ dob?: string;
11
+ };
12
+ export declare function useUpdateProfile({ locale, appName }?: UseUpdateProfileConfig): {
13
+ updateProfile: (data: ProfileData) => Promise<boolean>;
14
+ isLoading: boolean;
15
+ error: string | null;
16
+ };
17
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var u=Object.defineProperty;var p=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var c=Object.prototype.hasOwnProperty;var d=(r,e)=>{for(var n in e)u(r,n,{get:e[n],enumerable:!0})},m=(r,e,n,s)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of g(e))!c.call(r,t)&&t!==n&&u(r,t,{get:()=>e[t],enumerable:!(s=p(e,t))||s.enumerable});return r};var y=r=>m(u({},"__esModule",{value:!0}),r);var U={};d(U,{useUpdateProfile:()=>P});module.exports=y(U);var a=require("react");function P({locale:r="",appName:e=""}={}){const[n,s]=(0,a.useState)(!1),[t,i]=(0,a.useState)(null);return{updateProfile:(0,a.useCallback)(async f=>{s(!0),i(null);try{const o=await fetch("/api/multipass/account/users/update_profile",{method:"PUT",headers:{"Content-Type":"application/json","current-language":r},body:JSON.stringify({app:e,...f})}),l=await o.json();return o.ok&&!l.error?!0:(i(l?.error?.message||l?.error||"Update failed"),!1)}catch(o){return i(o?.message??"Unknown error"),!1}finally{s(!1)}},[r,e]),isLoading:n,error:t}}
2
+ //# sourceMappingURL=useUpdateProfile.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.ts"],
4
+ "sourcesContent": ["import { useCallback, useState } from 'react'\n\ntype UseUpdateProfileConfig = {\n locale?: string\n appName?: string\n}\n\ntype ProfileData = {\n first_name?: string\n last_name?: string\n phone_number?: string\n country?: string\n dob?: string\n}\n\nexport function useUpdateProfile({ locale = '', appName = '' }: UseUpdateProfileConfig = {}) {\n const [isLoading, setIsLoading] = useState(false)\n const [error, setError] = useState<string | null>(null)\n\n const updateProfile = useCallback(\n async (data: ProfileData): Promise<boolean> => {\n setIsLoading(true)\n setError(null)\n try {\n const response = await fetch('/api/multipass/account/users/update_profile', {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n },\n body: JSON.stringify({ app: appName, ...data }),\n })\n const result = await response.json()\n if (response.ok && !result.error) {\n return true\n }\n setError(result?.error?.message || result?.error || 'Update failed')\n return false\n } catch (e: any) {\n setError(e?.message ?? 'Unknown error')\n return false\n } finally {\n setIsLoading(false)\n }\n },\n [locale, appName]\n )\n\n return { updateProfile, isLoading, error }\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,sBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAsC,iBAe/B,SAASF,EAAiB,CAAE,OAAAG,EAAS,GAAI,QAAAC,EAAU,EAAG,EAA4B,CAAC,EAAG,CAC3F,KAAM,CAACC,EAAWC,CAAY,KAAI,YAAS,EAAK,EAC1C,CAACC,EAAOC,CAAQ,KAAI,YAAwB,IAAI,EA+BtD,MAAO,CAAE,iBA7Ba,eACpB,MAAOC,GAAwC,CAC7CH,EAAa,EAAI,EACjBE,EAAS,IAAI,EACb,GAAI,CACF,MAAME,EAAW,MAAM,MAAM,8CAA+C,CAC1E,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,mBAAoBP,CACtB,EACA,KAAM,KAAK,UAAU,CAAE,IAAKC,EAAS,GAAGK,CAAK,CAAC,CAChD,CAAC,EACKE,EAAS,MAAMD,EAAS,KAAK,EACnC,OAAIA,EAAS,IAAM,CAACC,EAAO,MAClB,IAETH,EAASG,GAAQ,OAAO,SAAWA,GAAQ,OAAS,eAAe,EAC5D,GACT,OAASC,EAAQ,CACf,OAAAJ,EAASI,GAAG,SAAW,eAAe,EAC/B,EACT,QAAE,CACAN,EAAa,EAAK,CACpB,CACF,EACA,CAACH,EAAQC,CAAO,CAClB,EAEwB,UAAAC,EAAW,MAAAE,CAAM,CAC3C",
6
+ "names": ["useUpdateProfile_exports", "__export", "useUpdateProfile", "__toCommonJS", "import_react", "locale", "appName", "isLoading", "setIsLoading", "error", "setError", "data", "response", "result", "e"]
7
+ }
@@ -0,0 +1,13 @@
1
+ import { type EarnCreditsCopy } from '../../type';
2
+ type Props = {
3
+ copy: EarnCreditsCopy;
4
+ onClose: () => void;
5
+ isSubscribeSuccess?: boolean;
6
+ isActivateSuccess?: boolean;
7
+ isProfileCompleteSuccess?: boolean;
8
+ onSubscribeSuccess?: () => void;
9
+ onActivateSuccess?: () => void;
10
+ onProfileCompleteSuccess?: () => void;
11
+ };
12
+ declare function EarnCredits({ copy, onClose, isSubscribeSuccess, isActivateSuccess, isProfileCompleteSuccess, onSubscribeSuccess, onActivateSuccess, onProfileCompleteSuccess, }: Props): import("react/jsx-runtime").JSX.Element;
13
+ export default EarnCredits;
@@ -0,0 +1,2 @@
1
+ "use strict";var N=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var F=(t,s)=>{for(var d in s)N(t,d,{get:s[d],enumerable:!0})},O=(t,s,d,f)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of R(s))!y.call(t,o)&&o!==d&&N(t,o,{get:()=>s[o],enumerable:!(f=M(s,o))||f.enumerable});return t};var V=t=>O(N({},"__esModule",{value:!0}),t);var G={};F(G,{default:()=>q});module.exports=V(G);var e=require("react/jsx-runtime"),m=require("react"),p=require("@anker-in/lib"),L=require("../../context/provider"),w=require("../../context/viewStack"),P=require("./hooks/useSubscribed"),n=require("../../type"),r=require("../../icons"),h=require("../../../credits/context/utils"),E=require("../../../../constants");function z({id:t,className:s}){switch(t){case n.EarnCreditsTaskType.Activate:return(0,e.jsx)(r.IconLock,{className:s});case n.EarnCreditsTaskType.Subscribe:return(0,e.jsx)(r.IconSubscription,{className:s});case n.EarnCreditsTaskType.Shop:return(0,e.jsx)(r.IconBag,{className:s});case n.EarnCreditsTaskType.CompleteProfile:return(0,e.jsx)(r.IconOrders,{className:s})}}function H({copy:t,onClose:s,isSubscribeSuccess:d=!1,isActivateSuccess:f=!1,isProfileCompleteSuccess:o=!1,onSubscribeSuccess:T,onActivateSuccess:_,onProfileCompleteSuccess:A}){const{profile:a,openSignUpPopup:x,alpcConfig:b,creditInfo:v}=(0,L.useMemberPopupContext)(),{pushView:u}=(0,w.useViewStack)(),{locale:I}=b,{brand:B}=(0,p.useHeadlessContext)(),g=E.ROUNDED_BRANDS.includes(B),l=!!a,C=(0,P.useSubscribed)({userId:a?.user_id,brand:b.brand,email:a?.email,locale:I,apiBaseUrl:b.apiBaseUrl}),k=(0,m.useMemo)(()=>o||!!(a?.first_name||a?.last_name)&&!!a?.phone_number&&!!a?.dob,[a,o]),S=(0,m.useMemo)(()=>({[n.EarnCreditsTaskType.Activate]:{finished:!!a?.activated||f,onClick:l?()=>u({type:n.MemberPopupPanelType.Activate,props:{onSuccess:_}}):x},[n.EarnCreditsTaskType.CompleteProfile]:{finished:k,onClick:l?()=>u({type:n.MemberPopupPanelType.CompleteProfile,props:{onSuccess:A}}):x},[n.EarnCreditsTaskType.Subscribe]:{finished:C||d,onClick:l?()=>u({type:n.MemberPopupPanelType.SubscribeEmail,props:{onSuccess:T}}):x},[n.EarnCreditsTaskType.Shop]:{finished:!1,link:t.goShopLink,onClick:l?void 0:x}}),[a,l,f,o,k,C,d,x,u,t.goShopLink]),U=(0,m.useMemo)(()=>t.list.map(i=>{const c=S[i.id];if(!c)return null;const D=c.finished?t.completed:l?j(i.id,t):t.joinNow;return{...i,...c,buttonLabel:D}}).filter(Boolean),[t,S,l]);return(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsx)("div",{className:"flex flex-col gap-[8px]",children:t.title&&(0,e.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:t.title})}),l&&v&&(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",g?"rounded-[8px]":"rounded-none"),children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.balanceLabel??"AnkerCredits Balance"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,h.numberFormat)(v.available_credit)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]}),(0,e.jsx)("div",{className:"h-full w-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.comingSoonLabel??"Coming Soon"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,h.numberFormat)(v.pending_credit??0)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[t.subtitle&&(0,e.jsx)("p",{className:"text-[16px] font-[700] text-[#1e2024]",children:t.subtitle}),(0,e.jsx)("div",{className:"flex flex-col",children:U.map((i,c)=>(0,e.jsxs)("div",{className:"relative py-[16px]",children:[c>0&&(0,e.jsx)("div",{className:"absolute left-0 right-0 top-0 h-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px]",i.finished&&"opacity-60"),children:[(0,e.jsx)(z,{id:i.id,className:"size-[24px] shrink-0"}),(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("div",{className:"text-[16px] font-[700] text-[#1e2024]",children:i.title}),i.description&&(0,e.jsx)("div",{className:"mt-[4px] text-[14px] font-[700] text-[#4a4c56]",children:i.description})]}),!i.finished&&i.link?(0,e.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:(0,p.classNames)("cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",g?"rounded-[4px]":"rounded-none"),children:i.buttonLabel}):(0,e.jsx)("button",{className:(0,p.classNames)("cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",i.finished?"bg-[#767880]":"bg-[#080a0f]",g?"rounded-[4px]":"rounded-none"),disabled:i.finished,onClick:i.finished?void 0:i.onClick,children:i.buttonLabel})]})]},c))})]})]})}function j(t,s){switch(t){case n.EarnCreditsTaskType.Activate:return s.activate;case n.EarnCreditsTaskType.CompleteProfile:return s.completeProfileLabel;case n.EarnCreditsTaskType.Subscribe:return s.subscribeLabel;case n.EarnCreditsTaskType.Shop:return s.shopNow}}var q=H;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/index.tsx"],
4
+ "sourcesContent": ["import { useMemo } from 'react'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useViewStack } from '../../context/viewStack'\nimport { useSubscribed } from './hooks/useSubscribed'\nimport { EarnCreditsTaskType, MemberPopupPanelType, type EarnCreditsCopy } from '../../type'\nimport { IconBag, IconLock, IconSubscription, IconOrders } from '../../icons'\nimport { numberFormat } from '../../../credits/context/utils'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\nfunction TaskIcon({ id, className }: { id: EarnCreditsTaskType; className?: string }) {\n switch (id) {\n case EarnCreditsTaskType.Activate:\n return <IconLock className={className} />\n case EarnCreditsTaskType.Subscribe:\n return <IconSubscription className={className} />\n case EarnCreditsTaskType.Shop:\n return <IconBag className={className} />\n case EarnCreditsTaskType.CompleteProfile:\n return <IconOrders className={className} />\n }\n}\n\ntype Props = {\n copy: EarnCreditsCopy\n onClose: () => void\n isSubscribeSuccess?: boolean\n isActivateSuccess?: boolean\n isProfileCompleteSuccess?: boolean\n onSubscribeSuccess?: () => void\n onActivateSuccess?: () => void\n onProfileCompleteSuccess?: () => void\n}\n\nfunction EarnCredits({\n copy,\n onClose,\n isSubscribeSuccess = false,\n isActivateSuccess = false,\n isProfileCompleteSuccess = false,\n onSubscribeSuccess,\n onActivateSuccess,\n onProfileCompleteSuccess,\n}: Props) {\n const { profile, openSignUpPopup, alpcConfig, creditInfo } = useMemberPopupContext()\n const { pushView } = useViewStack()\n const { locale } = alpcConfig\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const isLogin = !!profile\n\n const isSubscribed = useSubscribed({\n userId: profile?.user_id,\n brand: alpcConfig.brand,\n email: profile?.email,\n locale,\n apiBaseUrl: alpcConfig.apiBaseUrl,\n })\n\n const profileCompleted = useMemo(() => {\n return isProfileCompleteSuccess || (!!(profile?.first_name || profile?.last_name) && !!profile?.phone_number && !!profile?.dob)\n }, [profile, isProfileCompleteSuccess])\n\n const taskStates: Record<EarnCreditsTaskType, { finished: boolean; onClick?: () => void; link?: string }> = useMemo(() => ({\n [EarnCreditsTaskType.Activate]: {\n finished: !!profile?.activated || isActivateSuccess,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.Activate,\n props: { onSuccess: onActivateSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.CompleteProfile]: {\n finished: profileCompleted,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.CompleteProfile,\n props: { onSuccess: onProfileCompleteSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Subscribe]: {\n finished: isSubscribed || isSubscribeSuccess,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.SubscribeEmail,\n props: { onSuccess: onSubscribeSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Shop]: {\n finished: false,\n link: copy.goShopLink,\n onClick: isLogin ? undefined : openSignUpPopup,\n },\n }), [profile, isLogin, isActivateSuccess, isProfileCompleteSuccess, profileCompleted, isSubscribed, isSubscribeSuccess, openSignUpPopup, pushView, copy.goShopLink])\n\n const list = useMemo(() => {\n return copy.list.map(item => {\n const state = taskStates[item.id]\n if (!state) return null\n const buttonLabel = state.finished\n ? copy.completed\n : isLogin\n ? getNotFinishedLabel(item.id, copy)\n : copy.joinNow\n return { ...item, ...state, buttonLabel }\n }).filter(Boolean) as (typeof copy.list[number] & {\n finished: boolean\n onClick?: () => void\n link?: string\n buttonLabel: string\n })[]\n }, [copy, taskStates, isLogin])\n\n return (\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\n </div>\n\n {isLogin && creditInfo && (\n <div className={cn('flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]', rounded ? 'rounded-[8px]' : 'rounded-none')}>\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">\n {copy.balanceLabel ?? 'AnkerCredits Balance'}\n </div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo.available_credit)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n <div className=\"h-full w-px bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">\n {copy.comingSoonLabel ?? 'Coming Soon'}\n </div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo.pending_credit ?? 0)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n {copy.subtitle && (\n <p className=\"text-[16px] font-[700] text-[#1e2024]\">{copy.subtitle}</p>\n )}\n\n <div className=\"flex flex-col\">\n {list.map((item, idx) => (\n <div key={idx} className=\"relative py-[16px]\">\n {idx > 0 && <div className=\"absolute left-0 right-0 top-0 h-px bg-[#dadce0]\" />}\n <div className={cn('flex items-center gap-[12px]', item.finished && 'opacity-60')}>\n <TaskIcon id={item.id} className=\"size-[24px] shrink-0\" />\n <div className=\"flex-1\">\n <div className=\"text-[16px] font-[700] text-[#1e2024]\">{item.title}</div>\n {item.description && (\n <div className=\"mt-[4px] text-[14px] font-[700] text-[#4a4c56]\">{item.description}</div>\n )}\n </div>\n {!item.finished && item.link ? (\n <a\n href={item.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn('cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white', rounded ? 'rounded-[4px]' : 'rounded-none')}\n >\n {item.buttonLabel}\n </a>\n ) : (\n <button\n className={cn(\n 'cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white',\n item.finished ? 'bg-[#767880]' : 'bg-[#080a0f]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n disabled={item.finished}\n onClick={!item.finished ? item.onClick : undefined}\n >\n {item.buttonLabel}\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getNotFinishedLabel(id: EarnCreditsTaskType, copy: EarnCreditsCopy): string {\n switch (id) {\n case EarnCreditsTaskType.Activate: return copy.activate\n case EarnCreditsTaskType.CompleteProfile: return copy.completeProfileLabel\n case EarnCreditsTaskType.Subscribe: return copy.subscribeLabel\n case EarnCreditsTaskType.Shop: return copy.shopNow\n }\n}\n\nexport default EarnCredits\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAaa,IAAAI,EAAA,6BAbbC,EAAwB,iBACxBC,EAAqD,yBACrDC,EAAsC,kCACtCC,EAA6B,mCAC7BC,EAA8B,iCAC9BC,EAAgF,sBAChFC,EAAgE,uBAChEC,EAA6B,0CAC7BC,EAA+B,iCAE/B,SAASC,EAAS,CAAE,GAAAC,EAAI,UAAAC,CAAU,EAAoD,CACpF,OAAQD,EAAI,CACV,KAAK,sBAAoB,SACvB,SAAO,OAAC,YAAS,UAAWC,EAAW,EACzC,KAAK,sBAAoB,UACvB,SAAO,OAAC,oBAAiB,UAAWA,EAAW,EACjD,KAAK,sBAAoB,KACvB,SAAO,OAAC,WAAQ,UAAWA,EAAW,EACxC,KAAK,sBAAoB,gBACvB,SAAO,OAAC,cAAW,UAAWA,EAAW,CAC7C,CACF,CAaA,SAASC,EAAY,CACnB,KAAAC,EACA,QAAAC,EACA,mBAAAC,EAAqB,GACrB,kBAAAC,EAAoB,GACpB,yBAAAC,EAA2B,GAC3B,mBAAAC,EACA,kBAAAC,EACA,yBAAAC,CACF,EAAU,CACR,KAAM,CAAE,QAAAC,EAAS,gBAAAC,EAAiB,WAAAC,EAAY,WAAAC,CAAW,KAAI,yBAAsB,EAC7E,CAAE,SAAAC,CAAS,KAAI,gBAAa,EAC5B,CAAE,OAAAC,CAAO,EAAIH,EACb,CAAE,MAAAI,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EAEvCE,EAAU,CAAC,CAACR,EAEZS,KAAe,iBAAc,CACjC,OAAQT,GAAS,QACjB,MAAOE,EAAW,MAClB,MAAOF,GAAS,MAChB,OAAAK,EACA,WAAYH,EAAW,UACzB,CAAC,EAEKQ,KAAmB,WAAQ,IACxBd,GAA6B,CAAC,EAAEI,GAAS,YAAcA,GAAS,YAAc,CAAC,CAACA,GAAS,cAAgB,CAAC,CAACA,GAAS,IAC1H,CAACA,EAASJ,CAAwB,CAAC,EAEhCe,KAAsG,WAAQ,KAAO,CACzH,CAAC,sBAAoB,QAAQ,EAAG,CAC9B,SAAU,CAAC,CAACX,GAAS,WAAaL,EAClC,QAASa,EACL,IAAMJ,EAAS,CACb,KAAM,uBAAqB,SAC3B,MAAO,CAAE,UAAWN,CAAkB,CACxC,CAAC,EACDG,CACN,EACA,CAAC,sBAAoB,eAAe,EAAG,CACrC,SAAUS,EACV,QAASF,EACL,IAAMJ,EAAS,CACb,KAAM,uBAAqB,gBAC3B,MAAO,CAAE,UAAWL,CAAyB,CAC/C,CAAC,EACDE,CACN,EACA,CAAC,sBAAoB,SAAS,EAAG,CAC/B,SAAUQ,GAAgBf,EAC1B,QAASc,EACL,IAAMJ,EAAS,CACb,KAAM,uBAAqB,eAC3B,MAAO,CAAE,UAAWP,CAAmB,CACzC,CAAC,EACDI,CACN,EACA,CAAC,sBAAoB,IAAI,EAAG,CAC1B,SAAU,GACV,KAAMT,EAAK,WACX,QAASgB,EAAU,OAAYP,CACjC,CACF,GAAI,CAACD,EAASQ,EAASb,EAAmBC,EAA0Bc,EAAkBD,EAAcf,EAAoBO,EAAiBG,EAAUZ,EAAK,UAAU,CAAC,EAE7JoB,KAAO,WAAQ,IACZpB,EAAK,KAAK,IAAIqB,GAAQ,CAC3B,MAAMC,EAAQH,EAAWE,EAAK,EAAE,EAChC,GAAI,CAACC,EAAO,OAAO,KACnB,MAAMC,EAAcD,EAAM,SACtBtB,EAAK,UACLgB,EACAQ,EAAoBH,EAAK,GAAIrB,CAAI,EACjCA,EAAK,QACT,MAAO,CAAE,GAAGqB,EAAM,GAAGC,EAAO,YAAAC,CAAY,CAC1C,CAAC,EAAE,OAAO,OAAO,EAMhB,CAACvB,EAAMmB,EAAYH,CAAO,CAAC,EAE9B,SACE,QAAC,OAAI,UAAU,2BACb,qBAAC,OAAI,UAAU,2BACb,oBAAC,OAAI,UAAU,0BACZ,SAAAhB,EAAK,UAAS,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,MAAM,EACjG,EAECgB,GAAWL,MACV,QAAC,OAAI,aAAW,EAAAc,YAAG,qDAAsDV,EAAU,gBAAkB,cAAc,EACjH,qBAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCACZ,SAAAf,EAAK,cAAgB,uBACxB,KACA,QAAC,OAAI,UAAU,2BACb,oBAAC,QAAK,UAAU,sDACb,4BAAaW,EAAW,gBAAgB,EAC3C,KACA,OAAC,QAAK,UAAU,sDACb,SAAAX,EAAK,YAAc,eACtB,GACF,GACF,KACA,OAAC,OAAI,UAAU,2BAA2B,KAC1C,QAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCACZ,SAAAA,EAAK,iBAAmB,cAC3B,KACA,QAAC,OAAI,UAAU,2BACb,oBAAC,QAAK,UAAU,sDACb,4BAAaW,EAAW,gBAAkB,CAAC,EAC9C,KACA,OAAC,QAAK,UAAU,sDACb,SAAAX,EAAK,YAAc,eACtB,GACF,GACF,GACF,GAEJ,KAEA,QAAC,OAAI,UAAU,2BACZ,UAAAA,EAAK,aACJ,OAAC,KAAE,UAAU,wCAAyC,SAAAA,EAAK,SAAS,KAGtE,OAAC,OAAI,UAAU,gBACZ,SAAAoB,EAAK,IAAI,CAACC,EAAMK,OACf,QAAC,OAAc,UAAU,qBACtB,UAAAA,EAAM,MAAK,OAAC,OAAI,UAAU,kDAAkD,KAC7E,QAAC,OAAI,aAAW,EAAAD,YAAG,+BAAgCJ,EAAK,UAAY,YAAY,EAC9E,oBAACzB,EAAA,CAAS,GAAIyB,EAAK,GAAI,UAAU,uBAAuB,KACxD,QAAC,OAAI,UAAU,SACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAA,EAAK,MAAM,EAClEA,EAAK,gBACJ,OAAC,OAAI,UAAU,iDAAkD,SAAAA,EAAK,YAAY,GAEtF,EACC,CAACA,EAAK,UAAYA,EAAK,QACtB,OAAC,KACC,KAAMA,EAAK,KACX,OAAO,SACP,IAAI,sBACJ,aAAW,EAAAI,YAAG,0HAA2HV,EAAU,gBAAkB,cAAc,EAElL,SAAAM,EAAK,YACR,KAEA,OAAC,UACC,aAAW,EAAAI,YACT,6GACAJ,EAAK,SAAW,eAAiB,eACjCN,EAAU,gBAAkB,cAC9B,EACA,SAAUM,EAAK,SACf,QAAUA,EAAK,SAA0B,OAAfA,EAAK,QAE9B,SAAAA,EAAK,YACR,GAEJ,IAhCQK,CAiCV,CACD,EACH,GACF,GACF,CAEJ,CAEA,SAASF,EAAoB3B,EAAyBG,EAA+B,CACnF,OAAQH,EAAI,CACV,KAAK,sBAAoB,SAAU,OAAOG,EAAK,SAC/C,KAAK,sBAAoB,gBAAiB,OAAOA,EAAK,qBACtD,KAAK,sBAAoB,UAAW,OAAOA,EAAK,eAChD,KAAK,sBAAoB,KAAM,OAAOA,EAAK,OAC7C,CACF,CAEA,IAAOhB,EAAQe",
6
+ "names": ["EarnCredits_exports", "__export", "EarnCredits_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_lib", "import_provider", "import_viewStack", "import_useSubscribed", "import_type", "import_icons", "import_utils", "import_constants", "TaskIcon", "id", "className", "EarnCredits", "copy", "onClose", "isSubscribeSuccess", "isActivateSuccess", "isProfileCompleteSuccess", "onSubscribeSuccess", "onActivateSuccess", "onProfileCompleteSuccess", "profile", "openSignUpPopup", "alpcConfig", "creditInfo", "pushView", "locale", "brand", "rounded", "isLogin", "isSubscribed", "profileCompleted", "taskStates", "list", "item", "state", "buttonLabel", "getNotFinishedLabel", "cn", "idx"]
7
+ }
@@ -0,0 +1,13 @@
1
+ type ReferralDashboardResponse = {
2
+ data: {
3
+ cash_available: number;
4
+ cash_pending: number;
5
+ };
6
+ code: number;
7
+ msg: string;
8
+ };
9
+ export declare function useReferralDashboard({ enabled, locale }: {
10
+ enabled: boolean;
11
+ locale?: string;
12
+ }): import("swr/mutation").SWRMutationResponse<ReferralDashboardResponse, Error, string | null, never>;
13
+ export {};
@@ -0,0 +1,2 @@
1
+ "use strict";var i=Object.create;var s=Object.defineProperty;var u=Object.getOwnPropertyDescriptor;var p=Object.getOwnPropertyNames;var b=Object.getPrototypeOf,d=Object.prototype.hasOwnProperty;var c=(e,r)=>{for(var n in r)s(e,n,{get:r[n],enumerable:!0})},t=(e,r,n,o)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of p(r))!d.call(e,a)&&a!==n&&s(e,a,{get:()=>r[a],enumerable:!(o=u(r,a))||o.enumerable});return e};var h=(e,r,n)=>(n=e!=null?i(b(e)):{},t(r||!e||!e.__esModule?s(n,"default",{value:e,enumerable:!0}):n,e)),f=e=>t(s({},"__esModule",{value:!0}),e);var m={};c(m,{useReferralDashboard:()=>g});module.exports=f(m);var l=h(require("swr/mutation"));function g({enabled:e,locale:r=""}){return(0,l.default)(e?"/api/multipass/mktsrv/v1/referral/dashboard/info":null,async n=>(await fetch(n,{method:"POST",headers:{"Content-Type":"application/json","current-language":r},body:JSON.stringify({channel:"web"})})).json())}
2
+ //# sourceMappingURL=useReferralDashboard.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/components/memberPopup/panels/Referral/hooks/useReferralDashboard.ts"],
4
+ "sourcesContent": ["import useSWRMutation from 'swr/mutation'\n\ntype ReferralDashboardResponse = {\n data: {\n cash_available: number\n cash_pending: number\n }\n code: number\n msg: string\n}\n\nexport function useReferralDashboard({ enabled, locale = '' }: { enabled: boolean; locale?: string }) {\n return useSWRMutation<ReferralDashboardResponse, Error, string | null>(\n enabled ? '/api/multipass/mktsrv/v1/referral/dashboard/info' : null,\n async (url: string) => {\n const response = await fetch(url, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n },\n body: JSON.stringify({ channel: 'web' }),\n })\n return response.json()\n }\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,0BAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAA2B,2BAWpB,SAASF,EAAqB,CAAE,QAAAG,EAAS,OAAAC,EAAS,EAAG,EAA0C,CACpG,SAAO,EAAAC,SACLF,EAAU,mDAAqD,KAC/D,MAAOG,IACY,MAAM,MAAMA,EAAK,CAChC,OAAQ,OACR,QAAS,CACP,eAAgB,mBAChB,mBAAoBF,CACtB,EACA,KAAM,KAAK,UAAU,CAAE,QAAS,KAAM,CAAC,CACzC,CAAC,GACe,KAAK,CAEzB,CACF",
6
+ "names": ["useReferralDashboard_exports", "__export", "useReferralDashboard", "__toCommonJS", "import_mutation", "enabled", "locale", "useSWRMutation", "url"]
7
+ }
@@ -0,0 +1,12 @@
1
+ export type ReferralRewardOverviewResponse = {
2
+ data: {
3
+ data: {
4
+ available: number;
5
+ pending: number;
6
+ };
7
+ };
8
+ };
9
+ export declare function useReferralOverview(): {
10
+ isLoading: boolean;
11
+ data?: ReferralRewardOverviewResponse;
12
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";var v=Object.create;var n=Object.defineProperty;var w=Object.getOwnPropertyDescriptor;var f=Object.getOwnPropertyNames;var R=Object.getPrototypeOf,m=Object.prototype.hasOwnProperty;var g=(e,r)=>{for(var a in r)n(e,a,{get:r[a],enumerable:!0})},i=(e,r,a,s)=>{if(r&&typeof r=="object"||typeof r=="function")for(let o of f(r))!m.call(e,o)&&o!==a&&n(e,o,{get:()=>r[o],enumerable:!(s=w(r,o))||s.enumerable});return e};var h=(e,r,a)=>(a=e!=null?v(R(e)):{},i(r||!e||!e.__esModule?n(a,"default",{value:e,enumerable:!0}):a,e)),b=e=>i(n({},"__esModule",{value:!0}),e);var y={};g(y,{useReferralOverview:()=>O});module.exports=b(y);var l=h(require("swr")),p=require("../../../context/provider");function O(){const{profile:e,alpcConfig:r}=(0,p.useMemberPopupContext)(),s=!!e?"/api/multipass/mktsrv/v1/referral/reward/overview/cash":null,o=async d=>{const t=await fetch(d,{method:"GET",headers:{"Content-Type":"application/json","current-language":r.locale}});if(!t.ok)throw new Error(`HTTP error! status: ${t.status}`);return t.json()},{data:c,isLoading:u}=(0,l.default)(s,o,{revalidateOnFocus:!1});return{isLoading:u,data:c}}
2
+ //# sourceMappingURL=useReferralOverview.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../../src/components/memberPopup/panels/Referral/hooks/useReferralOverview.ts"],
4
+ "sourcesContent": ["import useSWR from 'swr'\nimport { useMemberPopupContext } from '../../../context/provider'\n\nexport type ReferralRewardOverviewResponse = {\n data: {\n data: {\n available: number\n pending: number\n }\n }\n}\n\nexport function useReferralOverview(): {\n isLoading: boolean\n data?: ReferralRewardOverviewResponse\n} {\n const { profile, alpcConfig } = useMemberPopupContext()\n const isLogin = !!profile\n\n const swrKey = isLogin ? `/api/multipass/mktsrv/v1/referral/reward/overview/cash` : null\n\n const swrFetcher = async (url: string) => {\n const response = await fetch(url, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': alpcConfig.locale,\n },\n })\n if (!response.ok) {\n throw new Error(`HTTP error! status: ${response.status}`)\n }\n return response.json()\n }\n\n const { data, isLoading } = useSWR<ReferralRewardOverviewResponse>(swrKey, swrFetcher, {\n revalidateOnFocus: false,\n })\n\n return { isLoading, data }\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,yBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAmB,kBACnBC,EAAsC,qCAW/B,SAASH,GAGd,CACA,KAAM,CAAE,QAAAI,EAAS,WAAAC,CAAW,KAAI,yBAAsB,EAGhDC,EAFU,CAAC,CAACF,EAEO,yDAA2D,KAE9EG,EAAa,MAAOC,GAAgB,CACxC,MAAMC,EAAW,MAAM,MAAMD,EAAK,CAChC,OAAQ,MACR,QAAS,CACP,eAAgB,mBAChB,mBAAoBH,EAAW,MACjC,CACF,CAAC,EACD,GAAI,CAACI,EAAS,GACZ,MAAM,IAAI,MAAM,uBAAuBA,EAAS,MAAM,EAAE,EAE1D,OAAOA,EAAS,KAAK,CACvB,EAEM,CAAE,KAAAC,EAAM,UAAAC,CAAU,KAAI,EAAAC,SAAuCN,EAAQC,EAAY,CACrF,kBAAmB,EACrB,CAAC,EAED,MAAO,CAAE,UAAAI,EAAW,KAAAD,CAAK,CAC3B",
6
+ "names": ["useReferralOverview_exports", "__export", "useReferralOverview", "__toCommonJS", "import_swr", "import_provider", "profile", "alpcConfig", "swrKey", "swrFetcher", "url", "response", "data", "isLoading", "useSWR"]
7
+ }
@@ -0,0 +1,7 @@
1
+ import type { ReferralCopy } from '../../type';
2
+ type Props = {
3
+ copy: ReferralCopy;
4
+ onClose: () => void;
5
+ };
6
+ declare function Referral({ copy, onClose }: Props): import("react/jsx-runtime").JSX.Element;
7
+ export default Referral;
@@ -0,0 +1,2 @@
1
+ "use strict";var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},L=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of b(t))!w.call(e,l)&&l!==o&&d(e,l,{get:()=>t[l],enumerable:!(r=N(t,l))||r.enumerable});return e};var T=e=>L(d({},"__esModule",{value:!0}),e);var M={};C(M,{default:()=>D});module.exports=T(M);var a=require("react/jsx-runtime"),m=require("@anker-in/headless-ui"),n=require("@anker-in/lib"),g=require("../../context/provider"),u=require("./hooks/useReferralOverview"),x=require("../../../credits/context/utils"),h=require("../../../../constants");function P({copy:e,onClose:t}){const{profile:o,alpcConfig:r}=(0,g.useMemberPopupContext)(),l=!!o,{brand:v,currencyCode:f="USD"}=(0,n.useHeadlessContext)(),i=h.ROUNDED_BRANDS.includes(v),{data:s}=(0,u.useReferralOverview)(),c=s?.data?.data?.available??0,p=s?.data?.data?.pending??0;return console.log("cashAvailable",c),console.log("cashPending",p),console.log("data",s),console.log("data.data",s?.data),(0,a.jsxs)("div",{className:"flex flex-col gap-[12px]",children:[e.title&&(0,a.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),l&&(0,a.jsxs)("div",{className:(0,n.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",i?"rounded-[8px]":"rounded-none"),children:[(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashAvailableLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:c,currencyCode:f,locale:r.locale})})]}),(0,a.jsx)("div",{className:"h-full w-px self-stretch bg-[#dadce0]"}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashPendingLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:p,currencyCode:f,locale:r.locale})})]})]}),(e.howToTitle||e.howToDescription)&&(0,a.jsxs)("div",{className:"flex flex-col gap-[8px]",children:[e.howToTitle&&(0,a.jsx)("h3",{className:"text-[20px] font-[700] leading-[1.2] text-[#080a0f]",children:e.howToTitle}),e.howToDescription&&(0,a.jsx)("p",{className:"text-[14px] leading-[1.5] text-[#1e2024]",children:e.howToDescription}),e.learnMoreLabel&&e.learnMoreUrl&&(0,a.jsxs)("a",{href:e.learnMoreUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline",children:[e.learnMoreLabel,(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,a.jsx)("path",{d:"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z",fill:"#080A0F"})})]})]}),e.image?.url&&(0,a.jsx)(m.Picture,{source:e.image.url,alt:e.image.alt??"",className:(0,n.classNames)("h-[100px] w-full object-cover",i?"rounded-[8px]":"rounded-none")}),e.ctaButton&&(0,a.jsx)("a",{href:e.ctaUrl??"#",target:"_blank",rel:"noopener noreferrer",className:(0,n.classNames)("block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white",i?"rounded-[4px]":"rounded-none"),children:e.ctaButton})]})}var D=P;
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../../../src/components/memberPopup/panels/Referral/index.tsx"],
4
+ "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useReferralOverview } from './hooks/useReferralOverview'\nimport { formatPrice } from '../../../credits/context/utils'\n\nimport type { ReferralCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: ReferralCopy\n onClose: () => void\n}\n\nfunction Referral({ copy, onClose }: Props) {\n const { profile, alpcConfig } = useMemberPopupContext()\n const isLogin = !!profile\n const { brand, currencyCode = 'USD' as string } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const { data } = useReferralOverview()\n\n const cashAvailable = data?.data?.data?.available ?? 0\n const cashPending = data?.data?.data?.pending ?? 0\n\n console.log('cashAvailable', cashAvailable)\n console.log('cashPending', cashPending)\n console.log('data', data)\n console.log('data.data', data?.data)\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\n\n {isLogin && (\n <div\n className={cn(\n 'flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]',\n rounded ? 'rounded-[8px]' : 'rounded-none'\n )}\n >\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.cashAvailableLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashAvailable, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n <div className=\"h-full w-px self-stretch bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.cashPendingLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashPending, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n </div>\n )}\n\n {(copy.howToTitle || copy.howToDescription) && (\n <div className=\"flex flex-col gap-[8px]\">\n {copy.howToTitle && (\n <h3 className=\"text-[20px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.howToTitle}</h3>\n )}\n {copy.howToDescription && <p className=\"text-[14px] leading-[1.5] text-[#1e2024]\">{copy.howToDescription}</p>}\n {copy.learnMoreLabel && copy.learnMoreUrl && (\n <a\n href={copy.learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline\"\n >\n {copy.learnMoreLabel}\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z\"\n fill=\"#080A0F\"\n />\n </svg>\n </a>\n )}\n </div>\n )}\n\n {copy.image?.url && (\n <Picture\n source={copy.image.url}\n alt={copy.image.alt ?? ''}\n className={cn('h-[100px] w-full object-cover', rounded ? 'rounded-[8px]' : 'rounded-none')}\n />\n )}\n\n {copy.ctaButton && (\n <a\n href={copy.ctaUrl ?? '#'}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n >\n {copy.ctaButton}\n </a>\n )}\n </div>\n )\n}\n\nexport default Referral\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgCqB,IAAAI,EAAA,6BAhCrBC,EAAwB,iCACxBC,EAAqD,yBACrDC,EAAsC,kCACtCC,EAAoC,uCACpCC,EAA4B,0CAG5BC,EAA+B,iCAO/B,SAASC,EAAS,CAAE,KAAAC,EAAM,QAAAC,CAAQ,EAAU,CAC1C,KAAM,CAAE,QAAAC,EAAS,WAAAC,CAAW,KAAI,yBAAsB,EAChDC,EAAU,CAAC,CAACF,EACZ,CAAE,MAAAG,EAAO,aAAAC,EAAe,KAAgB,KAAI,sBAAmB,EAC/DC,EAAU,iBAAe,SAASF,CAAK,EAEvC,CAAE,KAAAG,CAAK,KAAI,uBAAoB,EAE/BC,EAAgBD,GAAM,MAAM,MAAM,WAAa,EAC/CE,EAAcF,GAAM,MAAM,MAAM,SAAW,EAEjD,eAAQ,IAAI,gBAAiBC,CAAa,EAC1C,QAAQ,IAAI,cAAeC,CAAW,EACtC,QAAQ,IAAI,OAAQF,CAAI,EACxB,QAAQ,IAAI,YAAaA,GAAM,IAAI,KAGjC,QAAC,OAAI,UAAU,2BACZ,UAAAR,EAAK,UAAS,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,MAAM,EAE9FI,MACC,QAAC,OACC,aAAW,EAAAO,YACT,qDACAJ,EAAU,gBAAkB,cAC9B,EAEA,qBAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAP,EAAK,mBAAmB,KAChF,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQS,EAAe,aAAAH,EAAc,OAAQH,EAAW,MAAO,CAAC,EACjF,GACF,KACA,OAAC,OAAI,UAAU,wCAAwC,KACvD,QAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAH,EAAK,iBAAiB,KAC9E,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQU,EAAa,aAAAJ,EAAc,OAAQH,EAAW,MAAO,CAAC,EAC/E,GACF,GACF,GAGAH,EAAK,YAAcA,EAAK,sBACxB,QAAC,OAAI,UAAU,0BACZ,UAAAA,EAAK,eACJ,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,WAAW,EAEtFA,EAAK,qBAAoB,OAAC,KAAE,UAAU,2CAA4C,SAAAA,EAAK,iBAAiB,EACxGA,EAAK,gBAAkBA,EAAK,iBAC3B,QAAC,KACC,KAAMA,EAAK,aACX,OAAO,SACP,IAAI,sBACJ,UAAU,8EAET,UAAAA,EAAK,kBACN,OAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,mBAAC,QACC,EAAE,kUACF,KAAK,UACP,EACF,GACF,GAEJ,EAGDA,EAAK,OAAO,QACX,OAAC,WACC,OAAQA,EAAK,MAAM,IACnB,IAAKA,EAAK,MAAM,KAAO,GACvB,aAAW,EAAAW,YAAG,gCAAiCJ,EAAU,gBAAkB,cAAc,EAC3F,EAGDP,EAAK,cACJ,OAAC,KACC,KAAMA,EAAK,QAAU,IACrB,OAAO,SACP,IAAI,sBACJ,aAAW,EAAAW,YACT,mGACAJ,EAAU,gBAAkB,cAC9B,EAEC,SAAAP,EAAK,UACR,GAEJ,CAEJ,CAEA,IAAOV,EAAQS",
6
+ "names": ["Referral_exports", "__export", "Referral_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_provider", "import_useReferralOverview", "import_utils", "import_constants", "Referral", "copy", "onClose", "profile", "alpcConfig", "isLogin", "brand", "currencyCode", "rounded", "data", "cashAvailable", "cashPending", "cn"]
7
+ }
@@ -0,0 +1,216 @@
1
+ import type { AuthCodeActivateCopy } from '../registration/authCodeActivate/type';
2
+ import type { CreditInfoResponse } from '../credits/context/response';
3
+ import type { DTC_TASK_TYPE } from '../credits/context/const';
4
+ export type { AuthCodeActivateCopy };
5
+ export declare enum MemberPopupPanelType {
6
+ EarnCredits = "EARN_CREDITS",
7
+ ConsumeCredits = "CONSUME_CREDITS",
8
+ Referral = "REFERRAL",
9
+ CompleteProfile = "COMPLETE_PROFILE",
10
+ Subscribe = "SUBSCRIBE",
11
+ SubscribeEmail = "SUBSCRIBE_EMAIL",
12
+ RedeemCoupon = "REDEEM_COUPON",
13
+ Activate = "ACTIVATE"
14
+ }
15
+ export declare enum MemberPopupActionType {
16
+ ExternalLink = "EXTERNAL_LINK",
17
+ OpenEarnCredits = "OPEN_EARN_CREDITS",
18
+ OpenConsumeCredits = "OPEN_CONSUME_CREDITS",
19
+ OpenReferral = "OPEN_REFERRAL",
20
+ OpenSubscribe = "OPEN_SUBSCRIBE"
21
+ }
22
+ export declare enum EarnCreditsTaskType {
23
+ Activate = "activate",
24
+ CompleteProfile = "completeProfile",
25
+ Subscribe = "subscribe",
26
+ Shop = "shop"
27
+ }
28
+ export declare enum ConsumeCreditsItemType {
29
+ Coupon = "COUPON",
30
+ RedeemAndBuy = "REDEEM_AND_BUY"
31
+ }
32
+ export type MemberPopupLink = {
33
+ type: MemberPopupActionType;
34
+ label: string;
35
+ url?: string;
36
+ };
37
+ export type MemberPopupItem = {
38
+ title: string;
39
+ description?: string;
40
+ links: MemberPopupLink[];
41
+ };
42
+ export declare enum MemberPopupPageScope {
43
+ /** 全局展示 */
44
+ Global = "GLOBAL",
45
+ /** 仅在特定页面展示 */
46
+ Include = "INCLUDE",
47
+ /** 在特定页面不展示 */
48
+ Exclude = "EXCLUDE"
49
+ }
50
+ export type MemberPopupPageConfig = {
51
+ scope: MemberPopupPageScope;
52
+ /** 页面路径列表,支持精确匹配和前缀匹配(如 "/products" 会匹配 "/products/xxx") */
53
+ pages: string[];
54
+ };
55
+ export type MemberPopupCopy = {
56
+ triggerImg: {
57
+ url: string;
58
+ alt?: string;
59
+ };
60
+ title?: string;
61
+ subtitle?: string;
62
+ list: MemberPopupItem[];
63
+ footer?: {
64
+ loginHint: string;
65
+ loginLabel: string;
66
+ joinLabel: string;
67
+ shopLabel: string;
68
+ shopUrl?: string;
69
+ };
70
+ subscribe?: SubscribeModalCopy;
71
+ earnCredits?: EarnCreditsCopy;
72
+ consumeCredits?: ConsumeCreditsopy;
73
+ referral?: ReferralCopy;
74
+ /** 页面覆盖范围配置,默认全局展示 */
75
+ pageConfig?: MemberPopupPageConfig;
76
+ };
77
+ export type EarnCreditsCopy = {
78
+ title?: string;
79
+ subtitle?: string;
80
+ balanceLabel?: string;
81
+ comingSoonLabel?: string;
82
+ creditUnit?: string;
83
+ joinNow: string;
84
+ completed: string;
85
+ activate: string;
86
+ completeProfileLabel: string;
87
+ subscribeLabel: string;
88
+ shopNow: string;
89
+ goShopLink?: string;
90
+ list: {
91
+ id: EarnCreditsTaskType;
92
+ title: string;
93
+ description: string;
94
+ credits?: string;
95
+ }[];
96
+ authCodeActivate: AuthCodeActivateCopy;
97
+ completeProfile: CompleteProfileCopy;
98
+ subscribe: SubscribeModalCopy;
99
+ };
100
+ export type CompleteProfileCopy = {
101
+ title: string;
102
+ subtitle?: string;
103
+ firstName: string;
104
+ lastName: string;
105
+ email: string;
106
+ phone: string;
107
+ birthday: string;
108
+ country: string;
109
+ save: string;
110
+ cancel: string;
111
+ edit: string;
112
+ required: string;
113
+ };
114
+ export type SubscribeModalCopy = {
115
+ title: string;
116
+ desc?: string;
117
+ placeholder: string;
118
+ policy?: string;
119
+ successTips?: string;
120
+ dealsType?: string;
121
+ buttonLabel?: string;
122
+ single_brand_subscribe?: boolean;
123
+ genre?: string;
124
+ sub_brand_type?: string;
125
+ };
126
+ export type ConsumeCreditsopy = {
127
+ title?: string;
128
+ subtitle?: string;
129
+ soldOut: string;
130
+ unlockRewards: string;
131
+ btnRedeem: string;
132
+ insufficientCredits?: string;
133
+ pointUnit?: string;
134
+ off?: string;
135
+ imageMapping?: {
136
+ [key in ConsumeCreditsItemType]?: {
137
+ url: string;
138
+ };
139
+ };
140
+ list: ConsumeCreditsItem[];
141
+ redeemModal: RedeemCouponModalCopy;
142
+ creditsPage?: {
143
+ label: string;
144
+ url: string;
145
+ };
146
+ };
147
+ export type ConsumeCreditsItem = {
148
+ redeemId: string | number;
149
+ title: string;
150
+ description?: string;
151
+ image: {
152
+ url: string;
153
+ alt?: string;
154
+ };
155
+ type: ConsumeCreditsItemType;
156
+ product?: {
157
+ handle: string;
158
+ sku: string;
159
+ };
160
+ price?: number;
161
+ value?: string;
162
+ rules?: string[];
163
+ };
164
+ export type RedeemCouponModalCopy = {
165
+ confirmTitle: string;
166
+ confirmButton: string;
167
+ commonError: string;
168
+ redeemLimitError: string;
169
+ inventoryNotEnough: string;
170
+ creditsNotEnough: string;
171
+ crossSiteError: string;
172
+ successTitle: string;
173
+ successDesc: string;
174
+ successButton: string;
175
+ successButtonUrl?: string;
176
+ };
177
+ export type ReferralCopy = {
178
+ title?: string;
179
+ description?: string;
180
+ cashAvailableLabel: string;
181
+ cashPendingLabel: string;
182
+ creditUnit?: string;
183
+ referralLinksLabel?: string;
184
+ referralLinkBaseUrl?: string;
185
+ copyLabel?: string;
186
+ copiedLabel?: string;
187
+ howToTitle?: string;
188
+ howToDescription?: string;
189
+ learnMoreLabel?: string;
190
+ learnMoreUrl?: string;
191
+ image?: {
192
+ url: string;
193
+ alt?: string;
194
+ };
195
+ ctaButton: string;
196
+ ctaUrl?: string;
197
+ loginTitle?: string;
198
+ loginDescription?: string;
199
+ loginCtaLabel?: string;
200
+ };
201
+ export type AlpcConfig = {
202
+ brand: string;
203
+ locale: string;
204
+ appName: string;
205
+ apiBaseUrl?: string;
206
+ };
207
+ export type MemberPopupContextValue = {
208
+ profile: any;
209
+ isLoadingProfile: boolean;
210
+ creditInfo?: CreditInfoResponse;
211
+ fetchCreditInfo: (userId: string) => void;
212
+ openSignUpPopup: () => void;
213
+ openSignInPopup: () => void;
214
+ taskIdToTypeMapping?: Record<string, DTC_TASK_TYPE>;
215
+ alpcConfig: AlpcConfig;
216
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var m=(r,i)=>{for(var s in i)g(r,s,{get:i[s],enumerable:!0})},E=(r,i,s,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of u(i))!b.call(r,t)&&t!==s&&g(r,t,{get:()=>i[t],enumerable:!(n=C(i,t))||n.enumerable});return r};var f=r=>E(g({},"__esModule",{value:!0}),r);var L={};m(L,{ConsumeCreditsItemType:()=>c,EarnCreditsTaskType:()=>a,MemberPopupActionType:()=>p,MemberPopupPageScope:()=>d,MemberPopupPanelType:()=>l});module.exports=f(L);var l=(e=>(e.EarnCredits="EARN_CREDITS",e.ConsumeCredits="CONSUME_CREDITS",e.Referral="REFERRAL",e.CompleteProfile="COMPLETE_PROFILE",e.Subscribe="SUBSCRIBE",e.SubscribeEmail="SUBSCRIBE_EMAIL",e.RedeemCoupon="REDEEM_COUPON",e.Activate="ACTIVATE",e))(l||{}),p=(o=>(o.ExternalLink="EXTERNAL_LINK",o.OpenEarnCredits="OPEN_EARN_CREDITS",o.OpenConsumeCredits="OPEN_CONSUME_CREDITS",o.OpenReferral="OPEN_REFERRAL",o.OpenSubscribe="OPEN_SUBSCRIBE",o))(p||{}),a=(t=>(t.Activate="activate",t.CompleteProfile="completeProfile",t.Subscribe="subscribe",t.Shop="shop",t))(a||{}),c=(s=>(s.Coupon="COUPON",s.RedeemAndBuy="REDEEM_AND_BUY",s))(c||{}),d=(n=>(n.Global="GLOBAL",n.Include="INCLUDE",n.Exclude="EXCLUDE",n))(d||{});
2
+ //# sourceMappingURL=type.js.map