@anker-in/campaign-ui 0.2.11-beta.2 → 0.2.11-beta.21
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.d.ts +43 -0
- package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js +2 -0
- package/dist/cjs/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/api/chat.d.ts +25 -0
- package/dist/cjs/components/LiveChatWidget/api/chat.js +3 -0
- package/dist/cjs/components/LiveChatWidget/api/chat.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatInput.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatInput.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js +5 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +48 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js +5 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +70 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +78 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageList.d.ts +74 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageList.js +5 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageList.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
- package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/constants.d.ts +8 -0
- package/dist/cjs/components/LiveChatWidget/constants.js +2 -0
- package/dist/cjs/components/LiveChatWidget/constants.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.d.ts +51 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.d.ts +120 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js +2 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useSession.js +2 -0
- package/dist/cjs/components/LiveChatWidget/hooks/useSession.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/index.d.ts +12 -0
- package/dist/cjs/components/LiveChatWidget/index.js +2 -0
- package/dist/cjs/components/LiveChatWidget/index.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/types.d.ts +609 -0
- package/dist/cjs/components/LiveChatWidget/types.js +2 -0
- package/dist/cjs/components/LiveChatWidget/types.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
- package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
- package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
- package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/utils/userId.d.ts +18 -0
- package/dist/cjs/components/LiveChatWidget/utils/userId.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/userId.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/utils/validation.d.ts +37 -0
- package/dist/cjs/components/LiveChatWidget/utils/validation.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/validation.js.map +7 -0
- package/dist/cjs/components/chat/markdown.js +1 -1
- package/dist/cjs/components/chat/markdown.js.map +2 -2
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.d.ts +2 -2
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js.map +2 -2
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/cjs/components/credits/context/hooks/useRedeemableList.js.map +2 -2
- package/dist/cjs/components/credits/context/memberPriceConst.d.ts +0 -5
- package/dist/cjs/components/credits/context/memberPriceConst.js +1 -1
- package/dist/cjs/components/credits/context/memberPriceConst.js.map +3 -3
- package/dist/cjs/components/credits/context/memberPriceTypes.d.ts +1 -22
- package/dist/cjs/components/credits/context/memberPriceTypes.js +1 -1
- package/dist/cjs/components/credits/context/memberPriceTypes.js.map +1 -1
- package/dist/cjs/components/credits/context/provider.d.ts +16 -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/utils/getFunctionMemberPrice.d.ts +2 -2
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js +1 -1
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js.map +1 -1
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +2 -2
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +1 -1
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +1 -1
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.d.ts +2 -2
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js +1 -1
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js.map +1 -1
- package/dist/cjs/components/credits/context/utils.d.ts +4 -0
- package/dist/cjs/components/credits/context/utils.js +1 -1
- package/dist/cjs/components/credits/context/utils.js.map +3 -3
- package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
- package/dist/cjs/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
- package/dist/cjs/components/credits/creditsBanner/index.d.ts +2 -0
- package/dist/cjs/components/credits/creditsBanner/index.js +12 -1
- package/dist/cjs/components/credits/creditsBanner/index.js.map +3 -3
- package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js +1 -1
- package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsBenefits/IconInfo.js +1 -1
- package/dist/cjs/components/credits/creditsBenefits/IconInfo.js.map +1 -1
- package/dist/cjs/components/credits/creditsBenefits/index.js +3 -3
- package/dist/cjs/components/credits/creditsBenefits/index.js.map +2 -2
- package/dist/cjs/components/credits/creditsCash/CreditsCash.js +1 -1
- package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +3 -3
- package/dist/cjs/components/credits/creditsCash/RedeemableItem.js +1 -1
- package/dist/cjs/components/credits/creditsCash/RedeemableItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsCash/type.d.ts +1 -0
- package/dist/cjs/components/credits/creditsCash/type.js +1 -1
- package/dist/cjs/components/credits/creditsCash/type.js.map +1 -1
- package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
- package/dist/cjs/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsFaq/index.js +1 -1
- package/dist/cjs/components/credits/creditsFaq/index.js.map +3 -3
- 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 +3 -3
- package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
- package/dist/cjs/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
- package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js +2 -0
- package/dist/cjs/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
- package/dist/cjs/components/credits/creditsMemberPrice/type.d.ts +3 -5
- package/dist/cjs/components/credits/creditsMemberPrice/type.js +1 -1
- package/dist/cjs/components/credits/creditsMemberPrice/type.js.map +1 -1
- package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
- package/dist/cjs/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
- 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/RedeemProductModal/Address.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
- 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.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
- package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
- package/dist/cjs/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
- 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/activitiesModal.js +1 -1
- package/dist/cjs/components/credits/modal/activitiesModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js +1 -1
- package/dist/cjs/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
- package/dist/cjs/components/credits/modal/modalContainer.js +1 -1
- package/dist/cjs/components/credits/modal/modalContainer.js.map +3 -3
- package/dist/cjs/components/credits/modal/subscribeModal.js +1 -1
- 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 +3 -3
- package/dist/cjs/components/index.d.ts +3 -1
- package/dist/cjs/components/index.js +1 -1
- package/dist/cjs/components/index.js.map +3 -3
- package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
- package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
- package/dist/cjs/components/registration/modalContainer.js +1 -1
- package/dist/cjs/components/registration/modalContainer.js.map +3 -3
- package/dist/cjs/constants.d.ts +1 -0
- package/dist/cjs/constants.js +2 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/index.d.ts +3 -2
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/stories/CartCard.stories.d.ts +33 -0
- package/dist/cjs/stories/CartCard.stories.js +21 -0
- package/dist/cjs/stories/CartCard.stories.js.map +7 -0
- package/dist/cjs/stories/LiveChatWidget.stories.d.ts +92 -0
- package/dist/cjs/stories/LiveChatWidget.stories.js +98 -0
- package/dist/cjs/stories/LiveChatWidget.stories.js.map +7 -0
- package/dist/cjs/templates/Credits.d.ts +15 -1
- package/dist/cjs/templates/Credits.js +1 -1
- package/dist/cjs/templates/Credits.js.map +3 -3
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.d.ts +43 -0
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.js +2 -0
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/api/chat.d.ts +25 -0
- package/dist/esm/components/LiveChatWidget/api/chat.js +3 -0
- package/dist/esm/components/LiveChatWidget/api/chat.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ChatBubble.d.ts +68 -0
- package/dist/esm/components/LiveChatWidget/components/ChatBubble.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/ChatBubble.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ChatHeader.d.ts +57 -0
- package/dist/esm/components/LiveChatWidget/components/ChatHeader.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/ChatHeader.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ChatInput.d.ts +70 -0
- package/dist/esm/components/LiveChatWidget/components/ChatInput.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/ChatInput.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ChatMessage.d.ts +59 -0
- package/dist/esm/components/LiveChatWidget/components/ChatMessage.js +5 -0
- package/dist/esm/components/LiveChatWidget/components/ChatMessage.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ChatWindow.d.ts +127 -0
- package/dist/esm/components/LiveChatWidget/components/ChatWindow.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/ChatWindow.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.d.ts +54 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/CartCard.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.d.ts +33 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ErrorBlock.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.d.ts +16 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/FAQList.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.d.ts +45 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js +5 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PolicyBlock.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.d.ts +48 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js +5 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +70 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.d.ts +47 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductList.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.d.ts +78 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/PromotionList.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.d.ts +54 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/QuickReplies.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.d.ts +31 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/TextBlock.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.d.ts +31 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ThinkingBlock.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/index.d.ts +15 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/index.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent.d.ts +63 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageList.d.ts +74 -0
- package/dist/esm/components/LiveChatWidget/components/MessageList.js +5 -0
- package/dist/esm/components/LiveChatWidget/components/MessageList.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.d.ts +44 -0
- package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/ScrollAnchor.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/constants.d.ts +8 -0
- package/dist/esm/components/LiveChatWidget/constants.js +2 -0
- package/dist/esm/components/LiveChatWidget/constants.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.d.ts +51 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js +2 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatAPI.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.d.ts +120 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.js +2 -0
- package/dist/esm/components/LiveChatWidget/hooks/useChatState.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/hooks/useSession.d.ts +37 -0
- package/dist/esm/components/LiveChatWidget/hooks/useSession.js +2 -0
- package/dist/esm/components/LiveChatWidget/hooks/useSession.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/index.d.ts +12 -0
- package/dist/esm/components/LiveChatWidget/index.js +2 -0
- package/dist/esm/components/LiveChatWidget/index.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/types.d.ts +609 -0
- package/dist/esm/components/LiveChatWidget/types.js +1 -0
- package/dist/esm/components/LiveChatWidget/types.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/utils/cartTransformers.d.ts +25 -0
- package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/cartTransformers.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/utils/messageRenderers.d.ts +64 -0
- package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/messageRenderers.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/utils/productTransformers.d.ts +43 -0
- package/dist/esm/components/LiveChatWidget/utils/productTransformers.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/productTransformers.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/utils/userId.d.ts +18 -0
- package/dist/esm/components/LiveChatWidget/utils/userId.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/userId.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/utils/validation.d.ts +37 -0
- package/dist/esm/components/LiveChatWidget/utils/validation.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/validation.js.map +7 -0
- package/dist/esm/components/chat/markdown.js +1 -1
- package/dist/esm/components/chat/markdown.js.map +2 -2
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.d.ts +2 -2
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js +1 -1
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js.map +2 -2
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js +1 -1
- package/dist/esm/components/credits/context/hooks/useRedeemableList.js.map +2 -2
- package/dist/esm/components/credits/context/memberPriceConst.d.ts +0 -5
- package/dist/esm/components/credits/context/memberPriceConst.js +1 -1
- package/dist/esm/components/credits/context/memberPriceConst.js.map +3 -3
- package/dist/esm/components/credits/context/memberPriceTypes.d.ts +1 -22
- package/dist/esm/components/credits/context/provider.d.ts +16 -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/utils/getFunctionMemberPrice.d.ts +2 -2
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js +1 -1
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js.map +1 -1
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +2 -2
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +1 -1
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +1 -1
- package/dist/esm/components/credits/context/utils/variantGetCoupon.d.ts +2 -2
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js +1 -1
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js.map +1 -1
- package/dist/esm/components/credits/context/utils.d.ts +4 -0
- package/dist/esm/components/credits/context/utils.js +1 -1
- package/dist/esm/components/credits/context/utils.js.map +3 -3
- package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js +1 -1
- package/dist/esm/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.js.map +3 -3
- package/dist/esm/components/credits/creditsBanner/index.d.ts +2 -0
- package/dist/esm/components/credits/creditsBanner/index.js +12 -1
- package/dist/esm/components/credits/creditsBanner/index.js.map +3 -3
- package/dist/esm/components/credits/creditsBenefits/BenefitItem.js +1 -1
- package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +3 -3
- package/dist/esm/components/credits/creditsBenefits/IconInfo.js +1 -1
- package/dist/esm/components/credits/creditsBenefits/IconInfo.js.map +1 -1
- package/dist/esm/components/credits/creditsBenefits/index.js +3 -3
- package/dist/esm/components/credits/creditsBenefits/index.js.map +2 -2
- package/dist/esm/components/credits/creditsCash/CreditsCash.js +1 -1
- package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +3 -3
- package/dist/esm/components/credits/creditsCash/RedeemableItem.js +1 -1
- package/dist/esm/components/credits/creditsCash/RedeemableItem.js.map +3 -3
- package/dist/esm/components/credits/creditsCash/type.d.ts +1 -0
- package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js +1 -1
- package/dist/esm/components/credits/creditsFaq/faqItem/FaqItem.js.map +3 -3
- package/dist/esm/components/credits/creditsFaq/index.js +1 -1
- package/dist/esm/components/credits/creditsFaq/index.js.map +3 -3
- package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
- package/dist/esm/components/credits/creditsInfoCard/index.js.map +2 -2
- package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js +1 -1
- package/dist/esm/components/credits/creditsMemberPrice/CreditsMemberPrice.js.map +3 -3
- package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js +1 -1
- package/dist/esm/components/credits/creditsMemberPrice/MemberPriceItem.js.map +3 -3
- package/dist/esm/components/credits/creditsMemberPrice/Pagination.d.ts +7 -0
- package/dist/esm/components/credits/creditsMemberPrice/Pagination.js +2 -0
- package/dist/esm/components/credits/creditsMemberPrice/Pagination.js.map +7 -0
- package/dist/esm/components/credits/creditsMemberPrice/type.d.ts +3 -5
- package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js +1 -1
- package/dist/esm/components/credits/creditsNavigation/CreditsNavigation.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +2 -2
- 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/RedeemProductModal/Address.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
- 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.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +2 -2
- package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemableItem.js.map +3 -3
- package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js +1 -1
- package/dist/esm/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.js.map +3 -3
- package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
- package/dist/esm/components/credits/modal/MyRewardsModal.js.map +2 -2
- package/dist/esm/components/credits/modal/activitiesModal.js +1 -1
- package/dist/esm/components/credits/modal/activitiesModal.js.map +3 -3
- package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js +1 -1
- package/dist/esm/components/credits/modal/creditsUploadReceiptModal.js.map +3 -3
- package/dist/esm/components/credits/modal/modalContainer.js +1 -1
- package/dist/esm/components/credits/modal/modalContainer.js.map +3 -3
- package/dist/esm/components/credits/modal/subscribeModal.js +1 -1
- package/dist/esm/components/credits/modal/subscribeModal.js.map +3 -3
- package/dist/esm/components/credits/modal/tip.js +1 -1
- package/dist/esm/components/credits/modal/tip.js.map +3 -3
- package/dist/esm/components/index.d.ts +3 -1
- package/dist/esm/components/index.js +1 -1
- package/dist/esm/components/index.js.map +3 -3
- package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
- package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
- package/dist/esm/components/registration/modalContainer.js +1 -1
- package/dist/esm/components/registration/modalContainer.js.map +3 -3
- package/dist/esm/constants.d.ts +1 -0
- package/dist/esm/constants.js +2 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/index.d.ts +3 -2
- package/dist/esm/index.js +1 -1
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/stories/CartCard.stories.d.ts +33 -0
- package/dist/esm/stories/CartCard.stories.js +21 -0
- package/dist/esm/stories/CartCard.stories.js.map +7 -0
- package/dist/esm/stories/LiveChatWidget.stories.d.ts +92 -0
- package/dist/esm/stories/LiveChatWidget.stories.js +98 -0
- package/dist/esm/stories/LiveChatWidget.stories.js.map +7 -0
- package/dist/esm/templates/Credits.d.ts +15 -1
- package/dist/esm/templates/Credits.js +1 -1
- package/dist/esm/templates/Credits.js.map +3 -3
- package/package.json +7 -3
- package/src/components/LiveChatWidget/LiveChatWidget.tsx +599 -0
- package/src/components/LiveChatWidget/api/chat.ts +136 -0
- package/src/components/LiveChatWidget/components/ChatBubble.tsx +152 -0
- package/src/components/LiveChatWidget/components/ChatHeader.tsx +151 -0
- package/src/components/LiveChatWidget/components/ChatInput.tsx +216 -0
- package/src/components/LiveChatWidget/components/ChatMessage.tsx +182 -0
- package/src/components/LiveChatWidget/components/ChatWindow.tsx +304 -0
- package/src/components/LiveChatWidget/components/MessageContent/CartCard.tsx +198 -0
- package/src/components/LiveChatWidget/components/MessageContent/ErrorBlock.tsx +75 -0
- package/src/components/LiveChatWidget/components/MessageContent/FAQList.tsx +127 -0
- package/src/components/LiveChatWidget/components/MessageContent/PolicyBlock.tsx +150 -0
- package/src/components/LiveChatWidget/components/MessageContent/ProductCard.tsx +139 -0
- package/src/components/LiveChatWidget/components/MessageContent/ProductComparison.tsx +348 -0
- package/src/components/LiveChatWidget/components/MessageContent/ProductList.tsx +275 -0
- package/src/components/LiveChatWidget/components/MessageContent/PromotionList.tsx +207 -0
- package/src/components/LiveChatWidget/components/MessageContent/QuickReplies.tsx +91 -0
- package/src/components/LiveChatWidget/components/MessageContent/TextBlock.tsx +89 -0
- package/src/components/LiveChatWidget/components/MessageContent/ThinkingBlock.tsx +53 -0
- package/src/components/LiveChatWidget/components/MessageContent/index.ts +16 -0
- package/src/components/LiveChatWidget/components/MessageContent.tsx +110 -0
- package/src/components/LiveChatWidget/components/MessageList.tsx +261 -0
- package/src/components/LiveChatWidget/components/ScrollAnchor.tsx +75 -0
- package/src/components/LiveChatWidget/constants.ts +15 -0
- package/src/components/LiveChatWidget/hooks/useChatAPI.ts +136 -0
- package/src/components/LiveChatWidget/hooks/useChatState.ts +542 -0
- package/src/components/LiveChatWidget/hooks/useSession.ts +123 -0
- package/src/components/LiveChatWidget/index.tsx +62 -0
- package/src/components/LiveChatWidget/types.ts +769 -0
- package/src/components/LiveChatWidget/utils/cartTransformers.ts +72 -0
- package/src/components/LiveChatWidget/utils/messageRenderers.ts +120 -0
- package/src/components/LiveChatWidget/utils/productTransformers.ts +149 -0
- package/src/components/LiveChatWidget/utils/userId.ts +140 -0
- package/src/components/LiveChatWidget/utils/validation.ts +99 -0
- package/src/components/chat/markdown.tsx +1 -1
- package/src/components/credits/context/hooks/useRedeemableList.ts +1 -1
- package/src/components/credits/context/memberPriceConst.ts +0 -7
- package/src/components/credits/context/memberPriceTypes.ts +1 -26
- package/src/components/credits/context/provider.tsx +16 -0
- package/src/components/credits/context/utils.ts +9 -0
- package/src/components/credits/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +44 -41
- package/src/components/credits/creditsBanner/index.tsx +31 -3
- package/src/components/credits/creditsBenefits/BenefitItem.tsx +13 -5
- package/src/components/credits/creditsBenefits/IconInfo.tsx +1 -1
- package/src/components/credits/creditsBenefits/index.tsx +1 -1
- package/src/components/credits/creditsCash/CreditsCash.tsx +6 -3
- package/src/components/credits/creditsCash/RedeemableItem.tsx +29 -11
- package/src/components/credits/creditsCash/type.ts +1 -0
- package/src/components/credits/creditsFaq/faqItem/FaqItem.tsx +25 -23
- package/src/components/credits/creditsFaq/index.tsx +2 -1
- package/src/components/credits/creditsInfoCard/index.tsx +10 -3
- package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +160 -136
- package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +134 -29
- package/src/components/credits/creditsMemberPrice/Pagination.tsx +113 -0
- package/src/components/credits/creditsMemberPrice/type.ts +3 -5
- package/src/components/credits/creditsNavigation/CreditsNavigation.tsx +3 -3
- package/src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx +2 -1
- package/src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx +2 -1
- package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +2 -1
- package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +32 -18
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +2 -1
- package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +6 -4
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +2 -1
- package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +21 -7
- package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +34 -20
- package/src/components/credits/modal/MyRewardsModal.tsx +2 -1
- package/src/components/credits/modal/activitiesModal.tsx +2 -1
- package/src/components/credits/modal/creditsUploadReceiptModal.tsx +2 -1
- package/src/components/credits/modal/modalContainer.tsx +2 -1
- package/src/components/credits/modal/subscribeModal.tsx +2 -1
- package/src/components/credits/modal/tip.tsx +2 -1
- package/src/components/index.ts +23 -1
- package/src/components/registration/authCodeActivate/index.tsx +3 -1
- package/src/components/registration/modalContainer.tsx +2 -1
- package/src/constants.ts +1 -0
- package/src/index.ts +3 -2
- package/src/stories/CartCard.stories.tsx +459 -0
- package/src/stories/LiveChatWidget.stories.tsx +461 -0
- package/src/styles/livechat.css +263 -0
- package/src/templates/Credits.tsx +26 -9
- package/src/components/credits/context/hooks/useFunctionMemberPrice.ts +0 -33
- package/src/components/credits/context/utils/atobID.ts +0 -8
- package/src/components/credits/context/utils/functionDiscountCalculate.ts +0 -57
- package/src/components/credits/context/utils/getFunctionMemberPrice.ts +0 -135
- package/src/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.ts +0 -51
- package/src/components/credits/context/utils/variantGetCoupon.ts +0 -34
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import { classNames as cn } from '@anker-in/lib'
|
|
2
|
+
|
|
3
|
+
interface PaginationProps {
|
|
4
|
+
currentPage: number
|
|
5
|
+
totalPages: number
|
|
6
|
+
onPageChange: (page: number) => void
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export function Pagination({ currentPage, totalPages, onPageChange }: PaginationProps) {
|
|
10
|
+
if (totalPages <= 1) return null
|
|
11
|
+
|
|
12
|
+
// 计算要显示的页码
|
|
13
|
+
const getPageNumbers = () => {
|
|
14
|
+
const delta = 2 // 当前页前后显示的页码数量
|
|
15
|
+
const range = []
|
|
16
|
+
const rangeWithDots = []
|
|
17
|
+
|
|
18
|
+
for (let i = 1; i <= totalPages; i++) {
|
|
19
|
+
if (i === 1 || i === totalPages || (i >= currentPage - delta && i <= currentPage + delta)) {
|
|
20
|
+
range.push(i)
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
let prev = 0
|
|
25
|
+
for (const i of range) {
|
|
26
|
+
if (prev && i - prev > 1) {
|
|
27
|
+
rangeWithDots.push('...')
|
|
28
|
+
}
|
|
29
|
+
rangeWithDots.push(i)
|
|
30
|
+
prev = i
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
return rangeWithDots
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const pages = getPageNumbers()
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<div className="mt-[32px] flex items-center justify-center gap-[8px]">
|
|
40
|
+
{/* 上一页按钮 */}
|
|
41
|
+
<button
|
|
42
|
+
onClick={() => onPageChange(Math.max(1, currentPage - 1))}
|
|
43
|
+
disabled={currentPage === 1}
|
|
44
|
+
className={cn(
|
|
45
|
+
'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',
|
|
46
|
+
currentPage === 1 && 'cursor-not-allowed opacity-50'
|
|
47
|
+
)}
|
|
48
|
+
>
|
|
49
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
50
|
+
<path
|
|
51
|
+
d="M10 12L6 8L10 4"
|
|
52
|
+
stroke={currentPage === 1 ? '#767880' : '#080A0F'}
|
|
53
|
+
strokeWidth="1.5"
|
|
54
|
+
strokeLinecap="round"
|
|
55
|
+
strokeLinejoin="round"
|
|
56
|
+
/>
|
|
57
|
+
</svg>
|
|
58
|
+
</button>
|
|
59
|
+
|
|
60
|
+
{/* 页码按钮 */}
|
|
61
|
+
{pages.map((page, index) => {
|
|
62
|
+
if (page === '...') {
|
|
63
|
+
return (
|
|
64
|
+
<div
|
|
65
|
+
key={`ellipsis-${index}`}
|
|
66
|
+
className="flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white"
|
|
67
|
+
>
|
|
68
|
+
<svg width="20" height="20" viewBox="0 0 20 20" fill="none">
|
|
69
|
+
<circle cx="4.5" cy="10" r="1.25" fill="#2A2C32" />
|
|
70
|
+
<circle cx="10" cy="10" r="1.25" fill="#2A2C32" />
|
|
71
|
+
<circle cx="15.5" cy="10" r="1.25" fill="#2A2C32" />
|
|
72
|
+
</svg>
|
|
73
|
+
</div>
|
|
74
|
+
)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
const isActive = currentPage === page
|
|
78
|
+
return (
|
|
79
|
+
<button
|
|
80
|
+
key={page}
|
|
81
|
+
onClick={() => onPageChange(page as number)}
|
|
82
|
+
className={cn(
|
|
83
|
+
'flex size-[32px] xl:size-[24px] pt-[4px] items-center justify-center overflow-hidden text-[16px] xl:text-[14px] font-bold leading-[1.4] tracking-[-0.28px]',
|
|
84
|
+
isActive ? 'bg-[#080a0f] text-white' : 'bg-white text-[#080a0f]'
|
|
85
|
+
)}
|
|
86
|
+
>
|
|
87
|
+
{page}
|
|
88
|
+
</button>
|
|
89
|
+
)
|
|
90
|
+
})}
|
|
91
|
+
|
|
92
|
+
{/* 下一页按钮 */}
|
|
93
|
+
<button
|
|
94
|
+
onClick={() => onPageChange(Math.min(totalPages, currentPage + 1))}
|
|
95
|
+
disabled={currentPage === totalPages}
|
|
96
|
+
className={cn(
|
|
97
|
+
'flex size-[32px] xl:size-[24px] items-center justify-center overflow-hidden bg-white',
|
|
98
|
+
currentPage === totalPages && 'cursor-not-allowed opacity-50'
|
|
99
|
+
)}
|
|
100
|
+
>
|
|
101
|
+
<svg width="16" height="16" viewBox="0 0 16 16" fill="none">
|
|
102
|
+
<path
|
|
103
|
+
d="M6 4L10 8L6 12"
|
|
104
|
+
stroke={currentPage === totalPages ? '#767880' : '#080A0F'}
|
|
105
|
+
strokeWidth="1.5"
|
|
106
|
+
strokeLinecap="round"
|
|
107
|
+
strokeLinejoin="round"
|
|
108
|
+
/>
|
|
109
|
+
</svg>
|
|
110
|
+
</button>
|
|
111
|
+
</div>
|
|
112
|
+
)
|
|
113
|
+
}
|
|
@@ -45,13 +45,10 @@ export type CreditsMemberPriceCopy = {
|
|
|
45
45
|
// 会员价 tab 配置(产品列表和价格完全从 memberPriceDiscount 获取)
|
|
46
46
|
memberPriceTab: {
|
|
47
47
|
memberPriceRuleId: string // 指定使用哪个会员价规则
|
|
48
|
-
|
|
48
|
+
addToCart: string
|
|
49
49
|
shopNowText: string
|
|
50
50
|
memberPriceLabel: string
|
|
51
|
-
|
|
52
|
-
url: string
|
|
53
|
-
alt?: string
|
|
54
|
-
}
|
|
51
|
+
badgeLabel?: string
|
|
55
52
|
}
|
|
56
53
|
// 积分兑换 tab 配置(复用 creditsCash 的配置)
|
|
57
54
|
redeemTab: {
|
|
@@ -62,6 +59,7 @@ export type CreditsMemberPriceCopy = {
|
|
|
62
59
|
unlockRewards: string
|
|
63
60
|
btnRedeem: string
|
|
64
61
|
off: string
|
|
62
|
+
badgeLabel?: string
|
|
65
63
|
}
|
|
66
64
|
}
|
|
67
65
|
|
|
@@ -87,7 +87,7 @@ export const CreditsNavigation = ({ copy }: { copy: CreditsNavigationCopy }) =>
|
|
|
87
87
|
}, [setupObserver])
|
|
88
88
|
|
|
89
89
|
return (
|
|
90
|
-
<nav className={cn('sticky top-0 z-50 bg-white')}>
|
|
90
|
+
<nav id="creditsNavigation" className={cn('sticky top-0 z-50 bg-white')}>
|
|
91
91
|
<Container asChild>
|
|
92
92
|
<div
|
|
93
93
|
className={cn(
|
|
@@ -95,7 +95,7 @@ export const CreditsNavigation = ({ copy }: { copy: CreditsNavigationCopy }) =>
|
|
|
95
95
|
'md:scrollbar-hide md:[&::-webkit-scrollbar]:hidden md:[-ms-overflow-style:none] md:[scrollbar-width:none]'
|
|
96
96
|
)}
|
|
97
97
|
>
|
|
98
|
-
<ul className={cn('flex items-end gap-[24px] pt-[16px] md:gap-[16px] md:pr-[16px]')}>
|
|
98
|
+
<ul className={cn('flex items-end gap-[24px] pt-[16px] md:pt-[12px] md:gap-[16px] md:pr-[16px]')}>
|
|
99
99
|
{copy.items.map((item, index) => {
|
|
100
100
|
const isActive = activeId === item.targetId
|
|
101
101
|
return (
|
|
@@ -103,7 +103,7 @@ export const CreditsNavigation = ({ copy }: { copy: CreditsNavigationCopy }) =>
|
|
|
103
103
|
<button
|
|
104
104
|
onClick={() => scrollToSection(item.targetId)}
|
|
105
105
|
className={cn(
|
|
106
|
-
'pb-[16px] text-[14px] font-bold tracking-[-0.28px] leading-[1.4]',
|
|
106
|
+
'pb-[16px] md:pb-[12px] text-[14px] font-bold tracking-[-0.28px] leading-[1.4]',
|
|
107
107
|
'transition-all duration-200 relative border-b-4 whitespace-nowrap',
|
|
108
108
|
isActive
|
|
109
109
|
? 'text-[#080a0f] border-brand-1'
|
|
@@ -2,7 +2,8 @@ import { Picture } from '@anker-in/headless-ui'
|
|
|
2
2
|
import useClickOutside from '../../context/hooks/useClickOutside'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
import { useEffect, useState } from 'react'
|
|
5
|
-
import { useHeadlessContext
|
|
5
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
6
|
+
import { ROUNDED_BRANDS } from '../../../../constants'
|
|
6
7
|
|
|
7
8
|
interface Country {
|
|
8
9
|
id: string
|
|
@@ -2,7 +2,8 @@ import classNames from 'classnames'
|
|
|
2
2
|
import { Picture } from '@anker-in/headless-ui'
|
|
3
3
|
import { useEffect, useMemo, useState } from 'react'
|
|
4
4
|
import useClickOutside from '../../context/hooks/useClickOutside'
|
|
5
|
-
import { useHeadlessContext
|
|
5
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
6
|
+
import { ROUNDED_BRANDS } from '../../../../constants'
|
|
6
7
|
|
|
7
8
|
interface StateSelectProps {
|
|
8
9
|
states: { code: string; id: string; name: string }[]
|
|
@@ -7,8 +7,9 @@ import { Input } from './Input'
|
|
|
7
7
|
import { StateSelect } from './StateSelect'
|
|
8
8
|
import { ALPC_COUNTRY_MAP } from '../../context/const'
|
|
9
9
|
import { useCreditsContext } from '../../context/provider'
|
|
10
|
-
import { useHeadlessContext
|
|
10
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
11
11
|
import { AddressFormProps } from './type'
|
|
12
|
+
import { ROUNDED_BRANDS } from '../../../../constants'
|
|
12
13
|
|
|
13
14
|
export const AddressForm = ({ countries, countriesLoading, form, validate, errors, onChange }: AddressFormProps) => {
|
|
14
15
|
const { profile, customer } = useCreditsContext()
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Container, Heading, Tabs, TabsList, TabsTrigger
|
|
1
|
+
import { Container, Heading, Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { useCallback, useMemo, useState } from 'react'
|
|
4
4
|
|
|
@@ -7,9 +7,10 @@ import RedeemProductModal from './RedeemProductModal'
|
|
|
7
7
|
import { useCreditsContext } from '../context/provider'
|
|
8
8
|
import useRedeemableList from '../context/hooks/useRedeemableList'
|
|
9
9
|
import { AlpcConsumeType, AlpcErrorCode } from '../context/const'
|
|
10
|
-
import { useHeadlessContext, useProductsByHandles, gaTrack,
|
|
10
|
+
import { useHeadlessContext, useProductsByHandles, gaTrack, classNames as cn } from '@anker-in/lib'
|
|
11
11
|
import type { RedeemableItem as RedeemableItemType } from '../type'
|
|
12
12
|
import { RedeemableItem } from './RedeemableItem'
|
|
13
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
13
14
|
import RulesModal from '../modal/rulesModal'
|
|
14
15
|
import { CreditsRedeemListCopy } from './type'
|
|
15
16
|
import { useRegistration } from '../../../components/registration'
|
|
@@ -28,9 +29,8 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
28
29
|
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
29
30
|
|
|
30
31
|
const isLogin = Object.keys(profile || {}).length > 0
|
|
31
|
-
const isActivated = profile?.activated
|
|
32
32
|
|
|
33
|
-
const [activeTab, setActiveTab] = useState<string>(copy.list[0]
|
|
33
|
+
const [activeTab, setActiveTab] = useState<string>(copy.list?.[0]?.label || '')
|
|
34
34
|
|
|
35
35
|
const [popRedeemData, setPopRedeemData] = useState<RedeemableItemType | undefined>(undefined)
|
|
36
36
|
|
|
@@ -58,18 +58,18 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
58
58
|
const { data: products } = useProductsByHandles({ handles })
|
|
59
59
|
|
|
60
60
|
const list = useMemo(() => {
|
|
61
|
-
const currentList = copy.list
|
|
62
|
-
return currentList?.list
|
|
63
|
-
.filter(item => alpcList.some(alpcItem => alpcItem.id === item.id))
|
|
61
|
+
const currentList = copy.list?.find(item => item.label === activeTab)
|
|
62
|
+
return (currentList?.list || [])
|
|
63
|
+
.filter(item => alpcList.some(alpcItem => String(alpcItem.id) === String(item.id)))
|
|
64
64
|
.map(item => {
|
|
65
|
-
const alpcItem = alpcList.find(alpcItem => alpcItem.id === item.id)
|
|
65
|
+
const alpcItem = alpcList.find(alpcItem => String(alpcItem.id) === String(item.id))
|
|
66
66
|
const product = products?.find(product => product.handle === alpcItem?.handle)
|
|
67
67
|
const variant = product?.variants.find(variant => variant.sku === alpcItem?.sku)
|
|
68
68
|
// 过滤掉库存不足的商品
|
|
69
69
|
if (alpcItem?.isLimited && (!alpcItem?.remainingInventory || alpcItem.remainingInventory <= 0)) return null
|
|
70
70
|
if (alpcItem?.consumeType === AlpcConsumeType.Product && (!product || !variant)) return null
|
|
71
71
|
return {
|
|
72
|
-
alpc: alpcList.find(alpcItem => alpcItem.id === item.id),
|
|
72
|
+
alpc: alpcList.find(alpcItem => String(alpcItem.id) === String(item.id)),
|
|
73
73
|
config: item,
|
|
74
74
|
product,
|
|
75
75
|
variant,
|
|
@@ -92,18 +92,32 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
92
92
|
<Heading as="h2" size="4" html={copy.title} />
|
|
93
93
|
|
|
94
94
|
{/* 可用积分展示 */}
|
|
95
|
-
{isLogin &&
|
|
96
|
-
<
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
95
|
+
{isLogin && copy.availableCredits && (
|
|
96
|
+
<p className="mt-[12px] text-[20px] l-xxl:text-[18px] l:text-[16px] font-bold text-[#4A4C56]">
|
|
97
|
+
{copy.availableCredits.includes('$credits') ? (
|
|
98
|
+
<>
|
|
99
|
+
{copy.availableCredits.split('$credits')[0]}
|
|
100
|
+
<span
|
|
101
|
+
className={cn(
|
|
102
|
+
'text-brand-color-0',
|
|
103
|
+
brand === 'ankersolix' &&
|
|
104
|
+
'bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-[43%] to-[#00db84] bg-clip-text text-transparent'
|
|
105
|
+
)}
|
|
106
|
+
>
|
|
107
|
+
{numberFormat(creditInfo?.available_credit || 0).toString()}
|
|
108
|
+
</span>
|
|
109
|
+
{copy.availableCredits.split('$credits')[1] || ''}
|
|
110
|
+
</>
|
|
111
|
+
) : (
|
|
112
|
+
copy.availableCredits
|
|
113
|
+
)}
|
|
114
|
+
</p>
|
|
101
115
|
)}
|
|
102
116
|
|
|
103
117
|
<Tabs
|
|
104
118
|
shape={rounded ? 'rounded' : 'square'}
|
|
105
119
|
align="left"
|
|
106
|
-
className={classNames('
|
|
120
|
+
className={classNames('py-[24px] md:justify-center')}
|
|
107
121
|
value={activeTab.toString()}
|
|
108
122
|
onValueChange={value => {
|
|
109
123
|
setActiveTab(value)
|
|
@@ -118,7 +132,7 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
118
132
|
}}
|
|
119
133
|
>
|
|
120
134
|
<TabsList>
|
|
121
|
-
{copy.list.map(item => (
|
|
135
|
+
{(copy.list || []).map(item => (
|
|
122
136
|
<TabsTrigger key={item.label} value={item.label}>
|
|
123
137
|
{item.label}
|
|
124
138
|
</TabsTrigger>
|
|
@@ -175,7 +189,7 @@ export const CreditsRedeemList = ({ copy, id }: { copy: CreditsRedeemListCopy; i
|
|
|
175
189
|
{rules && (
|
|
176
190
|
<RulesModal
|
|
177
191
|
overlayClassName="md:px-[16px] md:items-center"
|
|
178
|
-
className=
|
|
192
|
+
className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}
|
|
179
193
|
isOpen={rules.length > 0}
|
|
180
194
|
onClose={() => setRules([])}
|
|
181
195
|
titleClassName="border-b-transparent h-[56px]"
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Button, Text } from '@anker-in/headless-ui'
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { AddressForm } from '../AddressForm'
|
|
4
|
-
import { useHeadlessContext
|
|
4
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
5
5
|
import type { RedeemableItem as RedeemableItemType } from '../../type'
|
|
6
6
|
import { CreditsRedeemListCopy } from '../type'
|
|
7
7
|
import { ProductInfo } from './ProductInfo'
|
|
8
8
|
import useCountries from '../../context/hooks/useCountries'
|
|
9
|
+
import { ROUNDED_BRANDS } from '../../../../constants'
|
|
9
10
|
|
|
10
11
|
type AddressProps = {
|
|
11
12
|
copy: CreditsRedeemListCopy
|
|
@@ -41,10 +41,12 @@ export const ProductInfo = ({ item, copy }: ProductInfoProps) => {
|
|
|
41
41
|
></Text>
|
|
42
42
|
<div className="flex font-semibold leading-[1.4] md:flex-col">
|
|
43
43
|
<div className="mr-[40px] text-[15px] font-bold text-[#777] md:mr-0 md:text-[12px]">
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
44
|
+
{item.variant.title && item.variant.title.toLowerCase() !== 'default title' && (
|
|
45
|
+
<div className="mb-[8px] flex items-center md:mb-[4px]">
|
|
46
|
+
<span>{copy.redeemModal.product.variantLabel}: </span>
|
|
47
|
+
<span className="ml-1">{item.variant.title}</span>
|
|
48
|
+
</div>
|
|
49
|
+
)}
|
|
48
50
|
<div className="mb-[8px] flex items-center md:mb-[4px]">
|
|
49
51
|
<span>{copy.redeemModal.product.shippingFeeLabel}: </span>
|
|
50
52
|
<span className="ml-1">
|
|
@@ -3,7 +3,8 @@ import classNames from 'classnames'
|
|
|
3
3
|
import type { RedeemableItem as RedeemableItemType } from '../../type'
|
|
4
4
|
import { CreditsRedeemListCopy } from '../type'
|
|
5
5
|
import { ProductInfo } from './ProductInfo'
|
|
6
|
-
import { useHeadlessContext
|
|
6
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
7
|
+
import { ROUNDED_BRANDS } from '../../../../constants'
|
|
7
8
|
|
|
8
9
|
type SuccessProps = {
|
|
9
10
|
copy: CreditsRedeemListCopy
|
|
@@ -6,10 +6,11 @@ import classNames from 'classnames'
|
|
|
6
6
|
import { useCreditsContext } from '../context/provider'
|
|
7
7
|
import type { RedeemableItem as RedeemableItemType } from '../type'
|
|
8
8
|
import { AlpcConsumeType, ConsumeType } from '../context/const'
|
|
9
|
-
import { numberFormat } from '../context/utils'
|
|
9
|
+
import { numberFormat, extractVariantId } from '../context/utils'
|
|
10
10
|
import type { CreditsRedeemListCopy } from './type'
|
|
11
|
-
import { gaTrack, useHeadlessContext
|
|
11
|
+
import { gaTrack, useHeadlessContext } from '@anker-in/lib'
|
|
12
12
|
import { NoneProductValue } from './NonProductValue'
|
|
13
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
13
14
|
|
|
14
15
|
export function RedeemableItem({
|
|
15
16
|
copy,
|
|
@@ -27,7 +28,7 @@ export function RedeemableItem({
|
|
|
27
28
|
const {
|
|
28
29
|
creditInfo,
|
|
29
30
|
profile,
|
|
30
|
-
gtm: { pageGroup },
|
|
31
|
+
gtm: { pageGroup, pageHandle },
|
|
31
32
|
pageCommon,
|
|
32
33
|
} = useCreditsContext()
|
|
33
34
|
const { brand } = useHeadlessContext()
|
|
@@ -79,6 +80,16 @@ export function RedeemableItem({
|
|
|
79
80
|
pageCommon?.soldOut,
|
|
80
81
|
])
|
|
81
82
|
|
|
83
|
+
// 生成产品 listing 页面链接
|
|
84
|
+
const productUrl = useMemo(() => {
|
|
85
|
+
if (item.config?.type !== ConsumeType.Product || !item.product?.handle) {
|
|
86
|
+
return undefined
|
|
87
|
+
}
|
|
88
|
+
return extractVariantId(item.variant?.id)
|
|
89
|
+
? `/products/${item.product.handle}?variant=${extractVariantId(item.variant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`
|
|
90
|
+
: `/products/${item.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`
|
|
91
|
+
}, [item.config?.type, item.product?.handle, item.variant?.id, pageHandle])
|
|
92
|
+
|
|
82
93
|
return (
|
|
83
94
|
<div
|
|
84
95
|
className={classNames(
|
|
@@ -88,12 +99,15 @@ export function RedeemableItem({
|
|
|
88
99
|
)}
|
|
89
100
|
>
|
|
90
101
|
{item.config?.type === ConsumeType.Product ? (
|
|
91
|
-
<
|
|
102
|
+
<a
|
|
103
|
+
href={productUrl}
|
|
104
|
+
className={classNames('relative mx-auto h-[224px] w-fit md:my-[10px] l:h-[120px] l-xxl:h-[138px]')}
|
|
105
|
+
>
|
|
92
106
|
<Picture
|
|
93
107
|
className="h-full w-auto [&_img]:h-full [&_img]:object-contain"
|
|
94
108
|
source={item.config?.image?.url || item.product.images?.[0]?.url}
|
|
95
109
|
></Picture>
|
|
96
|
-
</
|
|
110
|
+
</a>
|
|
97
111
|
) : (
|
|
98
112
|
<div className="relative mx-auto my-[30px] h-[164px] md:my-0 md:h-[66px] l-xxl:h-[138px] md-l:h-[80px]">
|
|
99
113
|
<Picture
|
|
@@ -104,7 +118,7 @@ export function RedeemableItem({
|
|
|
104
118
|
<NoneProductValue item={item} />
|
|
105
119
|
</div>
|
|
106
120
|
)}
|
|
107
|
-
<div className={classNames('mt-[
|
|
121
|
+
<div className={classNames('mt-[10px] xl:mt-[8px] flex w-full flex-1 flex-col justify-between')}>
|
|
108
122
|
<Text
|
|
109
123
|
html={item.config?.title || item.alpc?.title}
|
|
110
124
|
title={item.config?.title || item.alpc?.title}
|
|
@@ -149,7 +163,7 @@ export function RedeemableItem({
|
|
|
149
163
|
html={`${numberFormat(item.alpc?.consumeCredits)}`}
|
|
150
164
|
size={2}
|
|
151
165
|
as="p"
|
|
152
|
-
className="ml-[4px] text-[
|
|
166
|
+
className="ml-[4px] text-[24px] font-bold mt-[4px] leading-none l-xxl:text-[20px] l:text-[16px] "
|
|
153
167
|
/>
|
|
154
168
|
</div>
|
|
155
169
|
|
|
@@ -1,18 +1,19 @@
|
|
|
1
1
|
import { Button, Container, Heading, Picture, Text } from '@anker-in/headless-ui'
|
|
2
2
|
import { ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline'
|
|
3
|
-
import {
|
|
4
|
-
import { useMemo, useState } from 'react'
|
|
3
|
+
import { useEffect, useMemo, useRef, useState } from 'react'
|
|
5
4
|
|
|
6
5
|
import { TaskType, type CreditsWaysToGetCreditsProps } from './type'
|
|
7
6
|
import { useActions } from './useActions'
|
|
8
7
|
import { useCreditsContext } from '../context/provider'
|
|
9
|
-
import { classNames as cn, useHeadlessContext
|
|
8
|
+
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
10
9
|
import { useRegistration } from '../../registration'
|
|
11
10
|
import { CreditsUploadReceiptModal } from '../modal/creditsUploadReceiptModal'
|
|
12
11
|
import { CreditsSubscribeModal } from '../modal/subscribeModal'
|
|
12
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
13
13
|
|
|
14
14
|
export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToGetCreditsProps & { id?: string }) => {
|
|
15
15
|
const [showMore, setShowMore] = useState(false)
|
|
16
|
+
const containerRef = useRef<HTMLDivElement>(null)
|
|
16
17
|
const { profile } = useCreditsContext()
|
|
17
18
|
const { authCodeActivate } = useRegistration()
|
|
18
19
|
const { brand } = useHeadlessContext()
|
|
@@ -36,7 +37,7 @@ export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToG
|
|
|
36
37
|
},
|
|
37
38
|
})
|
|
38
39
|
const list = useMemo(() => {
|
|
39
|
-
const list = copy.list
|
|
40
|
+
const list = (copy.list || [])
|
|
40
41
|
.map(item => {
|
|
41
42
|
if (!actions[item.id as keyof typeof actions]) {
|
|
42
43
|
return undefined
|
|
@@ -90,6 +91,18 @@ export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToG
|
|
|
90
91
|
}
|
|
91
92
|
}, [actions, copy.list, isLogin])
|
|
92
93
|
|
|
94
|
+
useEffect(() => {
|
|
95
|
+
if (!showMore && window.innerWidth < 768) {
|
|
96
|
+
const section = document.getElementById('ways-to-get-credits')
|
|
97
|
+
if (section) {
|
|
98
|
+
const timer = setTimeout(() => {
|
|
99
|
+
section.scrollIntoView({ behavior: 'smooth', block: 'end' })
|
|
100
|
+
}, 300)
|
|
101
|
+
return () => clearTimeout(timer)
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}, [showMore])
|
|
105
|
+
|
|
93
106
|
return (
|
|
94
107
|
<Container id={id} className=" bg-[#F5F5F7] [&>div]:l:!px-0">
|
|
95
108
|
<div
|
|
@@ -122,21 +135,12 @@ export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToG
|
|
|
122
135
|
</div>
|
|
123
136
|
|
|
124
137
|
<div className="relative">
|
|
125
|
-
<
|
|
138
|
+
<div
|
|
139
|
+
ref={containerRef}
|
|
126
140
|
className={cn(
|
|
127
|
-
'relative mt-[64px] grid grid-cols-3 gap-[16px] overflow-hidden md:mt-[16px] md:grid-cols-1 l:gap-[12px]
|
|
141
|
+
'relative mt-[64px] grid grid-cols-3 gap-[16px] overflow-hidden transition-all duration-300 md:mt-[16px] md:grid-cols-1 l:gap-[12px] md-l:mt-[32px] md-l:grid-cols-2',
|
|
142
|
+
showMore ? 'min-md:!h-auto md:h-auto' : 'md:h-[512px] min-md:!h-auto'
|
|
128
143
|
)}
|
|
129
|
-
initial={{ height: 512 }}
|
|
130
|
-
animate={{ height: showMore ? 'auto' : 512 }}
|
|
131
|
-
transition={{ duration: 0.3 }}
|
|
132
|
-
onAnimationComplete={() => {
|
|
133
|
-
if (!showMore && window.screen.width < 768) {
|
|
134
|
-
const section = document.getElementById('ways-to-get-credits')
|
|
135
|
-
if (section) {
|
|
136
|
-
section.scrollIntoView({ behavior: 'smooth', block: 'end' })
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
}}
|
|
140
144
|
>
|
|
141
145
|
{list.map(item => (
|
|
142
146
|
<div
|
|
@@ -147,13 +151,23 @@ export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToG
|
|
|
147
151
|
)}
|
|
148
152
|
>
|
|
149
153
|
<div>
|
|
150
|
-
<
|
|
154
|
+
<Text
|
|
155
|
+
as="p"
|
|
156
|
+
html={item.title}
|
|
157
|
+
size={2}
|
|
158
|
+
className="text-pretty text-[24px] font-bold xl:text-[20px]"
|
|
159
|
+
/>
|
|
151
160
|
<div className="mt-[4px] flex items-center">
|
|
152
161
|
<Picture
|
|
153
162
|
className="size-[24px] xl:size-[18px] [&_path]:size-full"
|
|
154
163
|
source="https://cdn.shopify.com/s/files/1/0511/6346/3874/files/20250902-153351.png?v=1756798450"
|
|
155
164
|
/>
|
|
156
|
-
<Text
|
|
165
|
+
<Text
|
|
166
|
+
as="p"
|
|
167
|
+
html={item.credits}
|
|
168
|
+
size={2}
|
|
169
|
+
className="ml-[4px] mt-[6px] text-[18px] l:text-[14px]"
|
|
170
|
+
/>
|
|
157
171
|
</div>
|
|
158
172
|
</div>
|
|
159
173
|
|
|
@@ -184,7 +198,7 @@ export const CreditsWaysToGetCredits = ({ copy, classNames, id }: CreditsWaysToG
|
|
|
184
198
|
style={{ background: 'linear-gradient(180deg, rgba(29, 29, 31, 0) 66.37%, #1D1D1F 100%)' }}
|
|
185
199
|
></div>
|
|
186
200
|
)}
|
|
187
|
-
</
|
|
201
|
+
</div>
|
|
188
202
|
{showMore ? (
|
|
189
203
|
<button
|
|
190
204
|
className="mx-auto mt-[12px] block w-fit min-md:hidden"
|
|
@@ -9,7 +9,8 @@ import { CreditsModalContainer, type ModalContainerProps } from './modalContaine
|
|
|
9
9
|
import Tip from './tip'
|
|
10
10
|
import LoadingDots from './loadingDots'
|
|
11
11
|
import useMyRewards from '../context/hooks/useMyRewards'
|
|
12
|
-
import { useHeadlessContext
|
|
12
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
13
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
13
14
|
|
|
14
15
|
export interface MyRewardsMetafields {
|
|
15
16
|
title: string
|
|
@@ -4,10 +4,11 @@ import { CreditType, DTC_TASK_TYPE, TaskSubType, TaskType } from '../context/con
|
|
|
4
4
|
import useActivities from '../context/hooks/useActivities'
|
|
5
5
|
import type { Task } from '../context/response'
|
|
6
6
|
import { CreditsModalContainer, type ModalContainerProps } from './modalContainer'
|
|
7
|
-
import { classNames as cn, useHeadlessContext
|
|
7
|
+
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
8
8
|
import { Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'
|
|
9
9
|
import LoadingDots from './loadingDots'
|
|
10
10
|
import { Picture, Text } from '@anker-in/headless-ui'
|
|
11
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
11
12
|
import dayjs from 'dayjs'
|
|
12
13
|
|
|
13
14
|
export interface MyActivitiesMetafields {
|
|
@@ -2,8 +2,9 @@ import { Button, Heading, Text } from '@anker-in/headless-ui'
|
|
|
2
2
|
import { useCallback, useState } from 'react'
|
|
3
3
|
import { CreditsModalContainer } from './modalContainer'
|
|
4
4
|
import { useUploadReceipt } from '../context/hooks/useUploadReceipt'
|
|
5
|
-
import { useHeadlessContext
|
|
5
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
6
6
|
import classNames from 'classnames'
|
|
7
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
7
8
|
|
|
8
9
|
export type ReceiptCopy = {
|
|
9
10
|
title: string
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { classNames as cn, useHeadlessContext
|
|
1
|
+
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
2
2
|
import { useEffect, useState, type UIEvent } from 'react'
|
|
3
3
|
import ReactModal from 'react-modal'
|
|
4
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
4
5
|
|
|
5
6
|
export type ModalContainerProps = {
|
|
6
7
|
overlayClassName?: string
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from 'react'
|
|
2
2
|
import { useRouter } from 'next/router'
|
|
3
3
|
import { Button, Checkbox, Picture, Text } from '@anker-in/headless-ui'
|
|
4
|
-
import { classNames, fetcher, gaTrack, useHeadlessContext
|
|
4
|
+
import { classNames, fetcher, gaTrack, useHeadlessContext } from '@anker-in/lib'
|
|
5
5
|
import Cookies from 'js-cookie'
|
|
6
6
|
import { parse } from 'query-string'
|
|
7
7
|
import sha256 from 'crypto-js/sha256'
|
|
8
8
|
import { useCreditsContext } from '../context/provider'
|
|
9
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
9
10
|
import { emailValidate } from '../context/utils'
|
|
10
11
|
import { CreditsModalContainer, type ModalContainerProps } from './modalContainer'
|
|
11
12
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { useHeadlessContext
|
|
1
|
+
import { useHeadlessContext } from '@anker-in/lib'
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { useState } from 'react'
|
|
4
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
4
5
|
|
|
5
6
|
function Tip({ info, index }: { info: string; index: number }) {
|
|
6
7
|
const [show, setShow] = useState(false)
|
package/src/components/index.ts
CHANGED
|
@@ -9,6 +9,28 @@ export {
|
|
|
9
9
|
useCopilotReadable,
|
|
10
10
|
} from './chat/utils'
|
|
11
11
|
|
|
12
|
-
export * from './credits/index'
|
|
12
|
+
export * from './credits/index.js'
|
|
13
13
|
|
|
14
14
|
export * from './registration/index'
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
// LiveChatWidget 导出
|
|
18
|
+
export { LiveChatWidget } from './LiveChatWidget/index.js'
|
|
19
|
+
export type {
|
|
20
|
+
LiveChatWidgetProps,
|
|
21
|
+
Message,
|
|
22
|
+
MessageContent,
|
|
23
|
+
MessageRole,
|
|
24
|
+
MessageContentType,
|
|
25
|
+
MessageMetadata,
|
|
26
|
+
MessageRenderer,
|
|
27
|
+
QuickReply,
|
|
28
|
+
ProductCardContent,
|
|
29
|
+
ProductListContent,
|
|
30
|
+
PolicyContent,
|
|
31
|
+
QuickRepliesContent,
|
|
32
|
+
ThinkingContent,
|
|
33
|
+
ErrorContent,
|
|
34
|
+
SSEEvent,
|
|
35
|
+
ChatStreamRequest,
|
|
36
|
+
} from './LiveChatWidget/index.js'
|