@anker-in/campaign-ui 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (327) hide show
  1. package/dist/cjs/components/chat/index.js +1 -1
  2. package/dist/cjs/components/chat/index.js.map +3 -3
  3. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  4. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js.map +2 -2
  5. package/dist/cjs/components/credits/context/hooks/useSubscribed.js +1 -1
  6. package/dist/cjs/components/credits/context/hooks/useSubscribed.js.map +3 -3
  7. package/dist/cjs/components/credits/context/provider.d.ts +8 -33
  8. package/dist/cjs/components/credits/context/provider.js +1 -1
  9. package/dist/cjs/components/credits/context/provider.js.map +3 -3
  10. package/dist/cjs/components/credits/creditsBanner/index.d.ts +16 -16
  11. package/dist/cjs/components/credits/creditsBanner/index.js +1 -1
  12. package/dist/cjs/components/credits/creditsBanner/index.js.map +2 -2
  13. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +1 -1
  14. package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +3 -3
  15. package/dist/cjs/components/credits/creditsBenefits/index.d.ts +7 -8
  16. package/dist/cjs/components/credits/creditsBenefits/index.js +3 -3
  17. package/dist/cjs/components/credits/creditsBenefits/index.js.map +3 -3
  18. package/dist/cjs/components/credits/creditsCash/CreditsCash.d.ts +4 -0
  19. package/dist/cjs/components/credits/creditsCash/CreditsCash.js +2 -0
  20. package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +7 -0
  21. package/dist/cjs/components/credits/creditsCash/RedeemableItem.d.ts +1 -5
  22. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
  23. package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  24. package/dist/cjs/components/credits/creditsCash/index.d.ts +2 -11
  25. package/dist/cjs/components/credits/creditsCash/index.js +1 -1
  26. package/dist/cjs/components/credits/creditsCash/index.js.map +4 -4
  27. package/dist/cjs/components/credits/creditsCash/type.d.ts +1 -3
  28. package/dist/cjs/components/credits/creditsCash/type.js +1 -1
  29. package/dist/cjs/components/credits/creditsCash/type.js.map +1 -1
  30. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  31. package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
  32. package/dist/cjs/components/credits/creditsFaq/index.d.ts +2 -2
  33. package/dist/cjs/components/credits/creditsFaq/index.js +1 -1
  34. package/dist/cjs/components/credits/creditsFaq/index.js.map +3 -3
  35. package/dist/cjs/components/credits/creditsInfoCard/index.d.ts +9 -15
  36. package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
  37. package/dist/cjs/components/credits/creditsInfoCard/index.js.map +3 -3
  38. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  39. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
  40. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  41. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
  42. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  43. package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
  44. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.d.ts +4 -0
  45. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +2 -0
  46. package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +7 -0
  47. package/dist/cjs/components/credits/creditsRedeemList/NonProductValue.d.ts +1 -3
  48. package/dist/cjs/components/credits/creditsRedeemList/NonProductValue.js +1 -1
  49. package/dist/cjs/components/credits/creditsRedeemList/NonProductValue.js.map +3 -3
  50. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  51. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
  52. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  53. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  54. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
  55. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +3 -3
  56. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js +1 -1
  57. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js.map +3 -3
  58. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  59. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +3 -3
  60. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  61. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
  62. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  63. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
  64. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  65. package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  66. package/dist/cjs/components/credits/creditsRedeemList/index.d.ts +2 -12
  67. package/dist/cjs/components/credits/creditsRedeemList/index.js +1 -1
  68. package/dist/cjs/components/credits/creditsRedeemList/index.js.map +4 -4
  69. package/dist/cjs/components/credits/creditsRedeemList/type.d.ts +1 -15
  70. package/dist/cjs/components/credits/creditsRedeemList/type.js +1 -1
  71. package/dist/cjs/components/credits/creditsRedeemList/type.js.map +1 -1
  72. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.d.ts +2 -0
  73. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +2 -0
  74. package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +7 -0
  75. package/dist/cjs/components/credits/creditsWaysToGetCredits/index.d.ts +2 -2
  76. package/dist/cjs/components/credits/creditsWaysToGetCredits/index.js +1 -1
  77. package/dist/cjs/components/credits/creditsWaysToGetCredits/index.js.map +4 -4
  78. package/dist/cjs/components/credits/creditsWaysToGetCredits/type.d.ts +5 -15
  79. package/dist/cjs/components/credits/creditsWaysToGetCredits/type.js +1 -1
  80. package/dist/cjs/components/credits/creditsWaysToGetCredits/type.js.map +2 -2
  81. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.d.ts +11 -2
  82. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js +1 -1
  83. package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js.map +3 -3
  84. package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
  85. package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +3 -3
  86. package/dist/cjs/components/credits/modal/activitiesModal.js +1 -1
  87. package/dist/cjs/components/credits/modal/activitiesModal.js.map +3 -3
  88. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  89. package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  90. package/dist/cjs/components/credits/modal/modalContainer.js +1 -1
  91. package/dist/cjs/components/credits/modal/modalContainer.js.map +3 -3
  92. package/dist/cjs/components/credits/modal/rulesModal.js +1 -1
  93. package/dist/cjs/components/credits/modal/rulesModal.js.map +3 -3
  94. package/dist/cjs/components/credits/modal/subscribeModal.d.ts +15 -0
  95. package/dist/cjs/components/credits/modal/subscribeModal.js +2 -0
  96. package/dist/cjs/components/credits/modal/subscribeModal.js.map +7 -0
  97. package/dist/cjs/components/credits/modal/tip.js +1 -1
  98. package/dist/cjs/components/credits/modal/tip.js.map +3 -3
  99. package/dist/cjs/components/credits/type.d.ts +23 -4
  100. package/dist/cjs/components/credits/type.js +1 -1
  101. package/dist/cjs/components/credits/type.js.map +1 -1
  102. package/dist/cjs/components/index.d.ts +1 -0
  103. package/dist/cjs/components/index.js +1 -1
  104. package/dist/cjs/components/index.js.map +2 -2
  105. package/dist/cjs/components/registration/authCodeActivate/Message.js +1 -1
  106. package/dist/cjs/components/registration/authCodeActivate/Message.js.map +2 -2
  107. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  108. package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
  109. package/dist/cjs/components/registration/authCodeActivate/type.d.ts +1 -2
  110. package/dist/cjs/components/registration/authCodeActivate/type.js +1 -1
  111. package/dist/cjs/components/registration/authCodeActivate/type.js.map +1 -1
  112. package/dist/cjs/components/registration/context/index.d.ts +1 -0
  113. package/dist/cjs/components/registration/context/index.js +2 -0
  114. package/dist/cjs/components/registration/context/index.js.map +7 -0
  115. package/dist/cjs/components/registration/context/provider.d.ts +27 -0
  116. package/dist/cjs/components/registration/context/provider.js +2 -0
  117. package/dist/cjs/components/registration/context/provider.js.map +7 -0
  118. package/dist/cjs/components/registration/index.d.ts +1 -0
  119. package/dist/cjs/components/registration/index.js +1 -1
  120. package/dist/cjs/components/registration/index.js.map +2 -2
  121. package/dist/cjs/components/registration/modalContainer.d.ts +1 -2
  122. package/dist/cjs/components/registration/modalContainer.js +1 -1
  123. package/dist/cjs/components/registration/modalContainer.js.map +3 -3
  124. package/dist/cjs/helpers/fetcher.d.ts +1 -1
  125. package/dist/cjs/helpers/fetcher.js +1 -1
  126. package/dist/cjs/helpers/fetcher.js.map +3 -3
  127. package/dist/cjs/helpers/index.d.ts +2 -2
  128. package/dist/cjs/helpers/index.js +1 -1
  129. package/dist/cjs/helpers/index.js.map +2 -2
  130. package/dist/cjs/index.d.ts +2 -1
  131. package/dist/cjs/index.js +1 -1
  132. package/dist/cjs/index.js.map +2 -2
  133. package/dist/cjs/templates/credits.d.ts +59 -0
  134. package/dist/cjs/templates/credits.js +2 -0
  135. package/dist/cjs/templates/credits.js.map +7 -0
  136. package/dist/cjs/templates/index.d.ts +1 -0
  137. package/dist/cjs/templates/index.js +2 -0
  138. package/dist/cjs/templates/index.js.map +7 -0
  139. package/dist/esm/components/chat/index.js +1 -1
  140. package/dist/esm/components/chat/index.js.map +2 -2
  141. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  142. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js.map +2 -2
  143. package/dist/esm/components/credits/context/hooks/useSubscribed.js +1 -1
  144. package/dist/esm/components/credits/context/hooks/useSubscribed.js.map +3 -3
  145. package/dist/esm/components/credits/context/provider.d.ts +8 -33
  146. package/dist/esm/components/credits/context/provider.js +1 -1
  147. package/dist/esm/components/credits/context/provider.js.map +3 -3
  148. package/dist/esm/components/credits/creditsBanner/index.d.ts +16 -16
  149. package/dist/esm/components/credits/creditsBanner/index.js +1 -1
  150. package/dist/esm/components/credits/creditsBanner/index.js.map +2 -2
  151. package/dist/esm/components/credits/creditsBenefits/benefitItem.js +1 -1
  152. package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +3 -3
  153. package/dist/esm/components/credits/creditsBenefits/index.d.ts +7 -8
  154. package/dist/esm/components/credits/creditsBenefits/index.js +3 -3
  155. package/dist/esm/components/credits/creditsBenefits/index.js.map +2 -2
  156. package/dist/esm/components/credits/creditsCash/CreditsCash.d.ts +4 -0
  157. package/dist/esm/components/credits/creditsCash/CreditsCash.js +2 -0
  158. package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +7 -0
  159. package/dist/esm/components/credits/creditsCash/RedeemableItem.d.ts +1 -5
  160. package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
  161. package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
  162. package/dist/esm/components/credits/creditsCash/index.d.ts +2 -11
  163. package/dist/esm/components/credits/creditsCash/index.js +1 -1
  164. package/dist/esm/components/credits/creditsCash/index.js.map +4 -4
  165. package/dist/esm/components/credits/creditsCash/type.d.ts +1 -3
  166. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
  167. package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js.map +2 -2
  168. package/dist/esm/components/credits/creditsFaq/index.d.ts +2 -2
  169. package/dist/esm/components/credits/creditsFaq/index.js +1 -1
  170. package/dist/esm/components/credits/creditsFaq/index.js.map +3 -3
  171. package/dist/esm/components/credits/creditsInfoCard/index.d.ts +9 -15
  172. package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
  173. package/dist/esm/components/credits/creditsInfoCard/index.js.map +3 -3
  174. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
  175. package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
  176. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
  177. package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
  178. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
  179. package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
  180. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.d.ts +4 -0
  181. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +2 -0
  182. package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +7 -0
  183. package/dist/esm/components/credits/creditsRedeemList/NonProductValue.d.ts +1 -3
  184. package/dist/esm/components/credits/creditsRedeemList/NonProductValue.js +1 -1
  185. package/dist/esm/components/credits/creditsRedeemList/NonProductValue.js.map +3 -3
  186. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  187. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
  188. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  189. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  190. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
  191. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +3 -3
  192. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js +1 -1
  193. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js.map +3 -3
  194. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
  195. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +3 -3
  196. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
  197. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
  198. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  199. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
  200. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
  201. package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
  202. package/dist/esm/components/credits/creditsRedeemList/index.d.ts +2 -12
  203. package/dist/esm/components/credits/creditsRedeemList/index.js +1 -1
  204. package/dist/esm/components/credits/creditsRedeemList/index.js.map +4 -4
  205. package/dist/esm/components/credits/creditsRedeemList/type.d.ts +1 -15
  206. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.d.ts +2 -0
  207. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +2 -0
  208. package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +7 -0
  209. package/dist/esm/components/credits/creditsWaysToGetCredits/index.d.ts +2 -2
  210. package/dist/esm/components/credits/creditsWaysToGetCredits/index.js +1 -1
  211. package/dist/esm/components/credits/creditsWaysToGetCredits/index.js.map +4 -4
  212. package/dist/esm/components/credits/creditsWaysToGetCredits/type.d.ts +5 -15
  213. package/dist/esm/components/credits/creditsWaysToGetCredits/type.js.map +2 -2
  214. package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.d.ts +11 -2
  215. package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.js +1 -1
  216. package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.js.map +3 -3
  217. package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
  218. package/dist/esm/components/credits/modal/MyRewardsModal.js.map +3 -3
  219. package/dist/esm/components/credits/modal/activitiesModal.js +1 -1
  220. package/dist/esm/components/credits/modal/activitiesModal.js.map +3 -3
  221. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js +1 -1
  222. package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
  223. package/dist/esm/components/credits/modal/modalContainer.js +1 -1
  224. package/dist/esm/components/credits/modal/modalContainer.js.map +3 -3
  225. package/dist/esm/components/credits/modal/rulesModal.js +1 -1
  226. package/dist/esm/components/credits/modal/rulesModal.js.map +2 -2
  227. package/dist/esm/components/credits/modal/subscribeModal.d.ts +15 -0
  228. package/dist/esm/components/credits/modal/subscribeModal.js +2 -0
  229. package/dist/esm/components/credits/modal/subscribeModal.js.map +7 -0
  230. package/dist/esm/components/credits/modal/tip.js +1 -1
  231. package/dist/esm/components/credits/modal/tip.js.map +3 -3
  232. package/dist/esm/components/credits/type.d.ts +23 -4
  233. package/dist/esm/components/index.d.ts +1 -0
  234. package/dist/esm/components/index.js +1 -1
  235. package/dist/esm/components/index.js.map +2 -2
  236. package/dist/esm/components/registration/authCodeActivate/Message.js +1 -1
  237. package/dist/esm/components/registration/authCodeActivate/Message.js.map +2 -2
  238. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  239. package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
  240. package/dist/esm/components/registration/authCodeActivate/type.d.ts +1 -2
  241. package/dist/esm/components/registration/context/index.d.ts +1 -0
  242. package/dist/esm/components/registration/context/index.js +2 -0
  243. package/dist/esm/components/registration/context/index.js.map +7 -0
  244. package/dist/esm/components/registration/context/provider.d.ts +27 -0
  245. package/dist/esm/components/registration/context/provider.js +2 -0
  246. package/dist/esm/components/registration/context/provider.js.map +7 -0
  247. package/dist/esm/components/registration/index.d.ts +1 -0
  248. package/dist/esm/components/registration/index.js +1 -1
  249. package/dist/esm/components/registration/index.js.map +2 -2
  250. package/dist/esm/components/registration/modalContainer.d.ts +1 -2
  251. package/dist/esm/components/registration/modalContainer.js +1 -1
  252. package/dist/esm/components/registration/modalContainer.js.map +3 -3
  253. package/dist/esm/helpers/fetcher.d.ts +1 -1
  254. package/dist/esm/helpers/fetcher.js +1 -1
  255. package/dist/esm/helpers/fetcher.js.map +3 -3
  256. package/dist/esm/helpers/index.d.ts +2 -2
  257. package/dist/esm/helpers/index.js +1 -1
  258. package/dist/esm/helpers/index.js.map +2 -2
  259. package/dist/esm/index.d.ts +2 -1
  260. package/dist/esm/index.js +1 -1
  261. package/dist/esm/index.js.map +2 -2
  262. package/dist/esm/templates/credits.d.ts +59 -0
  263. package/dist/esm/templates/credits.js +2 -0
  264. package/dist/esm/templates/credits.js.map +7 -0
  265. package/dist/esm/templates/index.d.ts +1 -0
  266. package/dist/esm/templates/index.js +2 -0
  267. package/dist/esm/templates/index.js.map +7 -0
  268. package/package.json +6 -5
  269. package/src/components/chat/index.tsx +1 -1
  270. package/src/components/credits/context/hooks/useRedeemAndBuy.ts +0 -2
  271. package/src/components/credits/context/hooks/useSubscribed.ts +1 -2
  272. package/src/components/credits/context/provider.tsx +16 -20
  273. package/src/components/credits/creditsBanner/index.tsx +14 -16
  274. package/src/components/credits/creditsBenefits/benefitItem.tsx +19 -4
  275. package/src/components/credits/creditsBenefits/index.tsx +6 -10
  276. package/src/components/credits/creditsCash/{index.tsx → CreditsCash.tsx} +8 -26
  277. package/src/components/credits/creditsCash/RedeemableItem.tsx +35 -17
  278. package/src/components/credits/creditsCash/index.ts +2 -0
  279. package/src/components/credits/creditsCash/type.ts +1 -3
  280. package/src/components/credits/creditsFaq/faqItem/FaqItem.tsx +12 -12
  281. package/src/components/credits/creditsFaq/index.tsx +7 -5
  282. package/src/components/credits/creditsInfoCard/index.tsx +38 -33
  283. package/src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx +7 -3
  284. package/src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx +5 -1
  285. package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +6 -5
  286. package/src/components/credits/creditsRedeemList/{index.tsx → CreditsRedeemList.tsx} +15 -28
  287. package/src/components/credits/creditsRedeemList/NonProductValue.tsx +4 -3
  288. package/src/components/credits/creditsRedeemList/RedeemCouponModal.tsx +6 -6
  289. package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +14 -11
  290. package/src/components/credits/creditsRedeemList/RedeemProductModal/Init.tsx +4 -2
  291. package/src/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.tsx +3 -1
  292. package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +9 -5
  293. package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +4 -1
  294. package/src/components/credits/creditsRedeemList/RedeemProductModal/index.tsx +2 -2
  295. package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +11 -7
  296. package/src/components/credits/creditsRedeemList/index.ts +2 -0
  297. package/src/components/credits/creditsRedeemList/type.ts +1 -16
  298. package/src/components/credits/creditsWaysToGetCredits/{index.tsx → CreditsWaysToGetCredits.tsx} +65 -16
  299. package/src/components/credits/creditsWaysToGetCredits/index.ts +2 -0
  300. package/src/components/credits/creditsWaysToGetCredits/type.ts +5 -15
  301. package/src/components/credits/creditsWaysToGetCredits/useActions.ts +22 -8
  302. package/src/components/credits/modal/MyRewardsModal.tsx +11 -3
  303. package/src/components/credits/modal/activitiesModal.tsx +8 -3
  304. package/src/components/credits/modal/creditsUploadReceiptModal.tsx +9 -1
  305. package/src/components/credits/modal/modalContainer.tsx +5 -1
  306. package/src/components/credits/modal/rulesModal.tsx +1 -1
  307. package/src/components/credits/modal/subscribeModal.tsx +201 -0
  308. package/src/components/credits/modal/tip.tsx +10 -1
  309. package/src/components/credits/type.ts +23 -4
  310. package/src/components/index.ts +2 -2
  311. package/src/components/registration/authCodeActivate/Message.tsx +43 -0
  312. package/src/components/registration/authCodeActivate/index.tsx +338 -0
  313. package/src/components/registration/authCodeActivate/type.ts +23 -0
  314. package/src/components/registration/context/index.tsx +1 -0
  315. package/src/components/registration/context/provider.tsx +86 -0
  316. package/src/components/registration/index.ts +2 -0
  317. package/src/components/registration/modalContainer.tsx +114 -0
  318. package/src/index.ts +2 -1
  319. package/src/templates/credits.tsx +134 -0
  320. package/src/templates/index.ts +1 -0
  321. package/src/components/credits/context/hooks/useSendEmailValidation.ts +0 -20
  322. package/src/components/credits/context/hooks/useSubscriptions.ts +0 -29
  323. package/src/helpers/fetchResponse.ts +0 -35
  324. package/src/helpers/fetcher.ts +0 -44
  325. package/src/helpers/index.ts +0 -2
  326. package/src/helpers/track.ts +0 -73
  327. package/src/helpers/utils.ts +0 -8
