@anker-in/campaign-ui 0.4.6 → 0.5.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (249) hide show
  1. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js +1 -1
  2. package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js.map +3 -3
  3. package/dist/cjs/components/LiveChatWidget/api/chat.d.ts +1 -1
  4. package/dist/cjs/components/LiveChatWidget/api/chat.js +2 -2
  5. package/dist/cjs/components/LiveChatWidget/api/chat.js.map +3 -3
  6. package/dist/cjs/components/LiveChatWidget/components/MessageList.js +2 -2
  7. package/dist/cjs/components/LiveChatWidget/components/MessageList.js.map +3 -3
  8. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js +1 -1
  9. package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js.map +3 -3
  10. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.d.ts +5 -0
  11. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js +1 -1
  12. package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js.map +3 -3
  13. package/dist/cjs/components/LiveChatWidget/utils/fetcher.d.ts +3 -1
  14. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js +1 -1
  15. package/dist/cjs/components/LiveChatWidget/utils/fetcher.js.map +3 -3
  16. package/dist/cjs/components/index.d.ts +1 -0
  17. package/dist/cjs/components/index.js +1 -1
  18. package/dist/cjs/components/index.js.map +2 -2
  19. package/dist/cjs/components/memberPopup/MemberPopup.d.ts +9 -0
  20. package/dist/cjs/components/memberPopup/MemberPopup.js +2 -0
  21. package/dist/cjs/components/memberPopup/MemberPopup.js.map +7 -0
  22. package/dist/cjs/components/memberPopup/context/provider.d.ts +11 -0
  23. package/dist/cjs/components/memberPopup/context/provider.js +2 -0
  24. package/dist/cjs/components/memberPopup/context/provider.js.map +7 -0
  25. package/dist/cjs/components/memberPopup/context/viewStack.d.ts +12 -0
  26. package/dist/cjs/components/memberPopup/context/viewStack.js +2 -0
  27. package/dist/cjs/components/memberPopup/context/viewStack.js.map +7 -0
  28. package/dist/cjs/components/memberPopup/icons.d.ts +27 -0
  29. package/dist/cjs/components/memberPopup/icons.js +2 -0
  30. package/dist/cjs/components/memberPopup/icons.js.map +7 -0
  31. package/dist/cjs/components/memberPopup/index.d.ts +4 -0
  32. package/dist/cjs/components/memberPopup/index.js +2 -0
  33. package/dist/cjs/components/memberPopup/index.js.map +7 -0
  34. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.d.ts +10 -0
  35. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.js +2 -0
  36. package/dist/cjs/components/memberPopup/panels/Activity/SubscribeModal.js.map +7 -0
  37. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.d.ts +7 -0
  38. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js +2 -0
  39. package/dist/cjs/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js.map +7 -0
  40. package/dist/cjs/components/memberPopup/panels/Activity/index.d.ts +7 -0
  41. package/dist/cjs/components/memberPopup/panels/Activity/index.js +2 -0
  42. package/dist/cjs/components/memberPopup/panels/Activity/index.js.map +7 -0
  43. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.d.ts +19 -0
  44. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js +2 -0
  45. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js.map +7 -0
  46. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.d.ts +20 -0
  47. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js +2 -0
  48. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js.map +7 -0
  49. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.d.ts +12 -0
  50. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js +2 -0
  51. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js.map +7 -0
  52. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.d.ts +17 -0
  53. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js +2 -0
  54. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js.map +7 -0
  55. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.d.ts +8 -0
  56. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js +2 -0
  57. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js.map +7 -0
  58. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.d.ts +7 -0
  59. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js +2 -0
  60. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js.map +7 -0
  61. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.d.ts +8 -0
  62. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js +2 -0
  63. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +7 -0
  64. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.d.ts +10 -0
  65. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js +2 -0
  66. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js.map +7 -0
  67. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.d.ts +9 -0
  68. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +2 -0
  69. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +7 -0
  70. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.d.ts +9 -0
  71. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +2 -0
  72. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +7 -0
  73. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.d.ts +10 -0
  74. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js +2 -0
  75. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +7 -0
  76. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.d.ts +9 -0
  77. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.js +2 -0
  78. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribePanel.js.map +7 -0
  79. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.d.ts +18 -0
  80. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.js +2 -0
  81. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useActivities.js.map +7 -0
  82. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.d.ts +9 -0
  83. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js +2 -0
  84. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js.map +7 -0
  85. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +17 -0
  86. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +2 -0
  87. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +7 -0
  88. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.d.ts +13 -0
  89. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js +2 -0
  90. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js.map +7 -0
  91. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.d.ts +13 -0
  92. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js +2 -0
  93. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js.map +7 -0
  94. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.d.ts +12 -0
  95. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +2 -0
  96. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +7 -0
  97. package/dist/cjs/components/memberPopup/panels/Referral/index.d.ts +7 -0
  98. package/dist/cjs/components/memberPopup/panels/Referral/index.js +2 -0
  99. package/dist/cjs/components/memberPopup/panels/Referral/index.js.map +7 -0
  100. package/dist/cjs/components/memberPopup/type.d.ts +201 -0
  101. package/dist/cjs/components/memberPopup/type.js +2 -0
  102. package/dist/cjs/components/memberPopup/type.js.map +7 -0
  103. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js +1 -1
  104. package/dist/esm/components/LiveChatWidget/LiveChatWidget.js.map +3 -3
  105. package/dist/esm/components/LiveChatWidget/api/chat.d.ts +1 -1
  106. package/dist/esm/components/LiveChatWidget/api/chat.js +2 -2
  107. package/dist/esm/components/LiveChatWidget/api/chat.js.map +3 -3
  108. package/dist/esm/components/LiveChatWidget/components/MessageList.js +2 -2
  109. package/dist/esm/components/LiveChatWidget/components/MessageList.js.map +3 -3
  110. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js +1 -1
  111. package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js.map +3 -3
  112. package/dist/esm/components/LiveChatWidget/hooks/useChatState.d.ts +5 -0
  113. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js +1 -1
  114. package/dist/esm/components/LiveChatWidget/hooks/useChatState.js.map +3 -3
  115. package/dist/esm/components/LiveChatWidget/utils/fetcher.d.ts +3 -1
  116. package/dist/esm/components/LiveChatWidget/utils/fetcher.js +1 -1
  117. package/dist/esm/components/LiveChatWidget/utils/fetcher.js.map +3 -3
  118. package/dist/esm/components/index.d.ts +1 -0
  119. package/dist/esm/components/index.js +1 -1
  120. package/dist/esm/components/index.js.map +2 -2
  121. package/dist/esm/components/memberPopup/MemberPopup.d.ts +9 -0
  122. package/dist/esm/components/memberPopup/MemberPopup.js +2 -0
  123. package/dist/esm/components/memberPopup/MemberPopup.js.map +7 -0
  124. package/dist/esm/components/memberPopup/context/provider.d.ts +11 -0
  125. package/dist/esm/components/memberPopup/context/provider.js +2 -0
  126. package/dist/esm/components/memberPopup/context/provider.js.map +7 -0
  127. package/dist/esm/components/memberPopup/context/viewStack.d.ts +12 -0
  128. package/dist/esm/components/memberPopup/context/viewStack.js +2 -0
  129. package/dist/esm/components/memberPopup/context/viewStack.js.map +7 -0
  130. package/dist/esm/components/memberPopup/icons.d.ts +27 -0
  131. package/dist/esm/components/memberPopup/icons.js +2 -0
  132. package/dist/esm/components/memberPopup/icons.js.map +7 -0
  133. package/dist/esm/components/memberPopup/index.d.ts +4 -0
  134. package/dist/esm/components/memberPopup/index.js +2 -0
  135. package/dist/esm/components/memberPopup/index.js.map +7 -0
  136. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.d.ts +10 -0
  137. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.js +2 -0
  138. package/dist/esm/components/memberPopup/panels/Activity/SubscribeModal.js.map +7 -0
  139. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.d.ts +7 -0
  140. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js +2 -0
  141. package/dist/esm/components/memberPopup/panels/Activity/hooks/useActivitySubscribe.js.map +7 -0
  142. package/dist/esm/components/memberPopup/panels/Activity/index.d.ts +7 -0
  143. package/dist/esm/components/memberPopup/panels/Activity/index.js +2 -0
  144. package/dist/esm/components/memberPopup/panels/Activity/index.js.map +7 -0
  145. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.d.ts +19 -0
  146. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js +2 -0
  147. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.js.map +7 -0
  148. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.d.ts +20 -0
  149. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js +2 -0
  150. package/dist/esm/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.js.map +7 -0
  151. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.d.ts +12 -0
  152. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js +2 -0
  153. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.js.map +7 -0
  154. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.d.ts +17 -0
  155. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js +2 -0
  156. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.js.map +7 -0
  157. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.d.ts +8 -0
  158. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js +2 -0
  159. package/dist/esm/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.js.map +7 -0
  160. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.d.ts +7 -0
  161. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js +2 -0
  162. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js.map +7 -0
  163. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.d.ts +8 -0
  164. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js +2 -0
  165. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +7 -0
  166. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.d.ts +10 -0
  167. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js +2 -0
  168. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfileModal.js.map +7 -0
  169. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.d.ts +9 -0
  170. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +2 -0
  171. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +7 -0
  172. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.d.ts +9 -0
  173. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +2 -0
  174. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +7 -0
  175. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.d.ts +10 -0
  176. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js +2 -0
  177. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +7 -0
  178. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.d.ts +9 -0
  179. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.js +2 -0
  180. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribePanel.js.map +7 -0
  181. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.d.ts +18 -0
  182. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.js +2 -0
  183. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useActivities.js.map +7 -0
  184. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.d.ts +9 -0
  185. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js +2 -0
  186. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.js.map +7 -0
  187. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +17 -0
  188. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +2 -0
  189. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +7 -0
  190. package/dist/esm/components/memberPopup/panels/EarnCredits/index.d.ts +13 -0
  191. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js +2 -0
  192. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js.map +7 -0
  193. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.d.ts +13 -0
  194. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js +2 -0
  195. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralDashboard.js.map +7 -0
  196. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.d.ts +12 -0
  197. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +2 -0
  198. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +7 -0
  199. package/dist/esm/components/memberPopup/panels/Referral/index.d.ts +7 -0
  200. package/dist/esm/components/memberPopup/panels/Referral/index.js +2 -0
  201. package/dist/esm/components/memberPopup/panels/Referral/index.js.map +7 -0
  202. package/dist/esm/components/memberPopup/type.d.ts +201 -0
  203. package/dist/esm/components/memberPopup/type.js +2 -0
  204. package/dist/esm/components/memberPopup/type.js.map +7 -0
  205. package/dist/index.d.mts +1775 -0
  206. package/dist/index.d.ts +1775 -0
  207. package/dist/index.js +18542 -0
  208. package/dist/index.js.map +1 -0
  209. package/dist/index.mjs +18514 -0
  210. package/dist/index.mjs.map +1 -0
  211. package/package.json +1 -1
  212. package/src/components/LiveChatWidget/LiveChatWidget.tsx +6 -4
  213. package/src/components/LiveChatWidget/api/chat.ts +3 -2
  214. package/src/components/LiveChatWidget/components/MessageList.tsx +20 -4
  215. package/src/components/LiveChatWidget/hooks/useChatAPI.ts +2 -3
  216. package/src/components/LiveChatWidget/hooks/useChatState.ts +27 -7
  217. package/src/components/LiveChatWidget/utils/fetcher.ts +15 -2
  218. package/src/components/index.ts +2 -0
  219. package/src/components/memberPopup/MemberPopup.tsx +283 -0
  220. package/src/components/memberPopup/context/provider.tsx +52 -0
  221. package/src/components/memberPopup/context/viewStack.tsx +23 -0
  222. package/src/components/memberPopup/icons.tsx +147 -0
  223. package/src/components/memberPopup/index.ts +24 -0
  224. package/src/components/memberPopup/panels/ConsumeCredits/RedeemCouponModal.tsx +150 -0
  225. package/src/components/memberPopup/panels/ConsumeCredits/RedeemCouponPanel.tsx +142 -0
  226. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemAndBuy.ts +33 -0
  227. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemCoupon.ts +38 -0
  228. package/src/components/memberPopup/panels/ConsumeCredits/hooks/useRedeemableList.ts +55 -0
  229. package/src/components/memberPopup/panels/ConsumeCredits/index.tsx +220 -0
  230. package/src/components/memberPopup/panels/EarnCredits/ActivatePanel.tsx +323 -0
  231. package/src/components/memberPopup/panels/EarnCredits/CompleteProfileModal.tsx +186 -0
  232. package/src/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.tsx +179 -0
  233. package/src/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.tsx +130 -0
  234. package/src/components/memberPopup/panels/EarnCredits/SubscribeModal.tsx +144 -0
  235. package/src/components/memberPopup/panels/EarnCredits/SubscribePanel.tsx +147 -0
  236. package/src/components/memberPopup/panels/EarnCredits/hooks/useActivities.ts +64 -0
  237. package/src/components/memberPopup/panels/EarnCredits/hooks/useSubscribed.ts +32 -0
  238. package/src/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.ts +50 -0
  239. package/src/components/memberPopup/panels/EarnCredits/index.tsx +215 -0
  240. package/src/components/memberPopup/panels/Referral/hooks/useReferralOverview.ts +41 -0
  241. package/src/components/memberPopup/panels/Referral/index.tsx +108 -0
  242. package/src/components/memberPopup/type.ts +213 -0
  243. package/tailwind.config.ts +4 -0
  244. package/dist/cjs/stories/CartCard.stories.d.ts +0 -33
  245. package/dist/cjs/stories/CartCard.stories.js +0 -21
  246. package/dist/cjs/stories/CartCard.stories.js.map +0 -7
  247. package/dist/esm/stories/CartCard.stories.d.ts +0 -33
  248. package/dist/esm/stories/CartCard.stories.js +0 -21
  249. package/dist/esm/stories/CartCard.stories.js.map +0 -7
