@anker-in/campaign-ui 0.3.4 → 0.4.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.
- package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js +1 -1
- package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js.map +3 -3
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +2 -2
- package/dist/cjs/components/LiveChatWidget/components/MessageList.js +3 -3
- package/dist/cjs/components/LiveChatWidget/components/MessageList.js.map +3 -3
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.d.ts +2 -1
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js +1 -1
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js.map +2 -2
- package/dist/cjs/components/LiveChatWidget/types.d.ts +2 -1
- package/dist/cjs/components/LiveChatWidget/types.js.map +1 -1
- package/dist/cjs/components/credits/context/const.d.ts +10 -2
- package/dist/cjs/components/credits/context/const.js +1 -1
- package/dist/cjs/components/credits/context/const.js.map +2 -2
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.d.ts +7 -0
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js +2 -0
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js.map +7 -0
- package/dist/cjs/components/credits/context/hooks/useMyRewards.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useMyRewards.js.map +3 -3
- package/dist/cjs/components/credits/context/hooks/useRedeemGoGift.d.ts +17 -0
- package/dist/cjs/components/credits/context/hooks/useRedeemGoGift.js +2 -0
- package/dist/cjs/components/credits/context/hooks/useRedeemGoGift.js.map +7 -0
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.d.ts +7 -2
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +3 -3
- package/dist/cjs/components/credits/context/provider.d.ts +5 -1
- package/dist/cjs/components/credits/context/provider.js +1 -1
- package/dist/cjs/components/credits/context/provider.js.map +3 -3
- package/dist/cjs/components/credits/context/response.d.ts +1 -0
- package/dist/cjs/components/credits/context/response.js.map +1 -1
- package/dist/cjs/components/credits/context/utils/atobID.d.ts +1 -0
- package/dist/cjs/components/credits/context/utils/atobID.js +2 -0
- package/dist/cjs/components/credits/context/utils/atobID.js.map +7 -0
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.d.ts +5 -0
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js +2 -0
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js.map +7 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.d.ts +8 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js +2 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js.map +7 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +9 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +2 -0
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +7 -0
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.d.ts +6 -0
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js +2 -0
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js.map +7 -0
- package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
- package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +2 -2
- package/dist/cjs/components/credits/creditsBanner/index.js +2 -2
- package/dist/cjs/components/credits/creditsBanner/index.js.map +2 -2
- package/dist/cjs/components/credits/creditsCash/CreditsCash.js +1 -1
- package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +2 -2
- package/dist/cjs/components/credits/creditsGoGift/CreditsGoGift.d.ts +5 -0
- package/dist/cjs/components/credits/creditsGoGift/CreditsGoGift.js +2 -0
- package/dist/cjs/components/credits/creditsGoGift/CreditsGoGift.js.map +7 -0
- package/dist/cjs/components/credits/creditsGoGift/index.d.ts +2 -0
- package/dist/cjs/components/credits/creditsGoGift/index.js +2 -0
- package/dist/cjs/components/credits/creditsGoGift/index.js.map +7 -0
- package/dist/cjs/components/credits/creditsGoGift/type.d.ts +22 -0
- package/dist/cjs/components/credits/creditsGoGift/type.js +2 -0
- package/dist/cjs/components/credits/creditsGoGift/type.js.map +7 -0
- package/dist/cjs/components/credits/creditsGofit/CreditsGofit.d.ts +5 -0
- package/dist/cjs/components/credits/creditsGofit/CreditsGofit.js +2 -0
- package/dist/cjs/components/credits/creditsGofit/CreditsGofit.js.map +7 -0
- package/dist/cjs/components/credits/creditsGofit/index.d.ts +2 -0
- package/dist/cjs/components/credits/creditsGofit/index.js +2 -0
- package/dist/cjs/components/credits/creditsGofit/index.js.map +7 -0
- package/dist/cjs/components/credits/creditsGofit/type.d.ts +22 -0
- package/dist/cjs/components/credits/creditsGofit/type.js +2 -0
- package/dist/cjs/components/credits/creditsGofit/type.js.map +7 -0
- package/dist/cjs/components/credits/creditsInfoCard/index.js +1 -1
- package/dist/cjs/components/credits/creditsInfoCard/index.js.map +3 -3
- package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
- package/dist/cjs/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.d.ts +10 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js +2 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js.map +7 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.d.ts +10 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.js +2 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.js.map +7 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.d.ts +4 -5
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.d.ts +2 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.d.ts +2 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.d.ts +1 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.d.ts +3 -4
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.d.ts +2 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.d.ts +4 -5
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.d.ts +10 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js +2 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js.map +7 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.d.ts +9 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.js +2 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.js.map +7 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.d.ts +8 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +2 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +7 -0
- package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/type.d.ts +11 -0
- package/dist/cjs/components/credits/creditsRedeemList/type.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/type.js.map +1 -1
- package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
- package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +2 -2
- package/dist/cjs/components/credits/creditsWaysToGetCredits/type.d.ts +2 -2
- package/dist/cjs/components/credits/creditsWaysToGetCredits/type.js.map +1 -1
- package/dist/cjs/components/credits/index.d.ts +2 -1
- package/dist/cjs/components/credits/index.js +1 -1
- package/dist/cjs/components/credits/index.js.map +3 -3
- package/dist/cjs/components/credits/modal/MyRewardsModal.d.ts +16 -0
- package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
- package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/RewardsModal.d.ts +64 -0
- package/dist/cjs/components/credits/modal/RewardsModal.js +2 -0
- package/dist/cjs/components/credits/modal/RewardsModal.js.map +7 -0
- package/dist/cjs/components/credits/modal/activitiesModal.d.ts +1 -1
- package/dist/cjs/components/credits/modal/activitiesModal.js +2 -2
- package/dist/cjs/components/credits/modal/activitiesModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js +2 -2
- package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/loadingDots.js +1 -1
- package/dist/cjs/components/credits/modal/loadingDots.js.map +2 -2
- package/dist/cjs/components/credits/modal/modalContainer.js +2 -2
- package/dist/cjs/components/credits/modal/modalContainer.js.map +4 -4
- package/dist/cjs/components/credits/modal/rulesModal.d.ts +1 -1
- package/dist/cjs/components/credits/modal/rulesModal.js +2 -2
- package/dist/cjs/components/credits/modal/rulesModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/subscribeModal.d.ts +1 -1
- package/dist/cjs/components/credits/modal/subscribeModal.js +2 -2
- package/dist/cjs/components/credits/modal/subscribeModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/tip.js +1 -1
- package/dist/cjs/components/credits/modal/tip.js.map +2 -2
- package/dist/cjs/components/credits/type.d.ts +67 -5
- package/dist/cjs/components/credits/type.js +1 -1
- package/dist/cjs/components/credits/type.js.map +1 -1
- package/dist/cjs/stories/LiveChatWidget.stories.js +2 -9
- package/dist/cjs/stories/LiveChatWidget.stories.js.map +2 -2
- package/dist/cjs/templates/Credits.d.ts +1 -87
- package/dist/cjs/templates/Credits.js +1 -1
- package/dist/cjs/templates/Credits.js.map +3 -3
- package/dist/cjs/templates/Credits.types.d.ts +96 -0
- package/dist/cjs/templates/Credits.types.js +2 -0
- package/dist/cjs/templates/Credits.types.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.js +1 -1
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.js.map +3 -3
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +2 -2
- package/dist/esm/components/LiveChatWidget/components/MessageList.js +3 -3
- package/dist/esm/components/LiveChatWidget/components/MessageList.js.map +3 -3
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.d.ts +2 -1
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.js +1 -1
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.js.map +2 -2
- package/dist/esm/components/LiveChatWidget/types.d.ts +2 -1
- package/dist/esm/components/credits/context/const.d.ts +10 -2
- package/dist/esm/components/credits/context/const.js +1 -1
- package/dist/esm/components/credits/context/const.js.map +2 -2
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.d.ts +7 -0
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js +2 -0
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js.map +7 -0
- package/dist/esm/components/credits/context/hooks/useMyRewards.js +1 -1
- package/dist/esm/components/credits/context/hooks/useMyRewards.js.map +3 -3
- package/dist/esm/components/credits/context/hooks/useRedeemGoGift.d.ts +17 -0
- package/dist/esm/components/credits/context/hooks/useRedeemGoGift.js +2 -0
- package/dist/esm/components/credits/context/hooks/useRedeemGoGift.js.map +7 -0
- package/dist/esm/components/credits/context/hooks/useRedeemableList.d.ts +7 -2
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +3 -3
- package/dist/esm/components/credits/context/provider.d.ts +5 -1
- package/dist/esm/components/credits/context/provider.js +1 -1
- package/dist/esm/components/credits/context/provider.js.map +3 -3
- package/dist/esm/components/credits/context/response.d.ts +1 -0
- package/dist/esm/components/credits/context/utils/atobID.d.ts +1 -0
- package/dist/esm/components/credits/context/utils/atobID.js +2 -0
- package/dist/esm/components/credits/context/utils/atobID.js.map +7 -0
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.d.ts +5 -0
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js +2 -0
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js.map +7 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.d.ts +8 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js +2 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js.map +7 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +9 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +2 -0
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +7 -0
- package/dist/esm/components/credits/context/utils/variantGetCoupon.d.ts +6 -0
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js +2 -0
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js.map +7 -0
- package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
- package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +1 -1
- package/dist/esm/components/credits/creditsBanner/index.js +2 -2
- package/dist/esm/components/credits/creditsBanner/index.js.map +2 -2
- package/dist/esm/components/credits/creditsCash/CreditsCash.js +1 -1
- package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +1 -1
- package/dist/esm/components/credits/creditsGoGift/CreditsGoGift.d.ts +5 -0
- package/dist/esm/components/credits/creditsGoGift/CreditsGoGift.js +2 -0
- package/dist/esm/components/credits/creditsGoGift/CreditsGoGift.js.map +7 -0
- package/dist/esm/components/credits/creditsGoGift/index.d.ts +2 -0
- package/dist/esm/components/credits/creditsGoGift/index.js +2 -0
- package/dist/esm/components/credits/creditsGoGift/index.js.map +7 -0
- package/dist/esm/components/credits/creditsGoGift/type.d.ts +22 -0
- package/dist/esm/components/credits/creditsGoGift/type.js +1 -0
- package/dist/esm/components/credits/creditsGoGift/type.js.map +7 -0
- package/dist/esm/components/credits/creditsGofit/CreditsGofit.d.ts +5 -0
- package/dist/esm/components/credits/creditsGofit/CreditsGofit.js +2 -0
- package/dist/esm/components/credits/creditsGofit/CreditsGofit.js.map +7 -0
- package/dist/esm/components/credits/creditsGofit/index.d.ts +2 -0
- package/dist/esm/components/credits/creditsGofit/index.js +2 -0
- package/dist/esm/components/credits/creditsGofit/index.js.map +7 -0
- package/dist/esm/components/credits/creditsGofit/type.d.ts +22 -0
- package/dist/esm/components/credits/creditsGofit/type.js +1 -0
- package/dist/esm/components/credits/creditsGofit/type.js.map +7 -0
- package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
- package/dist/esm/components/credits/creditsInfoCard/index.js.map +3 -3
- package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
- package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +1 -1
- package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.d.ts +10 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js +2 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.js.map +7 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.d.ts +10 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.js +2 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.js.map +7 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.d.ts +4 -5
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.d.ts +2 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.d.ts +2 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Init.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.d.ts +1 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.d.ts +3 -4
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.d.ts +2 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.d.ts +4 -5
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.d.ts +10 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js +2 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.js.map +7 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.d.ts +9 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.js +2 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.js.map +7 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.d.ts +8 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +2 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +7 -0
- package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/type.d.ts +11 -0
- package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
- package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +1 -1
- package/dist/esm/components/credits/creditsWaysToGetCredits/type.d.ts +2 -2
- package/dist/esm/components/credits/creditsWaysToGetCredits/type.js.map +1 -1
- package/dist/esm/components/credits/index.d.ts +2 -1
- package/dist/esm/components/credits/index.js +1 -1
- package/dist/esm/components/credits/index.js.map +3 -3
- package/dist/esm/components/credits/modal/MyRewardsModal.d.ts +16 -0
- package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
- package/dist/esm/components/credits/modal/MyRewardsModal.js.map +3 -3
- package/dist/esm/components/credits/modal/RewardsModal.d.ts +64 -0
- package/dist/esm/components/credits/modal/RewardsModal.js +2 -0
- package/dist/esm/components/credits/modal/RewardsModal.js.map +7 -0
- package/dist/esm/components/credits/modal/activitiesModal.d.ts +1 -1
- package/dist/esm/components/credits/modal/activitiesModal.js +2 -2
- package/dist/esm/components/credits/modal/activitiesModal.js.map +3 -3
- package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js +2 -2
- package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js.map +2 -2
- package/dist/esm/components/credits/modal/loadingDots.js +1 -1
- package/dist/esm/components/credits/modal/loadingDots.js.map +2 -2
- package/dist/esm/components/credits/modal/modalContainer.js +2 -2
- package/dist/esm/components/credits/modal/modalContainer.js.map +3 -3
- package/dist/esm/components/credits/modal/rulesModal.d.ts +1 -1
- package/dist/esm/components/credits/modal/rulesModal.js +2 -2
- package/dist/esm/components/credits/modal/rulesModal.js.map +3 -3
- package/dist/esm/components/credits/modal/subscribeModal.d.ts +1 -1
- package/dist/esm/components/credits/modal/subscribeModal.js +2 -2
- package/dist/esm/components/credits/modal/subscribeModal.js.map +2 -2
- package/dist/esm/components/credits/modal/tip.js +1 -1
- package/dist/esm/components/credits/modal/tip.js.map +2 -2
- package/dist/esm/components/credits/type.d.ts +67 -5
- package/dist/esm/stories/LiveChatWidget.stories.js +1 -8
- package/dist/esm/stories/LiveChatWidget.stories.js.map +2 -2
- package/dist/esm/templates/Credits.d.ts +1 -87
- package/dist/esm/templates/Credits.js +1 -1
- package/dist/esm/templates/Credits.js.map +3 -3
- package/dist/esm/templates/Credits.types.d.ts +96 -0
- package/dist/esm/templates/Credits.types.js +2 -0
- package/dist/esm/templates/Credits.types.js.map +7 -0
- package/package.json +2 -2
- package/src/components/LiveChatWidget/LiveChatWidget.tsx +20 -0
- package/src/components/LiveChatWidget/components/MessageContent/PromotionList.tsx +1 -1
- package/src/components/LiveChatWidget/components/MessageList.tsx +39 -44
- package/src/components/LiveChatWidget/hooks/useChatState.ts +4 -3
- package/src/components/LiveChatWidget/types.ts +2 -1
- package/src/components/credits/context/const.ts +8 -0
- package/src/components/credits/context/hooks/useMyRewards.ts +7 -31
- package/src/components/credits/context/hooks/useRedeemGoGift.ts +36 -0
- package/src/components/credits/context/hooks/useRedeemableList.ts +13 -19
- package/src/components/credits/context/provider.tsx +17 -2
- package/src/components/credits/context/response.ts +1 -0
- package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +2 -2
- package/src/components/credits/creditsBanner/index.tsx +5 -5
- package/src/components/credits/creditsCash/CreditsCash.tsx +1 -1
- package/src/components/credits/creditsGoGift/CreditsGoGift.tsx +210 -0
- package/src/components/credits/creditsGoGift/index.ts +2 -0
- package/src/components/credits/creditsGoGift/type.ts +23 -0
- package/src/components/credits/creditsInfoCard/index.tsx +5 -28
- package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +1 -1
- package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +39 -17
- package/src/components/credits/creditsRedeemList/RedeemCouponModal/CouponInit.tsx +77 -0
- package/src/components/credits/creditsRedeemList/RedeemCouponModal/CouponSuccess.tsx +86 -0
- package/src/components/credits/creditsRedeemList/RedeemCouponModal.tsx +29 -138
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +5 -6
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Init.tsx +11 -12
- package/src/components/credits/creditsRedeemList/RedeemProductModal/NonProductValue.tsx +23 -14
- package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +11 -9
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +4 -5
- package/src/components/credits/creditsRedeemList/RedeemProductModal/index.tsx +29 -28
- package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductInit.tsx +101 -0
- package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal/VirtualProductSuccess.tsx +65 -0
- package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal.tsx +156 -0
- package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +1 -1
- package/src/components/credits/creditsRedeemList/type.ts +11 -0
- package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +2 -2
- package/src/components/credits/creditsWaysToGetCredits/type.ts +2 -2
- package/src/components/credits/index.ts +2 -1
- package/src/components/credits/modal/{activitiesModal.tsx → ActivitiesModal.tsx} +2 -2
- package/src/components/credits/modal/{creditsUploadReceiptModal.tsx → CreditsUploadReceiptModal.tsx} +1 -1
- package/src/components/credits/modal/{modalContainer.tsx → ModalContainer.tsx} +1 -1
- package/src/components/credits/modal/{MyRewardsModal.tsx → RewardsModal.tsx} +145 -103
- package/src/components/credits/modal/{rulesModal.tsx → RulesModal.tsx} +1 -1
- package/src/components/credits/modal/{subscribeModal.tsx → SubscribeModal.tsx} +1 -1
- package/src/components/credits/type.ts +68 -5
- package/src/stories/LiveChatWidget.stories.tsx +7 -12
- package/src/styles/livechat.css +29 -0
- package/src/templates/Credits.tsx +110 -142
- package/src/templates/Credits.types.ts +110 -0
- package/dist/index.d.mts +0 -1305
- package/dist/index.d.ts +0 -1305
- package/dist/index.js +0 -26656
- package/dist/index.js.map +0 -1
- package/dist/index.mjs +0 -26641
- package/dist/index.mjs.map +0 -1
- /package/src/components/credits/modal/{loadingDots.tsx → LoadingDots.tsx} +0 -0
- /package/src/components/credits/modal/{tip.tsx → Tip.tsx} +0 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { Container, Heading, Picture, Button, Text } from '@anker-in/headless-ui'
|
|
2
|
+
import { useMemo, useState } from 'react'
|
|
3
|
+
import { classNames as cn } from '@anker-in/lib'
|
|
4
|
+
|
|
5
|
+
import RedeemVirtualProductModal from '../creditsRedeemList/RedeemVirtualProductModal'
|
|
6
|
+
import useRedeemableList from '../context/hooks/useRedeemableList'
|
|
7
|
+
import { useCreditsContext } from '../context/provider'
|
|
8
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
9
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
10
|
+
import { CreditsGoGiftCopy } from './type'
|
|
11
|
+
import { AlpcConsumeType, AlpcErrorCode } from '../context/const'
|
|
12
|
+
import RulesModal from '../modal/RulesModal'
|
|
13
|
+
import { useRegistration } from '../../../components/registration'
|
|
14
|
+
|
|
15
|
+
export const CreditsGoGift = ({ copy, id }: { copy: CreditsGoGiftCopy; id?: string }) => {
|
|
16
|
+
const [showModal, setShowModal] = useState(false)
|
|
17
|
+
const [redeemError, setRedeemError] = useState<string>()
|
|
18
|
+
const [rules, setRules] = useState<string | string[]>()
|
|
19
|
+
const { redeemableList } = useRedeemableList({ consumeType: AlpcConsumeType.ExternalProduct })
|
|
20
|
+
const { pageCommon, profile, creditInfo, setOpenMyRewardsModal, openSignUpPopup } = useCreditsContext()
|
|
21
|
+
const { authCodeActivate } = useRegistration()
|
|
22
|
+
const { brand } = useHeadlessContext()
|
|
23
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
24
|
+
|
|
25
|
+
const isLogin = Object.keys(profile || {}).length > 0
|
|
26
|
+
|
|
27
|
+
const redeemModalCopy = pageCommon?.redeemModal || ({} as any)
|
|
28
|
+
|
|
29
|
+
console.log('redeemableList', redeemableList)
|
|
30
|
+
|
|
31
|
+
const item = useMemo(() => {
|
|
32
|
+
// 根据 redeemId 查询 ExternalProduct 的 ALPC 数据
|
|
33
|
+
const alpcData = redeemableList.find(item => item.id?.toString() === copy?.redeemId?.toString())
|
|
34
|
+
if (!alpcData) return null
|
|
35
|
+
|
|
36
|
+
return {
|
|
37
|
+
alpc: {
|
|
38
|
+
id: alpcData.id.toString(),
|
|
39
|
+
consumeCredits: alpcData.consume_credits,
|
|
40
|
+
remainingInventory: alpcData.remaining_inventory,
|
|
41
|
+
isLimited: !!alpcData.is_limited,
|
|
42
|
+
consumeType: alpcData.consume_type,
|
|
43
|
+
showCredit: true,
|
|
44
|
+
title: alpcData.name,
|
|
45
|
+
},
|
|
46
|
+
config: {
|
|
47
|
+
title: copy.cardTitle,
|
|
48
|
+
desc: copy.cardDesc,
|
|
49
|
+
type: copy.type,
|
|
50
|
+
value: copy.value || '',
|
|
51
|
+
rules: copy.rules,
|
|
52
|
+
image: copy.cardImg,
|
|
53
|
+
},
|
|
54
|
+
}
|
|
55
|
+
}, [redeemableList, copy])
|
|
56
|
+
|
|
57
|
+
const handleRedeemError = (code: AlpcErrorCode) => {
|
|
58
|
+
const redeemModalCopy = pageCommon?.redeemModal
|
|
59
|
+
if (code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {
|
|
60
|
+
setRedeemError(redeemModalCopy?.redeemLimitError)
|
|
61
|
+
} else if (code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {
|
|
62
|
+
setRedeemError(redeemModalCopy?.inventoryNotEnough)
|
|
63
|
+
} else if (code === AlpcErrorCode.CodeLpcNotEnoughCredits) {
|
|
64
|
+
setRedeemError(redeemModalCopy?.creditsNotEnough)
|
|
65
|
+
} else if (code === AlpcErrorCode.CodeCrossSiteError) {
|
|
66
|
+
setRedeemError(redeemModalCopy?.crossSiteError)
|
|
67
|
+
} else {
|
|
68
|
+
setRedeemError(redeemModalCopy?.commonError)
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
const inSufficientCredit = useMemo(() => {
|
|
73
|
+
return (
|
|
74
|
+
profile?.activated && Number(item?.alpc?.consumeCredits) > Number(creditInfo?.available_credit || 0)
|
|
75
|
+
)
|
|
76
|
+
}, [profile?.activated, item?.alpc?.consumeCredits, creditInfo?.available_credit])
|
|
77
|
+
|
|
78
|
+
const soldOut = Number(item?.alpc.remainingInventory) <= 0
|
|
79
|
+
|
|
80
|
+
const redeemButtonText = useMemo(() => {
|
|
81
|
+
// 缺货文案
|
|
82
|
+
if (soldOut) {
|
|
83
|
+
return pageCommon?.soldOut || 'Sold Out'
|
|
84
|
+
} else if (!isLogin) {
|
|
85
|
+
return copy.unlockRewards
|
|
86
|
+
} else {
|
|
87
|
+
return copy.redeemBtn
|
|
88
|
+
}
|
|
89
|
+
}, [isLogin, soldOut, copy, pageCommon])
|
|
90
|
+
|
|
91
|
+
if (!item) return null
|
|
92
|
+
|
|
93
|
+
return (
|
|
94
|
+
<Container id={id}>
|
|
95
|
+
<Heading as="h2" size="4" html={copy.title} />
|
|
96
|
+
<div
|
|
97
|
+
className={cn(
|
|
98
|
+
'mt-[24px] flex h-fit w-full items-center bg-[#eaeaec] p-[24px]',
|
|
99
|
+
'l:flex-col l:gap-[12px] l:p-[12px]',
|
|
100
|
+
'min-l:flex-row min-l:gap-[64px]',
|
|
101
|
+
!rounded && 'rounded-none',
|
|
102
|
+
rounded && 'rounded-[12px]'
|
|
103
|
+
)}
|
|
104
|
+
>
|
|
105
|
+
{/* Card Image */}
|
|
106
|
+
<div className="relative flex h-[200px] w-[304px] shrink-0 items-center justify-center overflow-hidden l:h-auto l:aspect-h-[120] l:aspect-w-[304] l:w-full">
|
|
107
|
+
{copy.cardImg?.url && (
|
|
108
|
+
<Picture
|
|
109
|
+
className={cn('size-full', rounded && 'rounded-[12px]')}
|
|
110
|
+
source={copy.mCardImg?.url ? `${copy.cardImg.url},${copy.mCardImg.url} 1024` : copy.cardImg.url}
|
|
111
|
+
/>
|
|
112
|
+
)}
|
|
113
|
+
</div>
|
|
114
|
+
|
|
115
|
+
{/* Content Section */}
|
|
116
|
+
<div className="flex w-full items-end justify-between l:flex-col l:items-start l:gap-[24px]">
|
|
117
|
+
{/* Text Content */}
|
|
118
|
+
<div className="flex flex-col gap-[20px] l:w-full l:gap-[12px]">
|
|
119
|
+
<div className="flex flex-col gap-[4px]">
|
|
120
|
+
<Text
|
|
121
|
+
html={copy.cardTitle}
|
|
122
|
+
className="text-[32px] font-bold leading-[1.2] text-[#1D1D1F] l:text-[18px]"
|
|
123
|
+
/>
|
|
124
|
+
<Text
|
|
125
|
+
html={copy.cardDesc}
|
|
126
|
+
className="text-[18px] font-bold leading-[1.4] text-[#3D3D3F] l:text-[12px]"
|
|
127
|
+
/>
|
|
128
|
+
</div>
|
|
129
|
+
<Text
|
|
130
|
+
html={copy.cardTip}
|
|
131
|
+
className="text-[18px] font-bold leading-[1.4] text-[#000] l:text-[12px]"
|
|
132
|
+
/>
|
|
133
|
+
</div>
|
|
134
|
+
|
|
135
|
+
{/* Button and Links */}
|
|
136
|
+
<div className="flex shrink-0 flex-col items-end l:w-full l:items-start">
|
|
137
|
+
<Button
|
|
138
|
+
variant="primary"
|
|
139
|
+
disabled={inSufficientCredit || soldOut}
|
|
140
|
+
onClick={() => {
|
|
141
|
+
if (!isLogin) {
|
|
142
|
+
openSignUpPopup()
|
|
143
|
+
} else if (!profile?.activated && !authCodeActivate.isActivateSuccess) {
|
|
144
|
+
authCodeActivate.open()
|
|
145
|
+
} else {
|
|
146
|
+
setShowModal(true)
|
|
147
|
+
}
|
|
148
|
+
}}
|
|
149
|
+
title={inSufficientCredit ? pageCommon.insufficientCredits : redeemButtonText}
|
|
150
|
+
>
|
|
151
|
+
{redeemButtonText}
|
|
152
|
+
</Button>
|
|
153
|
+
{redeemError && (
|
|
154
|
+
<div className="mt-[8px] text-[14px] font-bold leading-[1.2] text-[#FFC24D] l:text-[12px]">
|
|
155
|
+
{redeemError}
|
|
156
|
+
</div>
|
|
157
|
+
)}
|
|
158
|
+
{(copy.viewRedeemHistory || copy.rulesLink) && (
|
|
159
|
+
<div className="mt-[18px] flex gap-[16px] text-[18px] font-bold leading-[1.4] l:mt-[12px] l:gap-0 l:text-[14px]">
|
|
160
|
+
{copy.viewRedeemHistory && (
|
|
161
|
+
<Text
|
|
162
|
+
html={copy.viewRedeemHistory}
|
|
163
|
+
className="cursor-pointer text-[#4794EC] font-bold underline"
|
|
164
|
+
onClick={() => setOpenMyRewardsModal(true)}
|
|
165
|
+
/>
|
|
166
|
+
)}
|
|
167
|
+
{pageCommon.ruleLabel && (
|
|
168
|
+
<Text
|
|
169
|
+
html={pageCommon.ruleLabel}
|
|
170
|
+
className={cn(
|
|
171
|
+
'cursor-pointer text-[#4794EC] font-bold underline',
|
|
172
|
+
copy.viewRedeemHistory && 'l:ml-[16px]'
|
|
173
|
+
)}
|
|
174
|
+
onClick={() => setRules(copy.rules)}
|
|
175
|
+
/>
|
|
176
|
+
)}
|
|
177
|
+
</div>
|
|
178
|
+
)}
|
|
179
|
+
</div>
|
|
180
|
+
</div>
|
|
181
|
+
</div>
|
|
182
|
+
|
|
183
|
+
{showModal && item && (
|
|
184
|
+
<RedeemVirtualProductModal
|
|
185
|
+
copy={redeemModalCopy}
|
|
186
|
+
onClose={() => {
|
|
187
|
+
setShowModal(false)
|
|
188
|
+
setRedeemError(undefined)
|
|
189
|
+
}}
|
|
190
|
+
item={item}
|
|
191
|
+
onError={handleRedeemError}
|
|
192
|
+
/>
|
|
193
|
+
)}
|
|
194
|
+
|
|
195
|
+
{rules && (
|
|
196
|
+
<RulesModal
|
|
197
|
+
overlayClassName="md:px-[16px] md:items-center"
|
|
198
|
+
className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}
|
|
199
|
+
isOpen={rules.length > 0}
|
|
200
|
+
onClose={() => setRules(undefined)}
|
|
201
|
+
titleClassName="border-b-transparent h-[56px]"
|
|
202
|
+
rules={rules}
|
|
203
|
+
scrollClassName="md:mt-[8px] mt-[8px] md:mb-[24px] md:pt-0"
|
|
204
|
+
title={pageCommon?.ruleLabel}
|
|
205
|
+
ruleClassName="text-[#1d1d1f] font-bold"
|
|
206
|
+
/>
|
|
207
|
+
)}
|
|
208
|
+
</Container>
|
|
209
|
+
)
|
|
210
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ConsumeType } from '../context/const'
|
|
2
|
+
|
|
3
|
+
export type CreditsGoGiftCopy = {
|
|
4
|
+
title: string
|
|
5
|
+
cardImg: {
|
|
6
|
+
url: string
|
|
7
|
+
}
|
|
8
|
+
mCardImg?: {
|
|
9
|
+
url: string
|
|
10
|
+
}
|
|
11
|
+
count?: string
|
|
12
|
+
cardTitle: string
|
|
13
|
+
cardDesc: string
|
|
14
|
+
cardTip: string
|
|
15
|
+
redeemBtn: string
|
|
16
|
+
unlockRewards: string
|
|
17
|
+
viewRedeemHistory?: string
|
|
18
|
+
rulesLink?: string
|
|
19
|
+
redeemId: string | number
|
|
20
|
+
type: ConsumeType
|
|
21
|
+
value?: string
|
|
22
|
+
rules: string[]
|
|
23
|
+
}
|
|
@@ -3,8 +3,6 @@ import { Button, Container, Text } from '@anker-in/headless-ui'
|
|
|
3
3
|
import { useCallback, useState } from 'react'
|
|
4
4
|
import { useCreditsContext } from '../context/provider'
|
|
5
5
|
import { numberFormat } from '../context/utils'
|
|
6
|
-
import ActivitiesModal from '../modal/activitiesModal'
|
|
7
|
-
import MyRewardsModal from '../modal/MyRewardsModal'
|
|
8
6
|
import { gaNormalClick, classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
9
7
|
import { ROUNDED_BRANDS } from '../../../constants'
|
|
10
8
|
|
|
@@ -20,10 +18,8 @@ export type CreditsInfoCardCopy = {
|
|
|
20
18
|
}
|
|
21
19
|
|
|
22
20
|
export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?: string }) {
|
|
23
|
-
const [openActivities, setOpenActivities] = useState(false)
|
|
24
|
-
const [openRewards, setOpenRewards] = useState(false)
|
|
25
21
|
const [hover, setHover] = useState<boolean>(false)
|
|
26
|
-
const { creditInfo, pageCommon } = useCreditsContext()
|
|
22
|
+
const { creditInfo, pageCommon, setOpenMyRewardsModal, setOpenActivitiesModal } = useCreditsContext()
|
|
27
23
|
const { brand } = useHeadlessContext()
|
|
28
24
|
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
29
25
|
|
|
@@ -33,14 +29,14 @@ export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?:
|
|
|
33
29
|
if (buttonConfig.type) {
|
|
34
30
|
switch (buttonConfig.type) {
|
|
35
31
|
case 'activities':
|
|
36
|
-
|
|
32
|
+
setOpenActivitiesModal(true)
|
|
37
33
|
break
|
|
38
34
|
case 'rewards':
|
|
39
|
-
|
|
35
|
+
setOpenMyRewardsModal(true)
|
|
40
36
|
break
|
|
41
37
|
}
|
|
42
38
|
}
|
|
43
|
-
}, [])
|
|
39
|
+
}, [setOpenActivitiesModal, setOpenMyRewardsModal])
|
|
44
40
|
|
|
45
41
|
return (
|
|
46
42
|
<Container asChild id={id} className="-mb-[86px] -translate-y-[86px] x:-mb-[30px] x:-translate-y-[30px]">
|
|
@@ -138,7 +134,7 @@ export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?:
|
|
|
138
134
|
</div>
|
|
139
135
|
<div
|
|
140
136
|
className={cn(
|
|
141
|
-
'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] gap-[16px]
|
|
137
|
+
'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] gap-[16px] l:pl-0 pl-[48px] md-l:grid-cols-2'
|
|
142
138
|
)}
|
|
143
139
|
>
|
|
144
140
|
{copy.buttons?.map((item, index) => (
|
|
@@ -155,25 +151,6 @@ export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?:
|
|
|
155
151
|
</Button>
|
|
156
152
|
))}
|
|
157
153
|
</div>
|
|
158
|
-
|
|
159
|
-
{pageCommon?.activitiesModal && (
|
|
160
|
-
<ActivitiesModal
|
|
161
|
-
isOpen={openActivities}
|
|
162
|
-
data={pageCommon?.activitiesModal}
|
|
163
|
-
onClose={() => {
|
|
164
|
-
setOpenActivities(false)
|
|
165
|
-
}}
|
|
166
|
-
/>
|
|
167
|
-
)}
|
|
168
|
-
{pageCommon?.rewardsModal && (
|
|
169
|
-
<MyRewardsModal
|
|
170
|
-
isOpen={openRewards}
|
|
171
|
-
data={pageCommon?.rewardsModal}
|
|
172
|
-
onClose={() => {
|
|
173
|
-
setOpenRewards(false)
|
|
174
|
-
}}
|
|
175
|
-
></MyRewardsModal>
|
|
176
|
-
)}
|
|
177
154
|
</div>
|
|
178
155
|
{hover && (
|
|
179
156
|
<div
|
|
@@ -5,7 +5,7 @@ import Decimal from 'decimal.js'
|
|
|
5
5
|
import MemberPriceItem from './MemberPriceItem'
|
|
6
6
|
import RedeemableItem from '../creditsCash/RedeemableItem'
|
|
7
7
|
import useRedeemableList from '../context/hooks/useRedeemableList'
|
|
8
|
-
import RulesModal from '../modal/
|
|
8
|
+
import RulesModal from '../modal/RulesModal'
|
|
9
9
|
import { Pagination } from './Pagination'
|
|
10
10
|
import { useProductsByHandles, useHeadlessContext, gaTrack } from '@anker-in/lib'
|
|
11
11
|
import { CreditsMemberPriceCopy, MemberPriceProduct } from './type'
|
|
@@ -4,14 +4,15 @@ import { useCallback, useMemo, useState } from 'react'
|
|
|
4
4
|
|
|
5
5
|
import RedeemCouponModal from './RedeemCouponModal'
|
|
6
6
|
import RedeemProductModal from './RedeemProductModal'
|
|
7
|
+
import RedeemVirtualProductModal from './RedeemVirtualProductModal'
|
|
7
8
|
import { useCreditsContext } from '../context/provider'
|
|
8
9
|
import useRedeemableList from '../context/hooks/useRedeemableList'
|
|
9
|
-
import { AlpcConsumeType, AlpcErrorCode } from '../context/const'
|
|
10
|
+
import { AlpcConsumeType, AlpcErrorCode, ConsumeType } from '../context/const'
|
|
10
11
|
import { useHeadlessContext, useProductsByHandles, gaTrack, classNames as cn } from '@anker-in/lib'
|
|
11
12
|
import type { RedeemableItem as RedeemableItemType } from '../type'
|
|
12
13
|
import { RedeemableItem } from './RedeemableItem'
|
|
13
14
|
import { ROUNDED_BRANDS } from '../../../constants'
|
|
14
|
-
import RulesModal from '../modal/
|
|
15
|
+
import RulesModal from '../modal/RulesModal'
|
|
15
16
|
import { CreditsRedeemListCopy } from './type'
|
|
16
17
|
import { useRegistration } from '../../../components/registration'
|
|
17
18
|
import { numberFormat } from '../context/utils'
|
|
@@ -38,6 +39,14 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
38
39
|
|
|
39
40
|
const { listLoading, redeemableList, getRedeemableList } = useRedeemableList()
|
|
40
41
|
|
|
42
|
+
// 合并 redeemModal 文案,优先使用 copy.redeemModal,fallback 到 pageCommon.redeemModal
|
|
43
|
+
const redeemModalCopy = useMemo(() => {
|
|
44
|
+
return {
|
|
45
|
+
...(pageCommon?.redeemModal || {}),
|
|
46
|
+
...(copy.redeemModal || {}),
|
|
47
|
+
}
|
|
48
|
+
}, [copy.redeemModal, pageCommon?.redeemModal])
|
|
49
|
+
|
|
41
50
|
const alpcList = useMemo(() => {
|
|
42
51
|
return redeemableList.map(item => {
|
|
43
52
|
return {
|
|
@@ -101,7 +110,7 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
101
110
|
className={cn(
|
|
102
111
|
'text-brand-color-0',
|
|
103
112
|
brand === 'ankersolix' &&
|
|
104
|
-
|
|
113
|
+
'bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent'
|
|
105
114
|
)}
|
|
106
115
|
>
|
|
107
116
|
{numberFormat(creditInfo?.available_credit || 0).toString()}
|
|
@@ -164,28 +173,41 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
164
173
|
</div>
|
|
165
174
|
)}
|
|
166
175
|
|
|
167
|
-
{popRedeemData?.
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
176
|
+
{(popRedeemData?.config?.type === ConsumeType.Coupon ||
|
|
177
|
+
popRedeemData?.config?.type === ConsumeType.ShippingCoupon) &&
|
|
178
|
+
redeemModalCopy?.coupon &&
|
|
179
|
+
popRedeemData && (
|
|
180
|
+
<RedeemCouponModal
|
|
181
|
+
item={popRedeemData}
|
|
182
|
+
copy={redeemModalCopy}
|
|
183
|
+
onError={handleRedeemError}
|
|
184
|
+
onClose={() => {
|
|
185
|
+
setPopRedeemData(undefined)
|
|
186
|
+
}}
|
|
187
|
+
/>
|
|
188
|
+
)}
|
|
189
|
+
{popRedeemData?.config?.type === ConsumeType.Product && redeemModalCopy?.product && popRedeemData && (
|
|
179
190
|
<RedeemProductModal
|
|
180
|
-
isOpen={!!popRedeemData}
|
|
181
191
|
item={popRedeemData}
|
|
182
|
-
copy={
|
|
192
|
+
copy={redeemModalCopy}
|
|
183
193
|
onError={handleRedeemError}
|
|
184
194
|
onClose={() => {
|
|
185
195
|
setPopRedeemData(undefined)
|
|
186
196
|
}}
|
|
187
197
|
/>
|
|
188
198
|
)}
|
|
199
|
+
{(popRedeemData?.config?.type === ConsumeType.GiftCard || popRedeemData?.config?.type === ConsumeType.GoGift) &&
|
|
200
|
+
redeemModalCopy?.virtualProduct &&
|
|
201
|
+
popRedeemData && (
|
|
202
|
+
<RedeemVirtualProductModal
|
|
203
|
+
item={popRedeemData}
|
|
204
|
+
copy={redeemModalCopy}
|
|
205
|
+
onError={handleRedeemError}
|
|
206
|
+
onClose={() => {
|
|
207
|
+
setPopRedeemData(undefined)
|
|
208
|
+
}}
|
|
209
|
+
/>
|
|
210
|
+
)}
|
|
189
211
|
{rules && (
|
|
190
212
|
<RulesModal
|
|
191
213
|
overlayClassName="md:px-[16px] md:items-center"
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { Button, Picture, Text } from '@anker-in/headless-ui'
|
|
2
|
+
import classNames from 'classnames'
|
|
3
|
+
import { numberFormat } from '../../context/utils'
|
|
4
|
+
import type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'
|
|
5
|
+
import { NoneProductValue } from '../RedeemProductModal/NonProductValue'
|
|
6
|
+
import { useCreditsContext } from '../../context/provider'
|
|
7
|
+
|
|
8
|
+
type CouponInitProps = {
|
|
9
|
+
item: RedeemableItemType
|
|
10
|
+
copy: RedeemModalCommon
|
|
11
|
+
loading: boolean
|
|
12
|
+
disabled: boolean
|
|
13
|
+
onConfirm: () => void
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export const CouponInit = ({ item, copy, loading, disabled, onConfirm }: CouponInitProps) => {
|
|
17
|
+
const { pageCommon } = useCreditsContext()
|
|
18
|
+
|
|
19
|
+
return (
|
|
20
|
+
<>
|
|
21
|
+
<div
|
|
22
|
+
className={classNames(
|
|
23
|
+
'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'
|
|
24
|
+
)}
|
|
25
|
+
>
|
|
26
|
+
<div className="relative mx-auto h-[164px] w-[324px]">
|
|
27
|
+
{pageCommon?.imageMapping?.[item.config?.type]?.url && (
|
|
28
|
+
<Picture source={pageCommon.imageMapping[item.config.type].url} className="h-full [&_img]:h-full" />
|
|
29
|
+
)}
|
|
30
|
+
<div className="absolute bottom-[8px] left-[16px] font-extrabold text-white">
|
|
31
|
+
{item.config.value ? (
|
|
32
|
+
<NoneProductValue item={item} />
|
|
33
|
+
) : (
|
|
34
|
+
<Text size={3} html={item.alpc?.title} />
|
|
35
|
+
)}
|
|
36
|
+
</div>
|
|
37
|
+
</div>
|
|
38
|
+
<Text
|
|
39
|
+
as="p"
|
|
40
|
+
className={classNames(
|
|
41
|
+
'mt-[30px] text-center text-[24px] font-bold leading-[1.2] md:mt-[18px] md:text-[20px] md:leading-[1.2]'
|
|
42
|
+
)}
|
|
43
|
+
>
|
|
44
|
+
{numberFormat(item.alpc?.consumeCredits)} {pageCommon?.pointUnit}
|
|
45
|
+
</Text>
|
|
46
|
+
{item.config?.rules?.length > 0 && (
|
|
47
|
+
<div className="mt-[18px] w-full text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:mt-[12px] md:text-[14px]">
|
|
48
|
+
<div className="mb-[4px]">{pageCommon?.ruleLabel}:</div>
|
|
49
|
+
<ul className="ml-4 grid grid-flow-row gap-[4px]">
|
|
50
|
+
{item.config?.rules?.map((text, index) => (
|
|
51
|
+
<li className="list-disc" key={index}>
|
|
52
|
+
<Text html={text} />
|
|
53
|
+
</li>
|
|
54
|
+
))}
|
|
55
|
+
</ul>
|
|
56
|
+
</div>
|
|
57
|
+
)}
|
|
58
|
+
</div>
|
|
59
|
+
<div className="bg-white px-[48px] pt-[24px] text-center md:px-[16px]">
|
|
60
|
+
<Text
|
|
61
|
+
className="block text-[24px] font-bold leading-[1.2] md:text-[20px] md:leading-[1.2]"
|
|
62
|
+
html={copy.confirmTitle}
|
|
63
|
+
></Text>
|
|
64
|
+
<Button
|
|
65
|
+
loading={loading}
|
|
66
|
+
variant="primary"
|
|
67
|
+
size="lg"
|
|
68
|
+
className="mt-[16px] w-full"
|
|
69
|
+
onClick={onConfirm}
|
|
70
|
+
disabled={disabled}
|
|
71
|
+
>
|
|
72
|
+
{copy.confirmButton}
|
|
73
|
+
</Button>
|
|
74
|
+
</div>
|
|
75
|
+
</>
|
|
76
|
+
)
|
|
77
|
+
}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { Button, Picture, Text } from '@anker-in/headless-ui'
|
|
2
|
+
import classNames from 'classnames'
|
|
3
|
+
import useCopy from '../../context/hooks/useCopy'
|
|
4
|
+
import { useCreditsContext } from '../../context/provider'
|
|
5
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
6
|
+
import type { RedeemModalCommon, RedeemableItem as RedeemableItemType } from '../../type'
|
|
7
|
+
import { NoneProductValue } from '../RedeemProductModal/NonProductValue'
|
|
8
|
+
|
|
9
|
+
type CouponSuccessProps = {
|
|
10
|
+
item: RedeemableItemType
|
|
11
|
+
copy: RedeemModalCommon
|
|
12
|
+
couponCode: string
|
|
13
|
+
disabled: boolean
|
|
14
|
+
onClose: () => void
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const CouponSuccess = ({ item, copy, couponCode, disabled, onClose }: CouponSuccessProps) => {
|
|
18
|
+
const { locale } = useHeadlessContext()
|
|
19
|
+
const { pageCommon } = useCreditsContext()
|
|
20
|
+
const { copy: copyText, copied: copiedStatus } = useCopy()
|
|
21
|
+
return (
|
|
22
|
+
<>
|
|
23
|
+
<div
|
|
24
|
+
className={classNames(
|
|
25
|
+
'max-h-[500px] overflow-y-auto bg-[#F5F5F7] px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]'
|
|
26
|
+
)}
|
|
27
|
+
>
|
|
28
|
+
<div className="relative mx-auto h-[164px] w-[324px]">
|
|
29
|
+
{pageCommon?.imageMapping?.[item.config?.type]?.url && (
|
|
30
|
+
<Picture source={pageCommon.imageMapping[item.config.type].url} className="h-full [&_img]:h-full" />
|
|
31
|
+
)}
|
|
32
|
+
<div className="absolute bottom-[8px] left-[16px] font-extrabold text-white">
|
|
33
|
+
{item.config.value ? (
|
|
34
|
+
<NoneProductValue item={item} />
|
|
35
|
+
) : (
|
|
36
|
+
<Text size={3} html={item.alpc?.title} />
|
|
37
|
+
)}
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div className="mt-[30px] flex items-center justify-center md:mt-[18px]">
|
|
41
|
+
<div className="mr-[10px] text-[24px] font-bold leading-[1.4] md:leading-[1.2]">{couponCode}</div>
|
|
42
|
+
<div
|
|
43
|
+
className={classNames(
|
|
44
|
+
'cursor-pointer text-[16px] font-bold leading-[1.2] underline md:text-[14px]',
|
|
45
|
+
copiedStatus ? 'pointer-events-none' : 'pointer-events-auto'
|
|
46
|
+
)}
|
|
47
|
+
onClick={() => copyText(couponCode)}
|
|
48
|
+
role="button"
|
|
49
|
+
tabIndex={0}
|
|
50
|
+
onKeyDown={e => {
|
|
51
|
+
if (e.key === 'Enter' || e.key === ' ') {
|
|
52
|
+
e.preventDefault()
|
|
53
|
+
}
|
|
54
|
+
}}
|
|
55
|
+
>
|
|
56
|
+
{copiedStatus ? pageCommon?.copied : pageCommon?.copy}
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</div>
|
|
60
|
+
<div className="bg-white px-[48px] pt-[24px] text-center md:px-[16px]">
|
|
61
|
+
<div className="flex flex-col">
|
|
62
|
+
<Text
|
|
63
|
+
className="mb-[4px] text-[24px] font-bold leading-[1.2] md:text-[20px]"
|
|
64
|
+
html={copy.coupon.successTitle}
|
|
65
|
+
></Text>
|
|
66
|
+
<Text
|
|
67
|
+
className="text-[16px] font-bold leading-[1.4] text-[#6D6D6F] md:text-[14px]"
|
|
68
|
+
html={copy.coupon.successDesc}
|
|
69
|
+
></Text>
|
|
70
|
+
</div>
|
|
71
|
+
<Button
|
|
72
|
+
variant="primary"
|
|
73
|
+
size="lg"
|
|
74
|
+
className="mt-[16px] w-full"
|
|
75
|
+
onClick={() => {
|
|
76
|
+
window.location.href = copy.coupon.successButtonUrl || `/${locale}`
|
|
77
|
+
onClose()
|
|
78
|
+
}}
|
|
79
|
+
disabled={disabled}
|
|
80
|
+
>
|
|
81
|
+
{copy.coupon.successButton}
|
|
82
|
+
</Button>
|
|
83
|
+
</div>
|
|
84
|
+
</>
|
|
85
|
+
)
|
|
86
|
+
}
|