@anker-in/campaign-ui 0.2.11-beta.3 → 0.2.11-beta.31
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 +63 -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 +46 -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 +41 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
- package/dist/cjs/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -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 +81 -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 +13 -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 +60 -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 +151 -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 +767 -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/fetcher.d.ts +36 -0
- package/dist/cjs/components/LiveChatWidget/utils/fetcher.js +2 -0
- package/dist/cjs/components/LiveChatWidget/utils/fetcher.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/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/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 +2 -0
- package/dist/cjs/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
- package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
- package/dist/cjs/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
- 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/creditsInfoCard/index.js +1 -1
- package/dist/cjs/components/credits/creditsInfoCard/index.js.map +2 -2
- 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/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/CreditsRedeemList.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.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/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/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 +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 +108 -0
- package/dist/cjs/stories/LiveChatWidget.stories.js +149 -0
- package/dist/cjs/stories/LiveChatWidget.stories.js.map +7 -0
- package/dist/cjs/templates/{credits.d.ts → Credits.d.ts} +16 -1
- package/dist/cjs/templates/Credits.js +2 -0
- package/dist/cjs/templates/Credits.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/LiveChatWidget.d.ts +63 -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 +46 -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 +41 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js +2 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductCard.js.map +7 -0
- package/dist/esm/components/LiveChatWidget/components/MessageContent/ProductComparison.d.ts +75 -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 +81 -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 +13 -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 +60 -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 +151 -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 +767 -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/fetcher.d.ts +36 -0
- package/dist/esm/components/LiveChatWidget/utils/fetcher.js +2 -0
- package/dist/esm/components/LiveChatWidget/utils/fetcher.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/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/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 +2 -0
- package/dist/esm/components/credits/creditsBenefits/BenefitItem.js.map +7 -0
- package/dist/esm/components/credits/creditsBenefits/{iconInfo.js → IconInfo.js} +1 -1
- package/dist/esm/components/credits/creditsBenefits/{iconInfo.js.map → IconInfo.js.map} +1 -1
- 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/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/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/CreditsRedeemList.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/CreditsRedeemList.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/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/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 +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 +108 -0
- package/dist/esm/stories/LiveChatWidget.stories.js +149 -0
- package/dist/esm/stories/LiveChatWidget.stories.js.map +7 -0
- package/dist/esm/templates/{credits.d.ts → Credits.d.ts} +16 -1
- package/dist/esm/templates/Credits.js +2 -0
- package/dist/esm/templates/Credits.js.map +7 -0
- package/dist/index.d.mts +1305 -0
- package/dist/index.d.ts +1305 -0
- package/dist/index.js +26656 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +26641 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +7 -3
- package/src/components/LiveChatWidget/LiveChatWidget.tsx +732 -0
- package/src/components/LiveChatWidget/api/chat.ts +174 -0
- package/src/components/LiveChatWidget/components/ChatBubble.tsx +152 -0
- package/src/components/LiveChatWidget/components/ChatHeader.tsx +150 -0
- package/src/components/LiveChatWidget/components/ChatInput.tsx +241 -0
- package/src/components/LiveChatWidget/components/ChatMessage.tsx +190 -0
- package/src/components/LiveChatWidget/components/ChatWindow.tsx +353 -0
- package/src/components/LiveChatWidget/components/MessageContent/CartCard.tsx +202 -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 +218 -0
- package/src/components/LiveChatWidget/components/MessageContent/ProductComparison.tsx +359 -0
- package/src/components/LiveChatWidget/components/MessageContent/ProductList.tsx +293 -0
- package/src/components/LiveChatWidget/components/MessageContent/PromotionList.tsx +170 -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 +113 -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 +36 -0
- package/src/components/LiveChatWidget/hooks/useChatAPI.ts +146 -0
- package/src/components/LiveChatWidget/hooks/useChatState.ts +1086 -0
- package/src/components/LiveChatWidget/hooks/useSession.ts +123 -0
- package/src/components/LiveChatWidget/index.tsx +62 -0
- package/src/components/LiveChatWidget/types.ts +949 -0
- package/src/components/LiveChatWidget/utils/cartTransformers.ts +72 -0
- package/src/components/LiveChatWidget/utils/fetcher.ts +126 -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/creditsAnkersolixTask/CreditsAnkersolixTask.tsx +26 -26
- package/src/components/credits/creditsBanner/index.tsx +31 -3
- package/src/components/credits/creditsBenefits/BenefitItem.tsx +11 -4
- package/src/components/credits/creditsBenefits/IconInfo.tsx +1 -1
- package/src/components/credits/creditsCash/CreditsCash.tsx +6 -3
- package/src/components/credits/creditsCash/RedeemableItem.tsx +23 -10
- package/src/components/credits/creditsCash/type.ts +1 -0
- package/src/components/credits/creditsFaq/faqItem/FaqItem.tsx +25 -23
- package/src/components/credits/creditsInfoCard/index.tsx +8 -2
- package/src/components/credits/creditsMemberPrice/CreditsMemberPrice.tsx +124 -25
- package/src/components/credits/creditsMemberPrice/MemberPriceItem.tsx +113 -31
- package/src/components/credits/creditsMemberPrice/type.ts +3 -5
- package/src/components/credits/creditsNavigation/CreditsNavigation.tsx +3 -3
- package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +31 -18
- package/src/components/credits/creditsRedeemList/RedeemProductModal/ProductInfo.tsx +6 -4
- package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +19 -6
- package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +20 -17
- package/src/components/index.ts +23 -1
- package/src/components/registration/authCodeActivate/index.tsx +2 -0
- package/src/stories/CartCard.stories.tsx +459 -0
- package/src/stories/LiveChatWidget.stories.tsx +754 -0
- package/src/styles/livechat.css +268 -0
- package/src/templates/Credits.tsx +27 -9
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
- package/dist/cjs/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
- package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
- package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js +0 -2
- package/dist/cjs/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
- package/dist/cjs/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
- package/dist/cjs/components/credits/context/hooks/useSubscriptions.js +0 -2
- package/dist/cjs/components/credits/context/hooks/useSubscriptions.js.map +0 -7
- package/dist/cjs/components/credits/context/utils/atobID.d.ts +0 -1
- package/dist/cjs/components/credits/context/utils/atobID.js +0 -2
- package/dist/cjs/components/credits/context/utils/atobID.js.map +0 -7
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js +0 -2
- package/dist/cjs/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
- package/dist/cjs/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js +0 -2
- package/dist/cjs/components/credits/context/utils/variantGetCoupon.js.map +0 -7
- package/dist/cjs/components/credits/creditsBenefits/benefitItem.js +0 -2
- package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +0 -7
- package/dist/cjs/helpers/fetchResponse.d.ts +0 -14
- package/dist/cjs/helpers/fetchResponse.js +0 -2
- package/dist/cjs/helpers/fetchResponse.js.map +0 -7
- package/dist/cjs/helpers/fetcher.d.ts +0 -2
- package/dist/cjs/helpers/fetcher.js +0 -2
- package/dist/cjs/helpers/fetcher.js.map +0 -7
- package/dist/cjs/helpers/index.d.ts +0 -2
- package/dist/cjs/helpers/index.js +0 -2
- package/dist/cjs/helpers/index.js.map +0 -7
- package/dist/cjs/helpers/track.d.ts +0 -19
- package/dist/cjs/helpers/track.js +0 -2
- package/dist/cjs/helpers/track.js.map +0 -7
- package/dist/cjs/helpers/utils.d.ts +0 -3
- package/dist/cjs/helpers/utils.js +0 -2
- package/dist/cjs/helpers/utils.js.map +0 -7
- package/dist/cjs/templates/credits.js +0 -2
- package/dist/cjs/templates/credits.js.map +0 -7
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.d.ts +0 -7
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js +0 -2
- package/dist/esm/components/credits/context/hooks/useFunctionMemberPrice.js.map +0 -7
- package/dist/esm/components/credits/context/hooks/useSendEmailValidation.d.ts +0 -1
- package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js +0 -2
- package/dist/esm/components/credits/context/hooks/useSendEmailValidation.js.map +0 -7
- package/dist/esm/components/credits/context/hooks/useSubscriptions.d.ts +0 -9
- package/dist/esm/components/credits/context/hooks/useSubscriptions.js +0 -2
- package/dist/esm/components/credits/context/hooks/useSubscriptions.js.map +0 -7
- package/dist/esm/components/credits/context/utils/atobID.d.ts +0 -1
- package/dist/esm/components/credits/context/utils/atobID.js +0 -2
- package/dist/esm/components/credits/context/utils/atobID.js.map +0 -7
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.d.ts +0 -5
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js +0 -2
- package/dist/esm/components/credits/context/utils/functionDiscountCalculate.js.map +0 -7
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.d.ts +0 -8
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js +0 -2
- package/dist/esm/components/credits/context/utils/getFunctionMemberPrice.js.map +0 -7
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.d.ts +0 -9
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js +0 -2
- package/dist/esm/components/credits/context/utils/getFunctionMemberPriceDiscountConfig.js.map +0 -7
- package/dist/esm/components/credits/context/utils/variantGetCoupon.d.ts +0 -6
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js +0 -2
- package/dist/esm/components/credits/context/utils/variantGetCoupon.js.map +0 -7
- package/dist/esm/components/credits/creditsBenefits/benefitItem.js +0 -2
- package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +0 -7
- package/dist/esm/helpers/fetchResponse.d.ts +0 -14
- package/dist/esm/helpers/fetchResponse.js +0 -2
- package/dist/esm/helpers/fetchResponse.js.map +0 -7
- package/dist/esm/helpers/fetcher.d.ts +0 -2
- package/dist/esm/helpers/fetcher.js +0 -2
- package/dist/esm/helpers/fetcher.js.map +0 -7
- package/dist/esm/helpers/index.d.ts +0 -2
- package/dist/esm/helpers/index.js +0 -2
- package/dist/esm/helpers/index.js.map +0 -7
- package/dist/esm/helpers/track.d.ts +0 -19
- package/dist/esm/helpers/track.js +0 -2
- package/dist/esm/helpers/track.js.map +0 -7
- package/dist/esm/helpers/utils.d.ts +0 -3
- package/dist/esm/helpers/utils.js +0 -2
- package/dist/esm/helpers/utils.js.map +0 -7
- package/dist/esm/templates/credits.js +0 -2
- package/dist/esm/templates/credits.js.map +0 -7
- 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
- /package/dist/cjs/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
- /package/dist/cjs/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
- /package/dist/esm/components/credits/creditsBenefits/{benefitItem.d.ts → BenefitItem.d.ts} +0 -0
- /package/dist/esm/components/credits/creditsBenefits/{iconInfo.d.ts → IconInfo.d.ts} +0 -0
|
@@ -5,7 +5,7 @@ import remarkMath from 'remark-math'
|
|
|
5
5
|
|
|
6
6
|
const MemoizedReactMarkdown: FC<Options> = memo(
|
|
7
7
|
ReactMarkdown,
|
|
8
|
-
(prevProps, nextProps) => prevProps.children === nextProps.children
|
|
8
|
+
(prevProps, nextProps) => prevProps.children === nextProps.children
|
|
9
9
|
)
|
|
10
10
|
|
|
11
11
|
type MarkdownProps = {
|
|
@@ -1,18 +1,9 @@
|
|
|
1
|
-
import { FunctionDiscountType
|
|
2
|
-
|
|
3
|
-
// 价格结尾配置
|
|
4
|
-
export type PriceEndingConf = {
|
|
5
|
-
apply_price_ending: boolean
|
|
6
|
-
one_decimal_place: string
|
|
7
|
-
two_decimal_place: string
|
|
8
|
-
round_selected: RoundSelected
|
|
9
|
-
}
|
|
1
|
+
import { FunctionDiscountType } from './memberPriceConst'
|
|
10
2
|
|
|
11
3
|
// 折扣配置
|
|
12
4
|
export type DiscountConfig = {
|
|
13
5
|
discount_type: FunctionDiscountType
|
|
14
6
|
discount_value: number
|
|
15
|
-
price_ending_conf?: PriceEndingConf
|
|
16
7
|
}
|
|
17
8
|
|
|
18
9
|
// 会员价配置类型
|
|
@@ -36,19 +27,3 @@ export type FunctionMemberPriceConfig = {
|
|
|
36
27
|
other_product_discounts: boolean
|
|
37
28
|
}
|
|
38
29
|
}
|
|
39
|
-
|
|
40
|
-
// 会员价计算结果
|
|
41
|
-
export type FunctionMemberPriceResult = {
|
|
42
|
-
hasMemberPrice: boolean
|
|
43
|
-
useCoupon: boolean
|
|
44
|
-
originalPrice: number
|
|
45
|
-
originalPriceWithCurrency: string
|
|
46
|
-
salePrice: number
|
|
47
|
-
salePriceWithCurrency: string
|
|
48
|
-
salePriceWithoutCoupon: number
|
|
49
|
-
salePriceWithoutCouponWithCurrency: string
|
|
50
|
-
savePrice: number
|
|
51
|
-
savePriceWithCurrency: string
|
|
52
|
-
savePriceWithoutCoupon: number
|
|
53
|
-
savePriceWithoutCouponWithCurrency: string
|
|
54
|
-
}
|
|
@@ -17,10 +17,22 @@ type Context = {
|
|
|
17
17
|
fetchCreditInfo: (user_id: string) => void
|
|
18
18
|
gtm: {
|
|
19
19
|
pageGroup: string
|
|
20
|
+
pageHandle?: string
|
|
20
21
|
}
|
|
21
22
|
pageCommon: CreditsPageCommon
|
|
22
23
|
memberPriceDiscount?: FunctionMemberPriceConfig[]
|
|
23
24
|
alpcBrand?: string
|
|
25
|
+
cartConfig?: {
|
|
26
|
+
addToCart: (params: {
|
|
27
|
+
variantList: Array<{
|
|
28
|
+
variant: any
|
|
29
|
+
quantity: number
|
|
30
|
+
attributes?: Array<{ key: string; value: string }>
|
|
31
|
+
}>
|
|
32
|
+
cartAttributes?: Record<string, string>
|
|
33
|
+
discountCodes?: string[]
|
|
34
|
+
}) => void | Promise<any>
|
|
35
|
+
}
|
|
24
36
|
}
|
|
25
37
|
|
|
26
38
|
export const CreditsContext = createContext<Context>({
|
|
@@ -35,10 +47,12 @@ export const CreditsContext = createContext<Context>({
|
|
|
35
47
|
fetchCreditInfo: (user_id: string) => {},
|
|
36
48
|
gtm: {
|
|
37
49
|
pageGroup: '',
|
|
50
|
+
pageHandle: '',
|
|
38
51
|
},
|
|
39
52
|
pageCommon: {},
|
|
40
53
|
memberPriceDiscount: undefined,
|
|
41
54
|
alpcBrand: undefined,
|
|
55
|
+
cartConfig: undefined,
|
|
42
56
|
})
|
|
43
57
|
|
|
44
58
|
export function CreditsProvider({
|
|
@@ -57,6 +71,7 @@ export function CreditsProvider({
|
|
|
57
71
|
pageCommon,
|
|
58
72
|
memberPriceDiscount,
|
|
59
73
|
alpcBrand,
|
|
74
|
+
cartConfig,
|
|
60
75
|
}: PropsWithChildren<Context>) {
|
|
61
76
|
return (
|
|
62
77
|
<CreditsContext.Provider
|
|
@@ -75,6 +90,7 @@ export function CreditsProvider({
|
|
|
75
90
|
pageCommon,
|
|
76
91
|
memberPriceDiscount,
|
|
77
92
|
alpcBrand,
|
|
93
|
+
cartConfig,
|
|
78
94
|
}}
|
|
79
95
|
>
|
|
80
96
|
{children}
|
|
@@ -1,7 +1,6 @@
|
|
|
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 { useMemo, useState, useRef, useEffect } from 'react'
|
|
5
4
|
|
|
6
5
|
import { TaskType, type CreditsAnkersolixTaskProps } from './type'
|
|
7
6
|
import { useActions } from '../creditsWaysToGetCredits/useActions'
|
|
@@ -36,6 +35,21 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
36
35
|
isSuccess: isUploadReceiptSuccess,
|
|
37
36
|
},
|
|
38
37
|
})
|
|
38
|
+
|
|
39
|
+
const shouldShowMask = (copy?.list || []).length > 3
|
|
40
|
+
|
|
41
|
+
// Handle scroll after collapse animation
|
|
42
|
+
useEffect(() => {
|
|
43
|
+
if (!showMore && shouldShowMask && window.screen.width < 768) {
|
|
44
|
+
const timer = setTimeout(() => {
|
|
45
|
+
const section = document.getElementById(id || 'ankersolix-task')
|
|
46
|
+
if (section) {
|
|
47
|
+
section.scrollIntoView({ behavior: 'smooth', block: 'end' })
|
|
48
|
+
}
|
|
49
|
+
}, 300) // Match transition duration
|
|
50
|
+
return () => clearTimeout(timer)
|
|
51
|
+
}
|
|
52
|
+
}, [showMore, shouldShowMask, id])
|
|
39
53
|
const list = useMemo(() => {
|
|
40
54
|
const list = copy.list
|
|
41
55
|
.map(item => {
|
|
@@ -91,9 +105,6 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
91
105
|
}
|
|
92
106
|
}, [actions, copy.list, isLogin])
|
|
93
107
|
|
|
94
|
-
// 只有大于3个任务时才显示蒙层
|
|
95
|
-
const shouldShowMask = list.length > 3
|
|
96
|
-
|
|
97
108
|
return (
|
|
98
109
|
<Container id={id} className="bg-[#F5F5F7]">
|
|
99
110
|
<Heading as="h2" size="4" html={copy.title} />
|
|
@@ -125,7 +136,7 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
125
136
|
/>
|
|
126
137
|
<div className="flex items-center gap-[8px]">
|
|
127
138
|
<p
|
|
128
|
-
className="text-[48px] font-bold
|
|
139
|
+
className="text-[48px] font-bold leading-none bg-gradient-to-r from-[#2c7ed0] via-[#00a9e1] via-43% to-[#00db84] bg-clip-text text-transparent xl-xxl:text-[40px] l-xl:text-[32px] l:text-[24px]"
|
|
129
140
|
dangerouslySetInnerHTML={{ __html: copy.equalCredits }}
|
|
130
141
|
/>
|
|
131
142
|
</div>
|
|
@@ -141,18 +152,12 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
141
152
|
|
|
142
153
|
{/* 卡片列表 */}
|
|
143
154
|
<div className="relative mt-[24px]">
|
|
144
|
-
<
|
|
145
|
-
className={cn(
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
if (!showMore && shouldShowMask && window.screen.width < 768) {
|
|
151
|
-
const section = document.getElementById(id || 'ankersolix-task')
|
|
152
|
-
if (section) {
|
|
153
|
-
section.scrollIntoView({ behavior: 'smooth', block: 'end' })
|
|
154
|
-
}
|
|
155
|
-
}
|
|
155
|
+
<div
|
|
156
|
+
className={cn(
|
|
157
|
+
'grid grid-cols-3 gap-[16px] overflow-hidden md:grid-cols-1 md-l:grid-cols-2 min-md:!h-auto transition-all duration-300 ease-in-out'
|
|
158
|
+
)}
|
|
159
|
+
style={{
|
|
160
|
+
height: showMore || !shouldShowMask ? 'auto' : '512px',
|
|
156
161
|
}}
|
|
157
162
|
>
|
|
158
163
|
{list.map(item => (
|
|
@@ -194,17 +199,12 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
194
199
|
{...(item.handleClick && { onClick: item.handleClick })}
|
|
195
200
|
variant="primary"
|
|
196
201
|
size="lg"
|
|
197
|
-
className="mt-[24px] w-fit
|
|
202
|
+
className="mt-[24px] w-fit"
|
|
198
203
|
>
|
|
199
204
|
{item.buttonLabel}
|
|
200
205
|
</Button>
|
|
201
206
|
) : (
|
|
202
|
-
<Button
|
|
203
|
-
variant="primary"
|
|
204
|
-
size="lg"
|
|
205
|
-
className="mt-[24px] w-fit bg-[#080a0f] text-white text-[16px] font-bold tracking-[-0.64px] leading-[1.2]"
|
|
206
|
-
disabled
|
|
207
|
-
>
|
|
207
|
+
<Button variant="primary" size="lg" className="mt-[24px] w-fit" disabled>
|
|
208
208
|
{item.buttonLabel}
|
|
209
209
|
</Button>
|
|
210
210
|
)}
|
|
@@ -216,7 +216,7 @@ export const CreditsAnkersolixTask = ({ copy, classNames, id }: CreditsAnkersoli
|
|
|
216
216
|
style={{ background: 'linear-gradient(180deg, rgba(244, 202, 129, 0) 66.37%, #f4ca81 100%)' }}
|
|
217
217
|
></div>
|
|
218
218
|
)}
|
|
219
|
-
</
|
|
219
|
+
</div>
|
|
220
220
|
{shouldShowMask && (
|
|
221
221
|
<>
|
|
222
222
|
{showMore ? (
|
|
@@ -5,6 +5,8 @@ import { useCreditsContext } from '../context/provider'
|
|
|
5
5
|
type Img = {
|
|
6
6
|
url: string
|
|
7
7
|
alt: string
|
|
8
|
+
width?: number
|
|
9
|
+
height?: number
|
|
8
10
|
}
|
|
9
11
|
export type CreditsBannerCopy = {
|
|
10
12
|
pcImg: Img
|
|
@@ -34,15 +36,41 @@ export function CreditsBanner({ copy, id }: { copy: CreditsBannerCopy; id?: stri
|
|
|
34
36
|
buttonType === 'primary' ? openSignUpPopup() : openSignInPopup()
|
|
35
37
|
}
|
|
36
38
|
|
|
39
|
+
// 计算图片比例,如果没有配置则使用默认值
|
|
40
|
+
const pcAspectRatio =
|
|
41
|
+
copy.pcImg?.width && copy.pcImg?.height ? `${copy.pcImg.width} / ${copy.pcImg.height}` : '1920 / 804'
|
|
42
|
+
const laptopAspectRatio =
|
|
43
|
+
copy.laptopImg?.width && copy.laptopImg?.height ? `${copy.laptopImg.width} / ${copy.laptopImg.height}` : '768 / 660'
|
|
44
|
+
const mobileAspectRatio =
|
|
45
|
+
copy.mobileImg?.width && copy.mobileImg?.height ? `${copy.mobileImg.width} / ${copy.mobileImg.height}` : '390 / 660'
|
|
46
|
+
|
|
37
47
|
return (
|
|
38
48
|
<>
|
|
39
49
|
<div id={id} className=" relative w-full">
|
|
40
50
|
<Picture
|
|
41
|
-
className="
|
|
51
|
+
className="credits-banner-image w-full"
|
|
52
|
+
style={{
|
|
53
|
+
aspectRatio: pcAspectRatio,
|
|
54
|
+
}}
|
|
55
|
+
imgClassName="object-cover w-full h-full"
|
|
42
56
|
source={`${copy.pcImg?.url}, ${copy.laptopImg?.url} 1024, ${copy.mobileImg?.url} 768`}
|
|
43
57
|
alt={copy.pcImg?.alt}
|
|
44
58
|
loading="eager"
|
|
45
59
|
></Picture>
|
|
60
|
+
<style>
|
|
61
|
+
{`
|
|
62
|
+
@media (max-width: 1024px) and (min-width: 768px) {
|
|
63
|
+
.credits-banner-image {
|
|
64
|
+
aspect-ratio: ${laptopAspectRatio} !important;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
@media (max-width: 767px) {
|
|
68
|
+
.credits-banner-image {
|
|
69
|
+
aspect-ratio: ${mobileAspectRatio} !important;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
`}
|
|
73
|
+
</style>
|
|
46
74
|
{isLogin && (
|
|
47
75
|
<div
|
|
48
76
|
className="absolute inset-0 "
|
|
@@ -54,10 +82,10 @@ export function CreditsBanner({ copy, id }: { copy: CreditsBannerCopy; id?: stri
|
|
|
54
82
|
|
|
55
83
|
<Container className="l:h-auto !absolute inset-0 mx-auto grid h-full" asChild>
|
|
56
84
|
<div className="grid grid-cols-12">
|
|
57
|
-
<div className="l:col-span-12 l:justify-start l:truncate l:pt-[
|
|
85
|
+
<div className="l:col-span-12 l:justify-start l:truncate l:pt-[32px] col-span-5 flex h-full flex-col justify-center text-[#1F2021]">
|
|
58
86
|
<Heading
|
|
59
87
|
as="h1"
|
|
60
|
-
|
|
88
|
+
className="text-[48px] font-bold xl-xxl:text-[40px] l:text-[32px]"
|
|
61
89
|
html={isLogin ? copy.login.title?.replace('$name', displayName || '') : copy.unLogin.title}
|
|
62
90
|
></Heading>
|
|
63
91
|
|
|
@@ -29,13 +29,16 @@ const BenefitItem = ({
|
|
|
29
29
|
cardBgColor?: string
|
|
30
30
|
cardBorderColor?: string
|
|
31
31
|
}) => {
|
|
32
|
-
const { brand } = useHeadlessContext()
|
|
32
|
+
const { brand, locale } = useHeadlessContext()
|
|
33
33
|
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
34
34
|
|
|
35
|
+
// 德语和法语需要折行
|
|
36
|
+
const shouldBreakWords = ['de', 'eu-de', 'fr', 'eu-fr'].includes(locale)
|
|
37
|
+
|
|
35
38
|
// 根据 bigIcon 设置不同屏幕下的图标大小
|
|
36
|
-
// 尺寸:≥1921px=64px, 1441-1920px=
|
|
39
|
+
// 尺寸:≥1921px=64px, 1441-1920px=56px, 1025-1440px=20px, ≤1024px=48px
|
|
37
40
|
const iconSizeClass = bigIcon
|
|
38
|
-
? 'mb-[16px] size-[64px] xl-xxl:size-[
|
|
41
|
+
? 'mb-[16px] size-[64px] xl-xxl:size-[56px] xl:size-[48px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0'
|
|
39
42
|
: 'mb-[16px] size-[31px] md:absolute md:bottom-[16px] md:right-[16px] md:mb-0'
|
|
40
43
|
|
|
41
44
|
console.log('cardBgColor in BenefitItem', cardBgColor)
|
|
@@ -61,7 +64,11 @@ const BenefitItem = ({
|
|
|
61
64
|
<div className="flex flex-col">
|
|
62
65
|
<Picture className={iconSizeClass} alt={item.icon?.alt} source={item.icon?.url} />
|
|
63
66
|
<div className="flex items-center">
|
|
64
|
-
<Heading
|
|
67
|
+
<Heading
|
|
68
|
+
html={item.text}
|
|
69
|
+
size="2"
|
|
70
|
+
className={cn('md-l:line-clamp-3', shouldBreakWords && 'break-words')}
|
|
71
|
+
/>
|
|
65
72
|
{item.note && (
|
|
66
73
|
<div
|
|
67
74
|
role="button"
|
|
@@ -4,16 +4,19 @@ import { useMemo, useState } from 'react'
|
|
|
4
4
|
import RedeemableItem from './RedeemableItem'
|
|
5
5
|
import useRedeemableList from '../context/hooks/useRedeemableList'
|
|
6
6
|
import RulesModal from '../modal/rulesModal'
|
|
7
|
-
import { useProductsByHandles } from '@anker-in/lib'
|
|
7
|
+
import { useProductsByHandles, useHeadlessContext } from '@anker-in/lib'
|
|
8
8
|
import { CreditsCashCopy, RedeemItem } from './type'
|
|
9
9
|
import { Product, classNames as cn } from '@anker-in/lib'
|
|
10
10
|
import { useCreditsContext } from '../context/provider'
|
|
11
11
|
import { numberFormat } from '../context/utils'
|
|
12
|
+
import { ROUNDED_BRANDS } from '../../../constants'
|
|
12
13
|
|
|
13
14
|
export const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }) => {
|
|
14
15
|
const [rules, setRules] = useState<string | string[]>()
|
|
15
16
|
const { redeemableList } = useRedeemableList()
|
|
16
17
|
const { pageCommon } = useCreditsContext()
|
|
18
|
+
const { brand } = useHeadlessContext()
|
|
19
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
17
20
|
|
|
18
21
|
const variantMetafieldIdentifiers: any[] = []
|
|
19
22
|
|
|
@@ -27,7 +30,7 @@ export const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }
|
|
|
27
30
|
const list = useMemo(() => {
|
|
28
31
|
return productByHandles
|
|
29
32
|
?.map((product: Product) => {
|
|
30
|
-
const config = copy.list.find(item => item.products?.[0]?.handle === product.handle)
|
|
33
|
+
const config = (copy.list || []).find(item => item.products?.[0]?.handle === product.handle)
|
|
31
34
|
const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())
|
|
32
35
|
const productVariant =
|
|
33
36
|
product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]
|
|
@@ -69,7 +72,7 @@ export const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }
|
|
|
69
72
|
{rules && (
|
|
70
73
|
<RulesModal
|
|
71
74
|
overlayClassName="md:px-[16px] md:items-center"
|
|
72
|
-
className=
|
|
75
|
+
className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}
|
|
73
76
|
isOpen={rules.length > 0}
|
|
74
77
|
onClose={() => setRules([])}
|
|
75
78
|
titleClassName="border-b-transparent h-[56px]"
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Button, Text, Picture } from '@anker-in/headless-ui'
|
|
1
|
+
import { Button, Text, Picture, Badge } from '@anker-in/headless-ui'
|
|
2
2
|
import { useMemo, useState } from 'react'
|
|
3
3
|
|
|
4
4
|
import { CreditsCashCopy, RedeemItem } from './type'
|
|
@@ -26,7 +26,7 @@ function RedeemableItem({
|
|
|
26
26
|
profile,
|
|
27
27
|
openSignUpPopup,
|
|
28
28
|
pageCommon,
|
|
29
|
-
gtm: { pageGroup },
|
|
29
|
+
gtm: { pageGroup, pageHandle },
|
|
30
30
|
} = useCreditsContext()
|
|
31
31
|
const { authCodeActivate } = useRegistration()
|
|
32
32
|
const { brand, locale } = useHeadlessContext()
|
|
@@ -113,18 +113,31 @@ function RedeemableItem({
|
|
|
113
113
|
return (
|
|
114
114
|
<div
|
|
115
115
|
className={cn(
|
|
116
|
-
'flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px]
|
|
116
|
+
'relative flex flex-col items-center rounded-[16px] bg-[#EAEAEC] md:rounded-[12px] px-[24px] pb-[24px] l:px-[8px] l:pb-[8px] md-xl:px-[16px] md-xl:pb-[16px]',
|
|
117
117
|
!rounded && 'rounded-none md:rounded-none',
|
|
118
|
+
copy.badgeLabel ? 'pt-[48px] l:pt-[44px]' : 'pt-[24px] md-xl:pt-[16px] l:pt-[8px]',
|
|
118
119
|
className
|
|
119
120
|
)}
|
|
120
121
|
>
|
|
122
|
+
{/* Redeem 标签 Badge */}
|
|
123
|
+
{copy.badgeLabel && (
|
|
124
|
+
<Badge
|
|
125
|
+
className="absolute left-[24px] l:left-[16px] !bg-gradient-brand top-[16px] z-10"
|
|
126
|
+
size="lg"
|
|
127
|
+
variant="promotional"
|
|
128
|
+
promotionalType="regular-member"
|
|
129
|
+
>
|
|
130
|
+
{copy.badgeLabel}
|
|
131
|
+
</Badge>
|
|
132
|
+
)}
|
|
133
|
+
|
|
121
134
|
<a
|
|
122
135
|
href={
|
|
123
136
|
extractVariantId(itemData.productVariant?.id)
|
|
124
|
-
? `/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}`
|
|
125
|
-
: `/products/${itemData.product.handle}`
|
|
137
|
+
? `/products/${itemData.product.handle}?variant=${extractVariantId(itemData.productVariant?.id)}${pageHandle ? `&ref=${pageHandle}` : ''}`
|
|
138
|
+
: `/products/${itemData.product.handle}${pageHandle ? `?ref=${pageHandle}` : ''}`
|
|
126
139
|
}
|
|
127
|
-
className={cn('relative mx-auto h-[
|
|
140
|
+
className={cn('relative mx-auto h-[196px] w-fit md:h-[120px] md-xxl:h-[138px]')}
|
|
128
141
|
>
|
|
129
142
|
<Picture
|
|
130
143
|
className="mx-auto h-full w-auto"
|
|
@@ -136,12 +149,12 @@ function RedeemableItem({
|
|
|
136
149
|
}
|
|
137
150
|
></Picture>
|
|
138
151
|
</a>
|
|
139
|
-
<div className={cn('mt-[
|
|
152
|
+
<div className={cn('mt-[10px] w-full xl:mt-[8px]')}>
|
|
140
153
|
<Text
|
|
141
154
|
html={itemData?.product?.title}
|
|
142
155
|
title={itemData.config?.title || itemData.alpcData?.title || itemData.product?.title}
|
|
143
156
|
size={2}
|
|
144
|
-
className="line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[
|
|
157
|
+
className="line-clamp-2 h-[58px] text-[24px] l-xxl:text-[20px] l:text-[16px] leading-[1.2] l:h-[38px] l-xxl:h-[48px]"
|
|
145
158
|
/>
|
|
146
159
|
{itemData?.config?.rules?.split('<br>')?.length > 0 && (
|
|
147
160
|
<button
|
|
@@ -172,7 +185,7 @@ function RedeemableItem({
|
|
|
172
185
|
</button>
|
|
173
186
|
)}
|
|
174
187
|
|
|
175
|
-
<div className="flex flex-wrap items-center l:mt-[12px] laptop:text-[16px] lg-desktop:text-[18px]">
|
|
188
|
+
<div className="flex flex-wrap items-center l:mt-[12px] md:min-h-[46px] laptop:text-[16px] lg-desktop:text-[18px]">
|
|
176
189
|
<Picture
|
|
177
190
|
className="size-[24px] l-xxl:size-[22px] md-l:size-[18px] md:size-[16px]"
|
|
178
191
|
source="https://cdn.shopify.com/s/files/1/0511/6346/3874/files/icon_hire_purchase.png?v=1757496783"
|
|
@@ -198,7 +211,7 @@ function RedeemableItem({
|
|
|
198
211
|
/>
|
|
199
212
|
</div>
|
|
200
213
|
|
|
201
|
-
<div className="group relative w-full">
|
|
214
|
+
<div className="group relative w-full mt-[8px]">
|
|
202
215
|
<Button
|
|
203
216
|
disabled={isDisabled}
|
|
204
217
|
variant="primary"
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Heading, Text } from '@anker-in/headless-ui'
|
|
2
2
|
import { ChevronDownIcon } from '@heroicons/react/24/outline'
|
|
3
3
|
import { classNames as cn } from '@anker-in/lib'
|
|
4
|
-
import { motion } from 'framer-motion'
|
|
5
4
|
import { type ReactNode, useEffect, useState } from 'react'
|
|
6
5
|
|
|
7
6
|
type FaqItemProps = {
|
|
@@ -67,29 +66,32 @@ export const FaqItem = ({
|
|
|
67
66
|
/>
|
|
68
67
|
)}
|
|
69
68
|
</div>
|
|
70
|
-
<
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
>
|
|
75
|
-
{answer?.toString()?.includes('https://www.youtube.com') ? (
|
|
76
|
-
<Text
|
|
77
|
-
as="div"
|
|
78
|
-
className={cn('mt-[8px]')}
|
|
79
|
-
data-ratio="16:9"
|
|
80
|
-
data-content={answer}
|
|
81
|
-
html={answer?.toString()}
|
|
82
|
-
></Text>
|
|
83
|
-
) : (
|
|
84
|
-
<Text
|
|
85
|
-
as="div"
|
|
86
|
-
html={answer?.toString()}
|
|
87
|
-
className={cn(
|
|
88
|
-
'mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand [&_a]:underline'
|
|
89
|
-
)}
|
|
90
|
-
></Text>
|
|
69
|
+
<div
|
|
70
|
+
className={cn(
|
|
71
|
+
'grid transition-all duration-300 ease-in-out [&_td]:border [&_td]:border-[#333] [&_td]:px-[8px] [&_td]:py-[4px]',
|
|
72
|
+
expanded ? 'grid-rows-[1fr]' : 'grid-rows-[0fr]'
|
|
91
73
|
)}
|
|
92
|
-
|
|
74
|
+
>
|
|
75
|
+
<div className="overflow-hidden">
|
|
76
|
+
{answer?.toString()?.includes('https://www.youtube.com') ? (
|
|
77
|
+
<Text
|
|
78
|
+
as="div"
|
|
79
|
+
className={cn('mt-[8px]')}
|
|
80
|
+
data-ratio="16:9"
|
|
81
|
+
data-content={answer}
|
|
82
|
+
html={answer?.toString()}
|
|
83
|
+
></Text>
|
|
84
|
+
) : (
|
|
85
|
+
<Text
|
|
86
|
+
as="div"
|
|
87
|
+
html={answer?.toString()}
|
|
88
|
+
className={cn(
|
|
89
|
+
'mt-[8px] text-[16px] font-bold leading-[1.5] text-[#3D3D3F] l:text-[14px] [&_a]:text-brand [&_a]:underline'
|
|
90
|
+
)}
|
|
91
|
+
></Text>
|
|
92
|
+
)}
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
93
95
|
</div>
|
|
94
96
|
)
|
|
95
97
|
}
|
|
@@ -72,7 +72,13 @@ export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?:
|
|
|
72
72
|
{copy.balanceLabel}
|
|
73
73
|
</div>
|
|
74
74
|
<div className="flex items-baseline">
|
|
75
|
-
<div
|
|
75
|
+
<div
|
|
76
|
+
className={cn(
|
|
77
|
+
'mr-[8px] text-[36px] font-extrabold text-brand-color-1',
|
|
78
|
+
'min-md:text-[44px]',
|
|
79
|
+
'min-xl:text-[56px]'
|
|
80
|
+
)}
|
|
81
|
+
>
|
|
76
82
|
{creditInfo ? numberFormat(creditInfo.available_credit) : 0}
|
|
77
83
|
</div>
|
|
78
84
|
<div className="text-[16px]">{pageCommon?.pointUnit}</div>
|
|
@@ -132,7 +138,7 @@ export function CreditsInfoCard({ copy, id }: { copy: CreditsInfoCardCopy; id?:
|
|
|
132
138
|
</div>
|
|
133
139
|
<div
|
|
134
140
|
className={cn(
|
|
135
|
-
'grid w-fit md:w-full l:mt-[32px] l:gap-[12px]
|
|
141
|
+
'grid w-fit md:w-full l:mt-[32px] l:gap-[12px] gap-[16px] l:pl-0 l:pl-[48px] md-l:grid-cols-2'
|
|
136
142
|
)}
|
|
137
143
|
>
|
|
138
144
|
{copy.buttons?.map((item, index) => (
|