@@ -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": "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",
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,201 @@
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 type MemberPopupCopy = {
43
+ triggerImg: {
44
+ url: string;
45
+ alt?: string;
46
+ };
47
+ title?: string;
48
+ subtitle?: string;
49
+ list: MemberPopupItem[];
50
+ footer?: {
51
+ loginHint: string;
52
+ loginLabel: string;
53
+ joinLabel: string;
54
+ shopLabel: string;
55
+ shopUrl?: string;
56
+ };
57
+ subscribe?: SubscribeModalCopy;
58
+ earnCredits?: EarnCreditsCopy;
59
+ consumeCredits?: ConsumeCreditsopy;
60
+ referral?: ReferralCopy;
61
+ };
62
+ export type EarnCreditsCopy = {
63
+ title?: string;
64
+ subtitle?: string;
65
+ balanceLabel?: string;
66
+ comingSoonLabel?: string;
67
+ creditUnit?: string;
68
+ joinNow: string;
69
+ completed: string;
70
+ activate: string;
71
+ completeProfileLabel: string;
72
+ subscribeLabel: string;
73
+ shopNow: string;
74
+ goShopLink?: string;
75
+ list: {
76
+ id: EarnCreditsTaskType;
77
+ title: string;
78
+ description: string;
79
+ credits?: string;
80
+ }[];
81
+ authCodeActivate: AuthCodeActivateCopy;
82
+ completeProfile: CompleteProfileCopy;
83
+ subscribe: SubscribeModalCopy;
84
+ };
85
+ export type CompleteProfileCopy = {
86
+ title: string;
87
+ subtitle?: string;
88
+ firstName: string;
89
+ lastName: string;
90
+ email: string;
91
+ phone: string;
92
+ birthday: string;
93
+ country: string;
94
+ save: string;
95
+ cancel: string;
96
+ edit: string;
97
+ required: string;
98
+ };
99
+ export type SubscribeModalCopy = {
100
+ title: string;
101
+ desc?: string;
102
+ placeholder: string;
103
+ policy?: string;
104
+ successTips?: string;
105
+ dealsType?: string;
106
+ buttonLabel?: string;
107
+ single_brand_subscribe?: boolean;
108
+ genre?: string;
109
+ sub_brand_type?: string;
110
+ };
111
+ export type ConsumeCreditsopy = {
112
+ title?: string;
113
+ subtitle?: string;
114
+ soldOut: string;
115
+ unlockRewards: string;
116
+ btnRedeem: string;
117
+ insufficientCredits?: string;
118
+ pointUnit?: string;
119
+ off?: string;
120
+ imageMapping?: {
121
+ [key in ConsumeCreditsItemType]?: {
122
+ url: string;
123
+ };
124
+ };
125
+ list: ConsumeCreditsItem[];
126
+ redeemModal: RedeemCouponModalCopy;
127
+ creditsPage?: {
128
+ label: string;
129
+ url: string;
130
+ };
131
+ };
132
+ export type ConsumeCreditsItem = {
133
+ redeemId: string | number;
134
+ title: string;
135
+ description?: string;
136
+ image: {
137
+ url: string;
138
+ alt?: string;
139
+ };
140
+ type: ConsumeCreditsItemType;
141
+ product?: {
142
+ handle: string;
143
+ sku: string;
144
+ };
145
+ price?: number;
146
+ value?: string;
147
+ rules?: string[];
148
+ };
149
+ export type RedeemCouponModalCopy = {
150
+ confirmTitle: string;
151
+ confirmButton: string;
152
+ commonError: string;
153
+ redeemLimitError: string;
154
+ inventoryNotEnough: string;
155
+ creditsNotEnough: string;
156
+ crossSiteError: string;
157
+ successTitle: string;
158
+ successDesc: string;
159
+ successButton: string;
160
+ successButtonUrl?: string;
161
+ };
162
+ export type ReferralCopy = {
163
+ title?: string;
164
+ description?: string;
165
+ cashAvailableLabel: string;
166
+ cashPendingLabel: string;
167
+ creditUnit?: string;
168
+ referralLinksLabel?: string;
169
+ referralLinkBaseUrl?: string;
170
+ copyLabel?: string;
171
+ copiedLabel?: string;
172
+ howToTitle?: string;
173
+ howToDescription?: string;
174
+ learnMoreLabel?: string;
175
+ learnMoreUrl?: string;
176
+ image?: {
177
+ url: string;
178
+ alt?: string;
179
+ };
180
+ ctaButton: string;
181
+ ctaUrl?: string;
182
+ loginTitle?: string;
183
+ loginDescription?: string;
184
+ loginCtaLabel?: string;
185
+ };
186
+ export type AlpcConfig = {
187
+ brand: string;
188
+ locale: string;
189
+ appName: string;
190
+ apiBaseUrl?: string;
191
+ };
192
+ export type MemberPopupContextValue = {
193
+ profile: any;
194
+ isLoadingProfile: boolean;
195
+ creditInfo?: CreditInfoResponse;
196
+ fetchCreditInfo: (userId: string) => void;
197
+ openSignUpPopup: () => void;
198
+ openSignInPopup: () => void;
199
+ taskIdToTypeMapping?: Record<string, DTC_TASK_TYPE>;
200
+ alpcConfig: AlpcConfig;
201
+ };
@@ -0,0 +1,2 @@
1
+ "use strict";var o=Object.defineProperty;var d=Object.getOwnPropertyDescriptor;var C=Object.getOwnPropertyNames;var u=Object.prototype.hasOwnProperty;var b=(e,i)=>{for(var s in i)o(e,s,{get:i[s],enumerable:!0})},m=(e,i,s,g)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of C(i))!u.call(e,t)&&t!==s&&o(e,t,{get:()=>i[t],enumerable:!(g=d(i,t))||g.enumerable});return e};var E=e=>m(o({},"__esModule",{value:!0}),e);var f={};b(f,{ConsumeCreditsItemType:()=>c,EarnCreditsTaskType:()=>a,MemberPopupActionType:()=>p,MemberPopupPanelType:()=>l});module.exports=E(f);var l=(r=>(r.EarnCredits="EARN_CREDITS",r.ConsumeCredits="CONSUME_CREDITS",r.Referral="REFERRAL",r.CompleteProfile="COMPLETE_PROFILE",r.Subscribe="SUBSCRIBE",r.SubscribeEmail="SUBSCRIBE_EMAIL",r.RedeemCoupon="REDEEM_COUPON",r.Activate="ACTIVATE",r))(l||{}),p=(n=>(n.ExternalLink="EXTERNAL_LINK",n.OpenEarnCredits="OPEN_EARN_CREDITS",n.OpenConsumeCredits="OPEN_CONSUME_CREDITS",n.OpenReferral="OPEN_REFERRAL",n.OpenSubscribe="OPEN_SUBSCRIBE",n))(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||{});
2
+ //# sourceMappingURL=type.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/components/memberPopup/type.ts"],
4
+ "sourcesContent": ["import type { AuthCodeActivateCopy } from '../registration/authCodeActivate/type'\nimport type { CreditInfoResponse } from '../credits/context/response'\nimport type { DTC_TASK_TYPE } from '../credits/context/const'\n\nexport type { AuthCodeActivateCopy }\n\n// \u2500\u2500\u2500 \u9762\u677F\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupPanelType {\n EarnCredits = 'EARN_CREDITS',\n ConsumeCredits = 'CONSUME_CREDITS',\n Referral = 'REFERRAL',\n CompleteProfile = 'COMPLETE_PROFILE',\n Subscribe = 'SUBSCRIBE',\n SubscribeEmail = 'SUBSCRIBE_EMAIL',\n RedeemCoupon = 'REDEEM_COUPON',\n Activate = 'ACTIVATE',\n}\n\n// \u2500\u2500\u2500 item action \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupActionType {\n ExternalLink = 'EXTERNAL_LINK',\n OpenEarnCredits = 'OPEN_EARN_CREDITS',\n OpenConsumeCredits = 'OPEN_CONSUME_CREDITS',\n OpenReferral = 'OPEN_REFERRAL',\n OpenSubscribe = 'OPEN_SUBSCRIBE',\n}\n\n// \u2500\u2500\u2500 EarnCredits \u4EFB\u52A1\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum EarnCreditsTaskType {\n Activate = 'activate',\n CompleteProfile = 'completeProfile',\n Subscribe = 'subscribe',\n Shop = 'shop',\n}\n\n// \u2500\u2500\u2500 ConsumeCredits item \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum ConsumeCreditsItemType {\n Coupon = 'COUPON',\n RedeemAndBuy = 'REDEEM_AND_BUY',\n}\n\n// \u2500\u2500\u2500 \u901A\u7528 link\uFF08\u7EDF\u4E00\u4E00\u79CD\u7C7B\u578B\uFF09 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupLink = {\n type: MemberPopupActionType\n label: string\n url?: string // \u4EC5 ExternalLink \u65F6\u4F7F\u7528\n}\n\n// \u2500\u2500\u2500 list item \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupItem = {\n title: string\n description?: string\n links: MemberPopupLink[]\n}\n\n// \u2500\u2500\u2500 \u4E3B\u7EC4\u4EF6 Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupCopy = {\n triggerImg: { url: string; alt?: string }\n title?: string\n subtitle?: string\n list: MemberPopupItem[]\n footer?: {\n loginHint: string\n loginLabel: string\n joinLabel: string\n shopLabel: string\n shopUrl?: string\n }\n subscribe?: SubscribeModalCopy\n earnCredits?: EarnCreditsCopy\n consumeCredits?: ConsumeCreditsopy\n referral?: ReferralCopy\n}\n\n// \u2500\u2500\u2500 EarnCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type EarnCreditsCopy = {\n title?: string\n subtitle?: string\n balanceLabel?: string\n comingSoonLabel?: string\n creditUnit?: string\n joinNow: string\n completed: string\n activate: string\n completeProfileLabel: string\n subscribeLabel: string\n shopNow: string\n goShopLink?: string\n list: {\n id: EarnCreditsTaskType\n title: string\n description: string\n credits?: string\n }[]\n // \u5B50\u5F39\u7A97\u6587\u6848\n authCodeActivate: AuthCodeActivateCopy\n completeProfile: CompleteProfileCopy\n subscribe: SubscribeModalCopy\n}\n\nexport type CompleteProfileCopy = {\n title: string\n subtitle?: string\n firstName: string\n lastName: string\n email: string\n phone: string\n birthday: string\n country: string\n save: string\n cancel: string\n edit: string\n required: string\n}\n\nexport type SubscribeModalCopy = {\n title: string\n desc?: string\n placeholder: string\n policy?: string\n successTips?: string\n dealsType?: string\n buttonLabel?: string\n single_brand_subscribe?: boolean\n genre?: string\n sub_brand_type?: string\n}\n\n// \u2500\u2500\u2500 ConsumeCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ConsumeCreditsopy = {\n title?: string\n subtitle?: string\n soldOut: string\n unlockRewards: string\n btnRedeem: string\n insufficientCredits?: string\n pointUnit?: string\n off?: string\n imageMapping?: {\n [key in ConsumeCreditsItemType]?: { url: string }\n }\n list: ConsumeCreditsItem[]\n redeemModal: RedeemCouponModalCopy\n creditsPage?: { label: string; url: string }\n}\n\nexport type ConsumeCreditsItem = {\n redeemId: string | number\n title: string\n description?: string\n image: { url: string; alt?: string }\n type: ConsumeCreditsItemType\n product?: { handle: string; sku: string }\n price?: number\n value?: string\n rules?: string[]\n}\n\nexport type RedeemCouponModalCopy = {\n confirmTitle: string\n confirmButton: string\n commonError: string\n redeemLimitError: string\n inventoryNotEnough: string\n creditsNotEnough: string\n crossSiteError: string\n successTitle: string\n successDesc: string\n successButton: string\n successButtonUrl?: string\n}\n\n// \u2500\u2500\u2500 Referral Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ReferralCopy = {\n title?: string\n description?: string\n cashAvailableLabel: string\n cashPendingLabel: string\n creditUnit?: string\n referralLinksLabel?: string\n referralLinkBaseUrl?: string\n copyLabel?: string\n copiedLabel?: string\n howToTitle?: string\n howToDescription?: string\n learnMoreLabel?: string\n learnMoreUrl?: string\n image?: { url: string; alt?: string }\n ctaButton: string\n ctaUrl?: string\n loginTitle?: string\n loginDescription?: string\n loginCtaLabel?: string\n}\n\n// \u2500\u2500\u2500 Provider Context \u7C7B\u578B \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type AlpcConfig = {\n brand: string\n locale: string\n appName: string\n apiBaseUrl?: string\n}\n\nexport type MemberPopupContextValue = {\n profile: any\n isLoadingProfile: boolean\n creditInfo?: CreditInfoResponse\n fetchCreditInfo: (userId: string) => void\n openSignUpPopup: () => void\n openSignInPopup: () => void\n taskIdToTypeMapping?: Record<string, DTC_TASK_TYPE>\n alpcConfig: AlpcConfig\n}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,wBAAAC,EAAA,0BAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAN,GAOO,IAAKK,OACVA,EAAA,YAAc,eACdA,EAAA,eAAiB,kBACjBA,EAAA,SAAW,WACXA,EAAA,gBAAkB,mBAClBA,EAAA,UAAY,YACZA,EAAA,eAAiB,kBACjBA,EAAA,aAAe,gBACfA,EAAA,SAAW,WARDA,OAAA,IAYAD,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,oBAClBA,EAAA,mBAAqB,uBACrBA,EAAA,aAAe,gBACfA,EAAA,cAAgB,iBALNA,OAAA,IASAD,OACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,kBAClBA,EAAA,UAAY,YACZA,EAAA,KAAO,OAJGA,OAAA,IAQAD,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,iBAFLA,OAAA",
6
+ "names": ["type_exports", "__export", "ConsumeCreditsItemType", "EarnCreditsTaskType", "MemberPopupActionType", "MemberPopupPanelType", "__toCommonJS"]
7
+ }
@@ -1,2 +1,2 @@
1
- import{Fragment as st,jsx as x,jsxs as at}from"react/jsx-runtime";import f,{useEffect as Be,useCallback as w}from"react";import*as G from"@radix-ui/react-dialog";import{DEFAULT_COMMON_TEXT as Le}from"./constants";import{ChatBubble as We}from"./components/ChatBubble";import{ChatWindow as Ne}from"./components/ChatWindow";import{ComplianceDialog as $e}from"./components/ComplianceDialog";import{useChatState as ke}from"./hooks/useChatState";import{useChatAPI as ze}from"./hooks/useChatAPI";import{MessageRendererRegistry as Qe}from"./utils/messageRenderers";import{sanitizeInput as He}from"./utils/validation";import{saveUserId as re}from"./utils/userId";import{transformProducts as ie}from"./utils/productTransformers.js";import{transformCartData as Ye}from"./utils/cartTransformers.js";import oe from"js-cookie";import{TextBlock as Ge,ProductCard as Ve,ProductList as Xe,ProductComparisonRenderer as Ke,PolicyBlock as Je,createQuickRepliesRenderer as Ze,ThinkingBlock as je,ErrorBlock as Ue,FAQListRenderer as be,PromotionListRenderer as et,CartCard as tt}from"./components/MessageContent/index.js";const _t=({apiBaseUrl:de,headers:ce,recaptchaSitekey:V,recaptchaAction:le,site:i,channelCode:m,loginUserId:p,cartId:X,accessToken:K,position:pe,welcomeMessage:g,quickReplies:u,customRenderers:B,logoUrl:ue,title:fe,chatBubbleIcon:me,open:ge,onOpenChange:he,onOpen:ye,onClose:_e,onMessageSend:L,onError:h,onTextMessage:we,onProductList:Ce,onPromotionList:Re,onAddToCart:M,onCart:W,showNewSessionButton:xe,commonText:J,productCardRender:Se,productComparisonRender:Z,bottomTips:De,complianceConfig:C})=>{const N=C?.cookieName||"livechat_compliance_agreed",[j,$]=f.useState(!1),[U,Ee]=f.useState(()=>C?oe.get(N)!==void 0:!0),S=f.useMemo(()=>({...Le,...J}),[J]),Pe=ke({welcomeMessage:g,site:i,open:ge,onOpenChange:he,onOpen:ye,onClose:_e,onMessageSend:L,onError:h,onTextMessage:we,onProductList:Ce,onPromotionList:Re,onAddToCart:M,onCart:W,productCardRender:Se,productComparisonRender:Z}),{messages:T,isOpen:v,userId:o,sessionId:k,inputValue:z,isStreaming:Ie,openChat:D,closeChat:b,setInputValue:Q,setUserId:ee,addMessage:l,setMessages:R,clearMessages:A,handleSSEEvent:te,saveSession:E,clearSession:P}=Pe,[Me,q]=f.useState(!1),{sendMessageStream:se,createSession:y}=ze({apiBaseUrl:de,headers:ce,recaptchaConfig:{needRecaptcha:!!V,recaptchaSitekey:V,recaptchaAction:le},onError:h}),ae=f.useRef(async e=>{}),Te=f.useMemo(()=>{const e=new Qe;e.register("text",Ge),e.register("product_card",Ve),e.register("product_list",Xe),e.register("product_comparison",Ke),e.register("policy",Je),e.register("thinking",je),e.register("error",Ue),e.register("faq_list",be),e.register("promotion_list",et),e.register("cart",tt);const s=Ze(n=>{ae.current(n.value)});return e.register("quick_replies",s),B&&e.registerMany(B),e},[B]),H=f.useRef(!1);Be(()=>{if(!v){H.current=!1;return}if(o===void 0||H.current)return;H.current=!0;const e=k;e?ve(e):I()},[v,o]);const ne=w(e=>{if(Array.isArray(e.content))return e;const s=[];typeof e.content=="string"&&e.content.trim()&&s.push({type:"text",text:e.content});const n=e.structuredContent||e.structured_content;return Array.isArray(n)&&n.forEach(t=>{if(t.type==="product_list"&&Array.isArray(t.data))s.push({type:"product_list",data:{products:ie(t.data,i),title:void 0,commonText:S}});else if(t.type==="quick_replies"&&t.data?.replies)s.push({type:"quick_replies",data:{replies:t.data.replies}});else if(t.type==="policy"&&t.data?.title&&t.data?.content)s.push({type:"policy",data:{title:t.data.title,content:t.data.content}});else if(t.type==="product_comparison"&&t.data?.products&&t.data?.dimensions)s.push({type:"product_comparison",data:{products:ie(t.data.products,i),dimensions:t.data.dimensions,onAddToCart:M,commonText:S,productComparisonRender:Z}});else if(t.type==="faq_list"&&t.data?.found!==void 0)s.push({type:"faq_list",data:t.data});else if(t.type==="promotion_list"&&t.data?.found!==void 0)s.push({type:"promotion_list",data:{...t.data,commonText:S}});else if(t.type==="cart"&&t.data?.id!==void 0){const d=Ye(t.data);s.push({type:"cart",data:{...d,onCart:W,commonText:S}})}else s.push(t)}),s.length===0&&s.push({type:"text",text:""}),{...e,content:s}},[i,W,M,S]),I=w(async()=>{if(o!==void 0){g||q(!0);try{const e=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(e.success){E(e.sessionId),e.userId&&(re(e.userId),ee(e.userId)),A();const s=e.welcomeMessage||g;if(s){const n=[{type:"text",text:s}],t=e.quickQuestions;if(t&&t.length>0){const d=t.map((c,a)=>({id:`quick-${a}`,label:c,value:c}));n.push({type:"quick_replies",data:{replies:d}})}else u&&u.length>0&&n.push({type:"quick_replies",data:{replies:u}});l({id:`welcome-${Date.now()}`,role:"assistant",content:n,timestamp:Date.now()})}}}catch(e){console.error("[LiveChatWidget] Failed to create new session:",e),h?.(e);const s=e?.type==="GoogleRecaptchaError";l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:s?"Your session has expired. Please refresh the page and try again.":"Failed to create session. Please refresh the page and try again.",code:s?"RECAPTCHA_ERROR":"SESSION_CREATE_ERROR"}}],timestamp:Date.now()})}finally{q(!1)}}},[o,i,m,p,y,E,A,g,u,l,h]),ve=w(async e=>{g||q(!0);try{const s=await y({user_id:o??"",session_id:e,site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(s.success&&s.resumed){s.userId&&(re(s.userId),ee(s.userId));const n=s.welcomeMessage||g,t=n?[{type:"text",text:n}]:[],d=s.quickQuestions;if(d&&d.length>0){const c=d.map((a,F)=>({id:`quick-${F}`,label:a,value:a}));t.push({type:"quick_replies",data:{replies:c}})}else u&&u.length>0&&t.push({type:"quick_replies",data:{replies:u}});if(s.messages&&s.messages.length>0){const c=s.messages.filter(a=>a!=null).map(ne).filter(a=>a.content&&a.content.length>0&&!(a.content.length===1&&a.content[0].type==="text"&&!a.content[0].text));if(t.length>0){const a={id:`welcome-${Date.now()}`,role:"assistant",content:t,timestamp:Date.now()};R([a,...c])}else R(c)}else A(),t.length>0&&l({id:`welcome-${Date.now()}`,role:"assistant",content:t,timestamp:Date.now()})}else s.resumed||(P(),I())}catch(s){console.error("[LiveChatWidget] Failed to resume session:",s),s?.type==="GoogleRecaptchaError"?l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:"Your session has expired. Please refresh the page and try again.",code:"RECAPTCHA_ERROR"}}],timestamp:Date.now()}):(l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:"Failed to resume session. Creating a new session...",code:"SESSION_RESUME_ERROR"}}],timestamp:Date.now()}),P(),I())}finally{q(!1)}},[o,i,m,p,y,R,P,A,ne,I,g,u,l]),O=w(async(e,s=!1)=>{const n=e||z.trim();if(!n)return;!e&&!s&&Q("");const t=He(n);if(!t){h?.(new Error("Invalid message"));return}if(!s){const a={id:`user-${Date.now()}`,role:"user",content:[{type:"text",text:t}],timestamp:Date.now()};l(a)}const d={id:`thinking-${Date.now()}`,role:"assistant",content:[{type:"thinking",data:{status:"thinking"}}],timestamp:Date.now()};l(d),s||L?.(t);let c=!1;try{let a=k;if(!a){const r=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(r.success)a=r.sessionId,E(a);else throw new Error("Failed to create session")}if(await se({message:t,user_id:o??"",session_id:a,context:{cartId:X,accessToken:K,real_user_id:p}},r=>{te(r),r.event==="error"&&r.data.type==="validation_error"&&(c=!0,P())}),c&&!s){console.log("[LiveChatWidget] Session expired (validation_error), creating new session and retrying...");const r=T.filter(Y=>Y.id!==d.id);R(r);const _=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(_.success)E(_.sessionId),await O(t,!0);else throw new Error("Failed to recreate session after expiration")}}catch(a){console.error("[LiveChatWidget] Failed to send message:",a),h?.(a);const F=a?.type==="GoogleRecaptchaError";let r,_;F?(r="Your session has expired. Please refresh the page and try again.",_="RECAPTCHA_ERROR"):c?(r="Your session has expired. We tried to reconnect but failed. Please try again.",_="SESSION_EXPIRED"):(r="Failed to send message. Please check your network connection and try again.",_="NETWORK_ERROR");const Y=T.filter(Fe=>Fe.id!==d.id);R([...Y,{id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:r,code:_}}],timestamp:Date.now()}])}},[z,o,k,i,m,p,X,K,T,Q,l,R,y,se,te,E,P,L,h]);f.useEffect(()=>{ae.current=O},[O]);const Ae=w(()=>{C&&!U?$(!0):D()},[C,U,D]),qe=w(()=>{Ee(!0),$(!1),oe.set(N,"true",{expires:365}),D()},[D,N]),Oe=w(()=>{$(!1)},[]);return at(st,{children:[C&&x($e,{open:j,config:C,onAgree:qe,onClose:Oe}),x(We,{position:pe,onClick:Ae,visible:!v&&!j,iconImageUrl:me}),x(G.Root,{open:v,onOpenChange:e=>e?D():b(),children:x(G.Portal,{children:x(G.Content,{className:"livechat-window-enter",style:{position:"fixed",zIndex:9998},children:x(Ne,{messages:T,inputValue:z,onInputChange:Q,onSend:()=>O(),onClose:b,onNewSession:I,title:fe,logoUrl:ue,isSending:Ie,isLoadingHistory:Me,rendererRegistry:Te,inputPlaceholder:"",onAddToCart:M,showNewSessionButton:xe,bottomTips:De})})})})]})};export{_t as LiveChatWidget};
1
+ import{Fragment as st,jsx as x,jsxs as at}from"react/jsx-runtime";import f,{useEffect as Be,useCallback as _}from"react";import*as V from"@radix-ui/react-dialog";import{DEFAULT_COMMON_TEXT as Le}from"./constants";import{ChatBubble as We}from"./components/ChatBubble";import{ChatWindow as Ne}from"./components/ChatWindow";import{ComplianceDialog as $e}from"./components/ComplianceDialog";import{useChatState as ke}from"./hooks/useChatState";import{useChatAPI as ze}from"./hooks/useChatAPI";import{MessageRendererRegistry as He}from"./utils/messageRenderers";import{sanitizeInput as Qe}from"./utils/validation";import{saveUserId as ie}from"./utils/userId";import{transformProducts as oe}from"./utils/productTransformers.js";import{transformCartData as Ye}from"./utils/cartTransformers.js";import de from"js-cookie";import{TextBlock as Ge,ProductCard as Ve,ProductList as Xe,ProductComparisonRenderer as Ke,PolicyBlock as Je,createQuickRepliesRenderer as Ze,ThinkingBlock as je,ErrorBlock as Ue,FAQListRenderer as be,PromotionListRenderer as et,CartCard as tt}from"./components/MessageContent/index.js";const _t=({apiBaseUrl:ce,headers:le,recaptchaSitekey:X,recaptchaAction:pe,site:i,channelCode:m,loginUserId:p,cartId:K,accessToken:J,position:ue,welcomeMessage:g,quickReplies:u,customRenderers:L,logoUrl:fe,title:me,chatBubbleIcon:ge,open:he,onOpenChange:ye,onOpen:_e,onClose:we,onMessageSend:W,onError:h,onTextMessage:Ce,onProductList:Re,onPromotionList:xe,onAddToCart:T,onCart:N,showNewSessionButton:De,commonText:Z,productCardRender:Se,productComparisonRender:j,bottomTips:Ee,complianceConfig:w})=>{const $=w?.cookieName||"livechat_compliance_agreed",[U,k]=f.useState(!1),[b,Pe]=f.useState(()=>w?de.get($)!==void 0:!0),D=f.useMemo(()=>({...Le,...Z}),[Z]),Ie=ke({welcomeMessage:g,site:i,open:he,onOpenChange:ye,onOpen:_e,onClose:we,onMessageSend:W,onError:h,onTextMessage:Ce,onProductList:Re,onPromotionList:xe,onAddToCart:T,onCart:N,productCardRender:Se,productComparisonRender:j}),{messages:v,isOpen:A,userId:o,sessionId:z,inputValue:H,isStreaming:Me,openChat:S,closeChat:ee,setInputValue:Q,setUserId:te,addMessage:l,setMessages:C,clearMessages:q,startStream:se,saveSession:E,clearSession:P}=Ie,[Te,O]=f.useState(!1),{sendMessageStream:ae,createSession:y}=ze({apiBaseUrl:ce,headers:le,recaptchaConfig:{needRecaptcha:!!X,recaptchaSitekey:X,recaptchaAction:pe},onError:h}),re=f.useRef(async e=>{}),ve=f.useMemo(()=>{const e=new He;e.register("text",Ge),e.register("product_card",Ve),e.register("product_list",Xe),e.register("product_comparison",Ke),e.register("policy",Je),e.register("thinking",je),e.register("error",Ue),e.register("faq_list",be),e.register("promotion_list",et),e.register("cart",tt);const s=Ze(r=>{re.current(r.value)});return e.register("quick_replies",s),L&&e.registerMany(L),e},[L]),Y=f.useRef(!1);Be(()=>{if(!A){Y.current=!1;return}if(o===void 0||Y.current)return;Y.current=!0;const e=z;e?Ae(e):I()},[A,o]);const ne=_(e=>{if(Array.isArray(e.content))return e;const s=[];typeof e.content=="string"&&e.content.trim()&&s.push({type:"text",text:e.content});const r=e.structuredContent||e.structured_content;return Array.isArray(r)&&r.forEach(t=>{if(t.type==="product_list"&&Array.isArray(t.data))s.push({type:"product_list",data:{products:oe(t.data,i),title:void 0,commonText:D}});else if(t.type==="quick_replies"&&t.data?.replies)s.push({type:"quick_replies",data:{replies:t.data.replies}});else if(t.type==="policy"&&t.data?.title&&t.data?.content)s.push({type:"policy",data:{title:t.data.title,content:t.data.content}});else if(t.type==="product_comparison"&&t.data?.products&&t.data?.dimensions)s.push({type:"product_comparison",data:{products:oe(t.data.products,i),dimensions:t.data.dimensions,onAddToCart:T,commonText:D,productComparisonRender:j}});else if(t.type==="faq_list"&&t.data?.found!==void 0)s.push({type:"faq_list",data:t.data});else if(t.type==="promotion_list"&&t.data?.found!==void 0)s.push({type:"promotion_list",data:{...t.data,commonText:D}});else if(t.type==="cart"&&t.data?.id!==void 0){const d=Ye(t.data);s.push({type:"cart",data:{...d,onCart:N,commonText:D}})}else s.push(t)}),s.length===0&&s.push({type:"text",text:""}),{...e,content:s}},[i,N,T,D]),I=_(async()=>{if(o!==void 0){g||O(!0);try{const e=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(e.success){E(e.sessionId),e.userId&&(ie(e.userId),te(e.userId)),q();const s=e.welcomeMessage||g;if(s){const r=[{type:"text",text:s}],t=e.quickQuestions;if(t&&t.length>0){const d=t.map((c,a)=>({id:`quick-${a}`,label:c,value:c}));r.push({type:"quick_replies",data:{replies:d}})}else u&&u.length>0&&r.push({type:"quick_replies",data:{replies:u}});l({id:`welcome-${Date.now()}`,role:"assistant",content:r,timestamp:Date.now()})}}}catch(e){console.error("[LiveChatWidget] Failed to create new session:",e),h?.(e);const s=e?.type==="GoogleRecaptchaError";l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:s?"Your session has expired. Please refresh the page and try again.":"Failed to create session. Please refresh the page and try again.",code:s?"RECAPTCHA_ERROR":"SESSION_CREATE_ERROR"}}],timestamp:Date.now()})}finally{O(!1)}}},[o,i,m,p,y,E,q,g,u,l,h]),Ae=_(async e=>{g||O(!0);try{const s=await y({user_id:o??"",session_id:e,site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(s.success&&s.resumed){s.userId&&(ie(s.userId),te(s.userId));const r=s.welcomeMessage||g,t=r?[{type:"text",text:r}]:[],d=s.quickQuestions;if(d&&d.length>0){const c=d.map((a,M)=>({id:`quick-${M}`,label:a,value:a}));t.push({type:"quick_replies",data:{replies:c}})}else u&&u.length>0&&t.push({type:"quick_replies",data:{replies:u}});if(s.messages&&s.messages.length>0){const c=s.messages.filter(a=>a!=null).map(ne).filter(a=>a.content&&a.content.length>0&&!(a.content.length===1&&a.content[0].type==="text"&&!a.content[0].text));if(t.length>0){const a={id:`welcome-${Date.now()}`,role:"assistant",content:t,timestamp:Date.now()};C([a,...c])}else C(c)}else q(),t.length>0&&l({id:`welcome-${Date.now()}`,role:"assistant",content:t,timestamp:Date.now()})}else s.resumed||(P(),I())}catch(s){console.error("[LiveChatWidget] Failed to resume session:",s),s?.type==="GoogleRecaptchaError"?l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:"Your session has expired. Please refresh the page and try again.",code:"RECAPTCHA_ERROR"}}],timestamp:Date.now()}):(l({id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:"Failed to resume session. Creating a new session...",code:"SESSION_RESUME_ERROR"}}],timestamp:Date.now()}),P(),I())}finally{O(!1)}},[o,i,m,p,y,C,P,q,ne,I,g,u,l]),F=_(async(e,s=!1)=>{const r=e||H.trim();if(!r)return;!e&&!s&&Q("");const t=Qe(r);if(!t){h?.(new Error("Invalid message"));return}if(!s){const a={id:`user-${Date.now()}`,role:"user",content:[{type:"text",text:t}],timestamp:Date.now()};l(a)}const d={id:`thinking-${Date.now()}`,role:"assistant",content:[{type:"thinking",data:{status:"thinking"}}],timestamp:Date.now()};l(d),s||W?.(t);let c=!1;try{let a=z;if(!a){const n=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(n.success)a=n.sessionId,E(a);else throw new Error("Failed to create session")}const M={message:t,user_id:o??"",session_id:a,context:{cartId:K,accessToken:J,real_user_id:p}},R=se();if(await ae(M,n=>{R(n),n.event==="error"&&n.data.type==="validation_error"&&(c=!0,P())}),c&&!s){console.log("[LiveChatWidget] Session expired (validation_error), creating new session and retrying...");const n=v.filter(G=>G.id!==d.id);C(n);const B=await y({user_id:o??"",site:i,channel_code:m,real_user_id:p,page_url:typeof window<"u"?window.location.href:void 0});if(B.success)E(B.sessionId),await F(t,!0);else throw new Error("Failed to recreate session after expiration")}}catch(a){console.error("[LiveChatWidget] Failed to send message:",a),h?.(a);const M=a?.type==="GoogleRecaptchaError";let R,n;M?(R="Your session has expired. Please refresh the page and try again.",n="RECAPTCHA_ERROR"):c?(R="Your session has expired. We tried to reconnect but failed. Please try again.",n="SESSION_EXPIRED"):(R="Failed to send message. Please check your network connection and try again.",n="NETWORK_ERROR");const B=v.filter(G=>G.id!==d.id);C([...B,{id:`error-${Date.now()}`,role:"system",content:[{type:"error",data:{message:R,code:n}}],timestamp:Date.now()}])}},[H,o,z,i,m,p,K,J,v,Q,l,C,y,ae,se,E,P,W,h]);f.useEffect(()=>{re.current=F},[F]);const qe=_(()=>{w&&!b?k(!0):S()},[w,b,S]),Oe=_(()=>{Pe(!0),k(!1),de.set($,"true",{expires:365}),S()},[S,$]),Fe=_(()=>{k(!1)},[]);return at(st,{children:[w&&x($e,{open:U,config:w,onAgree:Oe,onClose:Fe}),x(We,{position:ue,onClick:qe,visible:!A&&!U,iconImageUrl:ge}),x(V.Root,{open:A,onOpenChange:e=>e?S():ee(),children:x(V.Portal,{children:x(V.Content,{className:"livechat-window-enter",style:{position:"fixed",zIndex:9998},children:x(Ne,{messages:v,inputValue:H,onInputChange:Q,onSend:()=>F(),onClose:ee,onNewSession:I,title:me,logoUrl:fe,isSending:Me,isLoadingHistory:Te,rendererRegistry:ve,inputPlaceholder:"",onAddToCart:T,showNewSessionButton:De,bottomTips:Ee})})})})]})};export{_t as LiveChatWidget};
2
2
  //# sourceMappingURL=LiveChatWidget.js.map