@@ -1,36 +1,35 @@
1
1
  import { Button, Text, Picture } from '@anker-in/headless-ui'
2
2
  import { useMemo, useState } from 'react'
3
- import { cn } from '../../../helpers'
4
3
 
5
4
  import { CreditsCashCopy, RedeemItem } from './type'
6
5
  import { useCreditsContext } from '../context/provider'
7
6
  import { useRedeemAndBuy } from '../context/hooks/useRedeemAndBuy'
8
- import { numberFormat } from '../context/utils'
9
- import { gaTrack } from '../../../helpers/track'
7
+ import { formatPrice, numberFormat } from '../context/utils'
8
+ import { gaTrack, classNames as cn, ROUNDED_BRANDS, useHeadlessContext } from '@anker-in/lib'
9
+ import { useRegistration } from '../../../components/registration'
10
10
 
11
11
  function RedeemableItem({
12
12
  copy,
13
13
  itemData,
14
14
  setRules,
15
15
  className,
16
- authCodeActivate,
17
16
  }: {
18
17
  copy: CreditsCashCopy
19
18
  itemData: RedeemItem
20
19
  className?: string
21
20
  setRules: (rules: string[]) => void
22
21
  currencyCode: string
23
- authCodeActivate: {
24
- openAuthCodePopup: Function
25
- isSuccess: boolean
26
- }
27
22
  }) {
28
23
  const {
29
24
  creditInfo,
30
25
  profile,
31
26
  openSignUpPopup,
27
+ pageCommon,
32
28
  gtm: { pageGroup },
33
29
  } = useCreditsContext()
30
+ const { authCodeActivate } = useRegistration()
31
+ const { brand, locale } = useHeadlessContext()
32
+ const rounded = ROUNDED_BRANDS.includes(brand)
34
33
  const [error, setError] = useState<string | null>(null)
35
34
  const { trigger, isMutating } = useRedeemAndBuy(
36
35
  {},
@@ -78,8 +77,8 @@ function RedeemableItem({
78
77
  setError(null)
79
78
  if (!isLogin) {
80
79
  openSignUpPopup()
81
- } else if (!profile?.activated && !authCodeActivate.isSuccess) {
82
- authCodeActivate.openAuthCodePopup()
80
+ } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {
81
+ authCodeActivate.open()
83
82
  } else {
84
83
  trigger({
85
84
  productVariant: itemData?.productVariant,
@@ -114,6 +113,7 @@ function RedeemableItem({
114
113
  <div
115
114
  className={cn(
116
115
  'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] p-[24px] md:rounded-[12px] md:px-[8px] xl:py-[16px] md-xl:px-[16px]',
116
+ !rounded && 'rounded-none',
117
117
  className
118
118
  )}
119
119
  >
@@ -147,7 +147,7 @@ function RedeemableItem({
147
147
  event_parameters: {
148
148
  page_group: pageGroup,
149
149
  position: copy.title,
150
- button_name: copy?.ruleLabel,
150
+ button_name: pageCommon?.ruleLabel,
151
151
  info: itemData?.alpcData?.id?.toString(),
152
152
  },
153
153
  })
@@ -160,16 +160,29 @@ function RedeemableItem({
160
160
  }
161
161
  }}
162
162
  >
163
- {copy?.ruleLabel}
163
+ {pageCommon?.ruleLabel}
164
164
  </button>
165
165
  )}
166
- <div className="mt-[24px] flex items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]">
166
+ <Text
167
+ html={formatPrice({
168
+ amount: itemData?.productVariant?.price.amount,
169
+ currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',
170
+ locale: locale,
171
+ })}
172
+ className="mt-[24px] text-[24px] font-bold text-[#D1D1D1] line-through l:text-[14px]"
173
+ as="p"
174
+ />
175
+ <div className="flex items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]">
167
176
  <Picture
168
177
  className="size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]"
169
178
  source="https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"
170
179
  />
171
180
  <Text
172
- html={`${numberFormat(itemData?.alpcData?.consumeCredits)} + ${itemData?.config?.price}`}
181
+ html={`${numberFormat(itemData?.alpcData?.consumeCredits)} + ${formatPrice({
182
+ amount: Number(itemData?.config?.price),
183
+ currencyCode: itemData?.productVariant?.price.currencyCode || 'USD',
184
+ locale: locale,
185
+ })}`}
173
186
  size={2}
174
187
  as="p"
175
188
  className="ml-[4px] mt-[4px] text-[28px] font-bold leading-none md:text-[18px] l-xxl:text-[24px] md-l:text-[20px] "
@@ -186,7 +199,7 @@ function RedeemableItem({
186
199
  onClick={() => {
187
200
  handleRedeem()
188
201
  }}
189
- title={inSufficientCredit ? copy.insufficientCredits : redeemButtonText}
202
+ title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}
190
203
  >
191
204
  {redeemButtonText}
192
205
  </Button>
@@ -196,8 +209,13 @@ function RedeemableItem({
196
209
  inSufficientCredit ? 'block' : 'hidden'
197
210
  )}
198
211
  >
199
- <div className="relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]">
200
- <Text as="p" size="2" html={copy?.insufficientCredits} className="text-[14px]" />
212
+ <div
213
+ className={cn(
214
+ 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow md:px-[10px] md:py-[8px]',
215
+ !rounded && 'rounded-none'
216
+ )}
217
+ >
218
+ <Text as="p" size="2" html={pageCommon?.insufficientCredits} className="text-[14px]" />
201
219
  <div className="absolute -top-[10px] left-[48px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]" />
202
220
  </div>
203
221
  </div>
@@ -0,0 +1,2 @@
1
+ export * from './type'
2
+ export * from './CreditsCash'
@@ -4,7 +4,7 @@ import { AlpcConsumeType } from '../context/const'
4
4
  type RedeemableItemConfig = {
5
5
  title: string
6
6
  desc: string
7
- price: string
7
+ price: number
8
8
  credit: string
9
9
  rules: string
10
10
  image: {
@@ -22,11 +22,9 @@ export type CreditsCashCopy = {
22
22
  products: { handle: string; sku: string }[]
23
23
  })[]
24
24
  soldOut: string
25
- ruleLabel: string
26
25
  unlockRewards: string
27
26
  btnRedeem: string
28
27
  off: string
29
- insufficientCredits: string
30
28
  }
31
29
 
32
30
  export type RedeemItem = {
@@ -1,6 +1,6 @@
1
1
  import { Heading, Text } from '@anker-in/headless-ui'
2
2
  import { ChevronDownIcon } from '@heroicons/react/24/outline'
3
- import { cn } from '../../../../helpers/index'
3
+ import { classNames as cn } from '@anker-in/lib'
4
4
  import { motion } from 'framer-motion'
5
5
  import { type ReactNode, useEffect, useState } from 'react'
6
6
 
@@ -34,13 +34,13 @@ export const FaqItem = ({
34
34
  return (
35
35
  <div key={index} className={cn('relative mx-0 border-b-[1px] border-[#e4e5e6] py-[24px] l:py-[16px]')}>
36
36
  <div
37
- className='relative flex items-center'
37
+ className="relative flex items-center"
38
38
  onClick={() => {
39
39
  setExpanded(!expanded)
40
40
  }}
41
- role='button'
41
+ role="button"
42
42
  tabIndex={0}
43
- onKeyDown={(e) => {
43
+ onKeyDown={e => {
44
44
  if (e.key === 'Enter' || e.key === ' ') {
45
45
  e.preventDefault()
46
46
  }
@@ -48,12 +48,12 @@ export const FaqItem = ({
48
48
  >
49
49
  <Heading
50
50
  html={question}
51
- as='h3'
51
+ as="h3"
52
52
  className={cn(
53
53
  showDots
54
54
  ? 'before:absolute before:left-[-15px] before:top-[8px] before:h-[6px] before:w-[6px] before:rounded-[50%] before:bg-[#000] before:content-[""]'
55
55
  : '',
56
- 'relative block flex-1 cursor-pointer pr-[10px] text-[18px] font-bold text-[#1D1D1F] l:text-[16px]',
56
+ 'relative block flex-1 cursor-pointer pr-[10px] text-[18px] font-bold text-[#1D1D1F] l:text-[16px]'
57
57
  )}
58
58
  ></Heading>
59
59
  {itemRightIconRender ? (
@@ -62,7 +62,7 @@ export const FaqItem = ({
62
62
  <ChevronDownIcon
63
63
  className={cn(
64
64
  'size-[16px] shrink-0 cursor-pointer stroke-[2.5px] transition-all',
65
- expanded ? 'rotate-180' : '',
65
+ expanded ? 'rotate-180' : ''
66
66
  )}
67
67
  />
68
68
  )}
@@ -70,22 +70,22 @@ export const FaqItem = ({
70
70
  <motion.div
71
71
  initial={false}
72
72
  animate={{ height: !expanded ? 0 : 'auto' }}
73
- className='overflow-hidden [&_td]:border [&_td]:border-[#333] [&_td]:px-[8px] [&_td]:py-[4px]'
73
+ className="overflow-hidden [&_td]:border [&_td]:border-[#333] [&_td]:px-[8px] [&_td]:py-[4px]"
74
74
  >
75
75
  {answer?.toString()?.includes('https://www.youtube.com') ? (
76
76
  <Text
77
- as='div'
77
+ as="div"
78
78
  className={cn('mt-[8px]')}
79
- data-ratio='16:9'
79
+ data-ratio="16:9"
80
80
  data-content={answer}
81
81
  html={answer?.toString()}
82
82
  ></Text>
83
83
  ) : (
84
84
  <Text
85
- as='div'
85
+ as="div"
86
86
  html={answer?.toString()}
87
87
  className={cn(
88
- 'mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand [&_a]:underline',
88
+ 'mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand-0 [&_a]:underline'
89
89
  )}
90
90
  ></Text>
91
91
  )}
@@ -1,10 +1,10 @@
1
1
  import { Container, Heading, Tabs, TabsList, TabsTrigger, Text } from '@anker-in/headless-ui'
2
- import { cn } from '../../../helpers/index'
2
+ import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
3
3
  import { useMemo, useState } from 'react'
4
4
 
5
5
  import { FaqItem } from './faqItem/FaqItem'
6
6
 
7
- export type FaqCopy = {
7
+ export type CreditsFaqCopy = {
8
8
  title: string
9
9
  subTitle: string
10
10
  learnMore: {
@@ -17,8 +17,10 @@ export type FaqCopy = {
17
17
  answer: string
18
18
  }[]
19
19
  }
20
- export const CreditsFaq = ({ copy }: { copy: FaqCopy }) => {
20
+ export const CreditsFaq = ({ copy }: { copy: CreditsFaqCopy }) => {
21
21
  const { title, items: faqList, subTitle = '' } = copy || {}
22
+ const { brand } = useHeadlessContext()
23
+ const rounded = ROUNDED_BRANDS.includes(brand)
22
24
  const categoryList = useMemo(() => {
23
25
  return Array.from(new Set(faqList?.map?.(faq => faq.category_name).filter(item => !!item)))
24
26
  }, [faqList])
@@ -43,7 +45,7 @@ export const CreditsFaq = ({ copy }: { copy: FaqCopy }) => {
43
45
  {/* faq-nav */}
44
46
  <Tabs
45
47
  align="left"
46
- shape="rounded"
48
+ shape={rounded ? 'rounded' : 'square'}
47
49
  className="mt-[24px]"
48
50
  value={activeTab.toString()}
49
51
  onValueChange={value => {
@@ -76,7 +78,7 @@ export const CreditsFaq = ({ copy }: { copy: FaqCopy }) => {
76
78
  <a
77
79
  href={copy.learnMore?.link}
78
80
  target="_blank"
79
- className="mt-[24px] block w-full text-center text-[18px] font-bold text-brand hover:underline l:text-[16px]"
81
+ className="mt-[24px] block w-full text-center text-[18px] font-bold text-brand-0 hover:underline l:text-[16px]"
80
82
  >
81
83
  {copy.learnMore?.label}
82
84
  </a>
@@ -2,33 +2,29 @@ import { Button, Container, Text } from '@anker-in/headless-ui'
2
2
 
3
3
  import { useCallback, useState } from 'react'
4
4
  import { useCreditsContext } from '../context/provider'
5
- import { cn } from '../../../helpers'
6
5
  import { numberFormat } from '../context/utils'
7
6
  import ActivitiesModal from '../modal/activitiesModal'
8
- import MyRewardsModal, { type MyRewardsMetafields } from '../modal/MyRewardsModal'
9
- import { type MyActivitiesMetafields } from '../modal/activitiesModal'
10
- import { gaNormalClick } from '../../../helpers/track'
7
+ import MyRewardsModal from '../modal/MyRewardsModal'
8
+ import { gaNormalClick, classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
11
9
 
12
10
  type ButtonConfig = {
13
11
  text: string
14
12
  type: 'activities' | 'rewards'
15
13
  }
16
- export interface InfoCardProps {
17
- data: {
18
- balanceLabel: string
19
- comingSoonLabel: string
20
- comingSoonTips: string
21
- buttons: ButtonConfig[]
22
- pointUnit: string
23
- infoIcon: string
24
- myActivities: MyActivitiesMetafields
25
- myRewards: MyRewardsMetafields
26
- }
14
+ export type CreditsInfoCardCopy = {
15
+ balanceLabel: string
16
+ comingSoonLabel: string
17
+ comingSoonTips: string
18
+ buttons: ButtonConfig[]
27
19
  }
28
- export function CreditsInfoCard({ data }: InfoCardProps) {
20
+
21
+ export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
29
22
  const [openActivities, setOpenActivities] = useState(false)
30
23
  const [openRewards, setOpenRewards] = useState(false)
31
24
  const [hover, setHover] = useState<boolean>(false)
25
+ const { creditInfo, pageCommon } = useCreditsContext()
26
+ const { brand } = useHeadlessContext()
27
+ const rounded = ROUNDED_BRANDS.includes(brand)
32
28
 
33
29
  const handleButtonClick = useCallback((buttonConfig: ButtonConfig) => {
34
30
  gaNormalClick({ position: 'info_card', label: buttonConfig.text })
@@ -45,8 +41,6 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
45
41
  }
46
42
  }, [])
47
43
 
48
- const { creditInfo } = useCreditsContext()
49
-
50
44
  return (
51
45
  <Container asChild id="infoCard" className="-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]">
52
46
  <div
@@ -54,7 +48,8 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
54
48
  'mx-auto flex justify-between items-center rounded-[12px] border border-white px-[24px] py-[40px]',
55
49
  'l:flex-col l:items-start',
56
50
  'min-l:px-[48px]',
57
- 'min-xl:px-[100px]'
51
+ 'min-xl:px-[100px]',
52
+ !rounded && 'rounded-none'
58
53
  )}
59
54
  style={{
60
55
  background:
@@ -73,23 +68,23 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
73
68
  'mb-[24px] text-[14px] font-bold l:mb-[6px] xl:text-[16px] min-md:text-[18px] l-xl:mb-[16px]'
74
69
  )}
75
70
  >
76
- {data.balanceLabel}
71
+ {copy.balanceLabel}
77
72
  </div>
78
73
  <div className="flex items-baseline">
79
74
  <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-md:text-[44px]', 'min-xl:text-[56px]')}>
80
75
  {creditInfo ? numberFormat(creditInfo.available_credit) : 0}
81
76
  </div>
82
- <div className="text-[16px]">{data?.pointUnit}</div>
77
+ <div className="text-[16px]">{pageCommon?.pointUnit}</div>
83
78
  </div>
84
79
  </div>
85
80
  <div className="w-fit md:flex-1">
86
81
  <div className={cn('mb-[24px] flex text-[18px] l:mb-[6px] l:text-[14px] l-xl:mb-[16px]')}>
87
- <Text className="text-[14px] font-bold xl:text-[16px] min-md:text-[18px]" html={data.comingSoonLabel} />
88
- {data.comingSoonTips && (
82
+ <Text className="text-[14px] font-bold xl:text-[16px] min-md:text-[18px]" html={copy.comingSoonLabel} />
83
+ {copy.comingSoonTips && (
89
84
  <div className="group relative ml-[4px] flex cursor-pointer items-start">
90
85
  <Text
91
86
  as="div"
92
- html={data?.infoIcon}
87
+ html={pageCommon?.infoIcon}
93
88
  className="size-[18px] cursor-pointer [&_svg]:size-full"
94
89
  onClick={() => {
95
90
  if (hover) {
@@ -108,9 +103,19 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
108
103
  hover ? 'block' : 'hidden'
109
104
  )}
110
105
  >
111
- <div className="relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow">
112
- <Text size="2" html={data.comingSoonTips} className="desktop:text-[18px]" />
113
- <div className="absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]" />
106
+ <div
107
+ className={cn(
108
+ 'relative rounded-[10px] bg-[#6D6D6F] p-[16px] text-[14px] font-medium text-white shadow',
109
+ !rounded && 'rounded-none'
110
+ )}
111
+ >
112
+ <Text size="2" html={copy.comingSoonTips} className="desktop:text-[18px]" />
113
+ <div
114
+ className={cn(
115
+ 'absolute -top-[10px] left-[40px] mb-2 size-[16px] origin-top-left rotate-45 transform rounded-[2px] bg-[#6D6D6F]',
116
+ !rounded && 'rounded-none'
117
+ )}
118
+ />
114
119
  </div>
115
120
  </div>
116
121
  </div>
@@ -120,7 +125,7 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
120
125
  <div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-l:text-[44px]', 'min-xl:text-[56px]')}>
121
126
  {creditInfo ? numberFormat(creditInfo.pending_credit) : 0}
122
127
  </div>
123
- <div className="text-[16px]">{data?.pointUnit}</div>
128
+ <div className="text-[16px]">{pageCommon?.pointUnit}</div>
124
129
  </div>
125
130
  </div>
126
131
  </div>
@@ -129,7 +134,7 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
129
134
  'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] min-l:gap-[16px] min-l:pl-[48px] md-l:grid-cols-2'
130
135
  )}
131
136
  >
132
- {data.buttons?.map((item, index) => (
137
+ {copy.buttons?.map((item, index) => (
133
138
  <Button
134
139
  key={index}
135
140
  variant={index === 0 ? 'secondary' : 'primary'}
@@ -144,19 +149,19 @@ export function CreditsInfoCard({ data }: InfoCardProps) {
144
149
  ))}
145
150
  </div>
146
151
 
147
- {data?.myActivities && (
152
+ {pageCommon?.activitiesModal && (
148
153
  <ActivitiesModal
149
154
  isOpen={openActivities}
150
- data={data?.myActivities}
155
+ data={pageCommon?.activitiesModal}
151
156
  onClose={() => {
152
157
  setOpenActivities(false)
153
158
  }}
154
159
  />
155
160
  )}
156
- {data?.myRewards && (
161
+ {pageCommon?.rewardsModal && (
157
162
  <MyRewardsModal
158
163
  isOpen={openRewards}
159
- data={data?.myRewards}
164
+ data={pageCommon?.rewardsModal}
160
165
  onClose={() => {
161
166
  setOpenRewards(false)
162
167
  }}
@@ -2,6 +2,7 @@ import { Picture } from '@anker-in/headless-ui'
2
2
  import useClickOutside from '../../context/hooks/useClickOutside'
3
3
  import classNames from 'classnames'
4
4
  import { useEffect, useState } from 'react'
5
+ import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
5
6
 
6
7
  interface Country {
7
8
  id: string
@@ -20,7 +21,8 @@ interface CountrySelectProps {
20
21
  export function CountrySelect({ countries, loading, className, value, onChange }: CountrySelectProps) {
21
22
  const [show, setShow] = useState(false)
22
23
  const [display, setDisplay] = useState<any>('')
23
-
24
+ const { brand } = useHeadlessContext()
25
+ const rounded = ROUNDED_BRANDS.includes(brand)
24
26
  const dorpdown = useClickOutside<HTMLDivElement>(() => {
25
27
  setShow(false)
26
28
  })
@@ -53,6 +55,7 @@ export function CountrySelect({ countries, loading, className, value, onChange }
53
55
  <div
54
56
  className={classNames(
55
57
  'absolute left-0 top-0 hidden !h-[50px] rounded-[2px] pr-[45px] text-[16px] font-bold focus:!border-[#6D6D6F] min-l:!block',
58
+ !rounded && 'rounded-none',
56
59
  className
57
60
  )}
58
61
  onClick={() => {
@@ -71,14 +74,15 @@ export function CountrySelect({ countries, loading, className, value, onChange }
71
74
 
72
75
  <Picture
73
76
  source="https://cdn.shopify.com/s/files/1/0517/6767/3016/files/country-select.png?v=1692202500"
74
- imgClassName="pointer-events-none absolute right-0 top-0 bottom-0 !w-[45px] object-cover"
77
+ className="absolute pointer-events-none right-0 top-0 bottom-0 size-[50px] object-cover"
75
78
  alt="arrow"
76
79
  />
77
80
 
78
81
  <div
79
82
  ref={dorpdown}
80
83
  className={classNames(
81
- 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',
84
+ 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',
85
+ !rounded && 'rounded-none',
82
86
  { '!hidden': !show }
83
87
  )}
84
88
  >
@@ -2,6 +2,7 @@ import classNames from 'classnames'
2
2
  import { Picture } from '@anker-in/headless-ui'
3
3
  import { useEffect, useMemo, useState } from 'react'
4
4
  import useClickOutside from '../../context/hooks/useClickOutside'
5
+ import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
5
6
 
6
7
  interface StateSelectProps {
7
8
  states: { code: string; id: string; name: string }[]
@@ -16,6 +17,8 @@ interface StateSelectProps {
16
17
  export function StateSelect({ states, stateName = '', stateCode = '', className = '', onChange }: StateSelectProps) {
17
18
  const [show, setShow] = useState(false)
18
19
  const [display, setDisplay] = useState<any>('')
20
+ const { brand } = useHeadlessContext()
21
+ const rounded = ROUNDED_BRANDS.includes(brand)
19
22
 
20
23
  const dropdown = useClickOutside<HTMLDivElement>(() => {
21
24
  setShow(false)
@@ -78,7 +81,8 @@ export function StateSelect({ states, stateName = '', stateCode = '', className
78
81
  <div
79
82
  ref={dropdown}
80
83
  className={classNames(
81
- 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto rounded-[4px] bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',
84
+ 'absolute left-0 top-[58px] z-30 max-h-[334px] w-full cursor-pointer overflow-auto bg-white shadow-[0px_1px_12px_0px_rgba(0,0,0,0.12)]',
85
+ !rounded && 'rounded-none',
82
86
  { '!hidden': !show }
83
87
  )}
84
88
  >
@@ -7,13 +7,13 @@ import { Input } from './Input'
7
7
  import { StateSelect } from './StateSelect'
8
8
  import { ALPC_COUNTRY_MAP } from '../../context/const'
9
9
  import { useCreditsContext } from '../../context/provider'
10
- import { useHeadlessContext } from '@anker-in/lib'
10
+ import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
11
11
  import { AddressFormProps } from './type'
12
12
 
13
13
  export const AddressForm = ({ countries, countriesLoading, form, validate, errors, onChange }: AddressFormProps) => {
14
14
  const { profile, customer } = useCreditsContext()
15
- const { locale } = useHeadlessContext()
16
-
15
+ const { locale, brand } = useHeadlessContext()
16
+ const rounded = ROUNDED_BRANDS.includes(brand)
17
17
  const [address, setAddress] = useState<Record<string, any>>()
18
18
 
19
19
  const states = useMemo(() => {
@@ -78,8 +78,9 @@ export const AddressForm = ({ countries, countriesLoading, form, validate, error
78
78
  {row.map((input, inputIndex: number) => {
79
79
  const error = errors.find(item => item.key === input.key)?.message
80
80
  const inputClassName = classNames(
81
- 'h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',
82
- error ? '!border-[#F84D4F]' : 'border-[#d8d8d8]'
81
+ 'h-full w-full appearance-none rounded-[2px] border bg-white px-[14px] py-[17px] leading-[1] outline-none placeholder:text-[#999] autofill:shadow-white focus:border-brand-0 disabled:pointer-events-none disabled:text-[#999] disabled:bg-[#F7F8F9] [&::-webkit-outer-spin-button]:appearance-none [&::-webkit-inner-spin-button]:appearance-none',
82
+ error ? '!border-[#F84D4F]' : 'border-[#d8d8d8]',
83
+ !rounded && 'rounded-none'
83
84
  )
84
85
 
85
86
  if (input.type === 'state') {
@@ -7,36 +7,24 @@ import RedeemProductModal from './RedeemProductModal'
7
7
  import { useCreditsContext } from '../context/provider'
8
8
  import useRedeemableList from '../context/hooks/useRedeemableList'
9
9
  import { AlpcConsumeType, AlpcErrorCode } from '../context/const'
10
- import { useProductsByHandles } from '@anker-in/lib'
10
+ import { useHeadlessContext, useProductsByHandles, gaTrack, ROUNDED_BRANDS } from '@anker-in/lib'
11
11
  import type { RedeemableItem as RedeemableItemType } from '../type'
12
12
  import { RedeemableItem } from './RedeemableItem'
13
13
  import RulesModal from '../modal/rulesModal'
14
14
  import { CreditsRedeemListCopy } from './type'
15
- import { gaTrack } from '../../../helpers/track'
15
+ import { useRegistration } from '../../../components/registration'
16
16
 
17
- export function CreditsRedeemList({
18
- copy,
19
- className = '',
20
- tabClassName = '',
21
- hideTitle = false,
22
- cardClassName,
23
- activate,
24
- }: {
25
- copy: CreditsRedeemListCopy
26
- className?: string
27
- tabClassName?: string
28
- hideTitle?: boolean
29
- cardClassName?: string
30
- activate: {
31
- openAuthCodePopup: () => void
32
- isSuccess: boolean
33
- }
34
- }) {
17
+ export const CreditsRedeemList = ({ copy }: { copy: CreditsRedeemListCopy }) => {
35
18
  const {
36
19
  profile,
37
20
  openSignUpPopup,
38
21
  gtm: { pageGroup },
22
+ pageCommon,
39
23
  } = useCreditsContext()
24
+ const { authCodeActivate } = useRegistration()
25
+ const { brand } = useHeadlessContext()
26
+ const rounded = ROUNDED_BRANDS.includes(brand)
27
+
40
28
  const isLogin = Object.keys(profile || {}).length > 0
41
29
 
42
30
  const [activeTab, setActiveTab] = useState<string>(copy.list[0].label)
@@ -95,13 +83,13 @@ export function CreditsRedeemList({
95
83
  )
96
84
 
97
85
  return (
98
- <Container className={classNames('relative bg-[#F5F5F7]', className)}>
99
- {!hideTitle && <Heading as="h2" size="4" html={copy.title} />}
86
+ <Container className={classNames('relative bg-[#F5F5F7]')}>
87
+ <Heading as="h2" size="4" html={copy.title} />
100
88
 
101
89
  <Tabs
102
- shape="rounded"
90
+ shape={rounded ? 'rounded' : 'square'}
103
91
  align="left"
104
- className={classNames('sticky top-0 z-20 py-[24px] md:justify-center', tabClassName)}
92
+ className={classNames('sticky top-0 z-20 py-[24px] md:justify-center')}
105
93
  value={activeTab.toString()}
106
94
  onValueChange={value => {
107
95
  setActiveTab(value)
@@ -136,14 +124,13 @@ export function CreditsRedeemList({
136
124
  onRedeem={(item: RedeemableItemType) => {
137
125
  if (!isLogin) {
138
126
  openSignUpPopup()
139
- } else if (!profile?.activated && !activate.isSuccess) {
140
- activate.openAuthCodePopup()
127
+ } else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {
128
+ authCodeActivate.open()
141
129
  } else {
142
130
  setPopRedeemData(item)
143
131
  }
144
132
  }}
145
133
  onRulesOpen={setRules}
146
- className={cardClassName}
147
134
  />
148
135
  ))}
149
136
  </div>
@@ -180,7 +167,7 @@ export function CreditsRedeemList({
180
167
  titleClassName="border-b-transparent h-[56px]"
181
168
  rules={rules}
182
169
  scrollClassName="md:mt-[8px] md:mb-[24px] md:pt-0"
183
- title={copy?.ruleLabel}
170
+ title={pageCommon?.ruleLabel}
184
171
  ruleClassName="text-[#1d1d1f] font-bold"
185
172
  />
186
173
  )}
@@ -1,9 +1,10 @@
1
1
  import { Text } from '@anker-in/headless-ui'
2
2
  import { RedeemableItem } from '../type'
3
3
  import { ConsumeType } from '../context/const'
4
- import { CreditsRedeemListCopy } from './type'
4
+ import { useCreditsContext } from '../context/provider'
5
5
 
6
- export const NoneProductValue = ({ item, copy }: { item: RedeemableItem; copy: CreditsRedeemListCopy }) => {
6
+ export const NoneProductValue = ({ item }: { item: RedeemableItem }) => {
7
+ const { pageCommon } = useCreditsContext()
7
8
  // shipping coupon 仅展示文案
8
9
  if (item.config?.type === ConsumeType.ShippingCoupon) {
9
10
  return (
@@ -26,7 +27,7 @@ export const NoneProductValue = ({ item, copy }: { item: RedeemableItem; copy: C
26
27
  />
27
28
  <Text
28
29
  className="ml-[4px] text-[24px] font-bold leading-[2] md:ml-[2px] l:text-[12px] xxl:leading-[1.4] l-xxl:text-[20px]"
29
- html={item.config?.type === ConsumeType.GiftCard ? copy?.giftCardLabel : copy?.off}
30
+ html={item.config?.type === ConsumeType.GiftCard ? pageCommon?.giftCardLabel : pageCommon?.off}
30
31
  />
31
32
  </div>
32
33
  ) : (