@anker-in/campaign-ui 0.2.0-beta.6 → 0.2.0-beta.8
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/credits/context/provider.d.ts +2 -2
- 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/creditsBenefits/benefitItem.js +1 -1
- package/dist/cjs/components/credits/creditsBenefits/benefitItem.js.map +3 -3
- package/dist/cjs/components/credits/creditsBenefits/index.js +2 -2
- package/dist/cjs/components/credits/creditsBenefits/index.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.d.ts +0 -2
- 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/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 +2 -2
- package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js +1 -1
- package/dist/cjs/components/credits/creditsRedeemList/CreditsRedeemList.js.map +2 -2
- 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/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 +2 -2
- 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/creditsWaysToGetCredits/useActions.js +1 -1
- package/dist/cjs/components/credits/creditsWaysToGetCredits/useActions.js.map +2 -2
- package/dist/cjs/components/credits/modal/MyRewardsModal.js +1 -1
- package/dist/cjs/components/credits/modal/MyRewardsModal.js.map +2 -2
- package/dist/cjs/components/credits/modal/activitiesModal.js +1 -1
- package/dist/cjs/components/credits/modal/activitiesModal.js.map +2 -2
- 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/credits/type.d.ts +1 -0
- package/dist/cjs/components/credits/type.js +1 -1
- package/dist/cjs/components/credits/type.js.map +1 -1
- package/dist/cjs/components/registration/authCodeActivate/Message.js +1 -1
- package/dist/cjs/components/registration/authCodeActivate/Message.js.map +2 -2
- 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/authCodeActivate/type.d.ts +0 -1
- package/dist/cjs/components/registration/authCodeActivate/type.js.map +1 -1
- package/dist/cjs/components/registration/context/provider.d.ts +2 -0
- package/dist/cjs/components/registration/context/provider.js +1 -1
- package/dist/cjs/components/registration/context/provider.js.map +3 -3
- package/dist/cjs/components/registration/modalContainer.d.ts +1 -2
- package/dist/cjs/components/registration/modalContainer.js +1 -1
- package/dist/cjs/components/registration/modalContainer.js.map +3 -3
- package/dist/cjs/templates/credits.d.ts +2 -1
- package/dist/cjs/templates/credits.js +1 -1
- package/dist/cjs/templates/credits.js.map +2 -2
- package/dist/esm/components/credits/context/provider.d.ts +2 -2
- 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/creditsBenefits/benefitItem.js +1 -1
- package/dist/esm/components/credits/creditsBenefits/benefitItem.js.map +3 -3
- package/dist/esm/components/credits/creditsBenefits/index.js +3 -3
- package/dist/esm/components/credits/creditsBenefits/index.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.d.ts +0 -2
- package/dist/esm/components/credits/creditsInfoCard/index.js +1 -1
- package/dist/esm/components/credits/creditsInfoCard/index.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/CountrySelect.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/StateSelect.js.map +3 -3
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/AddressForm/index.js.map +3 -3
- 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/Success.js +1 -1
- package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Success.js.map +3 -3
- 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/creditsWaysToGetCredits/useActions.js +1 -1
- package/dist/esm/components/credits/creditsWaysToGetCredits/useActions.js.map +2 -2
- package/dist/esm/components/credits/modal/MyRewardsModal.js +1 -1
- package/dist/esm/components/credits/modal/MyRewardsModal.js.map +3 -3
- package/dist/esm/components/credits/modal/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/credits/type.d.ts +1 -0
- package/dist/esm/components/registration/authCodeActivate/Message.js +1 -1
- package/dist/esm/components/registration/authCodeActivate/Message.js.map +2 -2
- 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/authCodeActivate/type.d.ts +0 -1
- package/dist/esm/components/registration/context/provider.d.ts +2 -0
- package/dist/esm/components/registration/context/provider.js +1 -1
- package/dist/esm/components/registration/context/provider.js.map +3 -3
- package/dist/esm/components/registration/modalContainer.d.ts +1 -2
- package/dist/esm/components/registration/modalContainer.js +1 -1
- package/dist/esm/components/registration/modalContainer.js.map +3 -3
- package/dist/esm/templates/credits.d.ts +2 -1
- package/dist/esm/templates/credits.js +1 -1
- package/dist/esm/templates/credits.js.map +2 -2
- package/package.json +3 -3
- package/src/components/credits/context/provider.tsx +1 -4
- package/src/components/credits/creditsBenefits/benefitItem.tsx +2 -5
- package/src/components/credits/creditsBenefits/index.tsx +1 -4
- package/src/components/credits/creditsFaq/index.tsx +2 -3
- package/src/components/credits/creditsInfoCard/index.tsx +6 -8
- package/src/components/credits/creditsRedeemList/AddressForm/CountrySelect.tsx +2 -3
- package/src/components/credits/creditsRedeemList/AddressForm/StateSelect.tsx +2 -3
- package/src/components/credits/creditsRedeemList/AddressForm/index.tsx +2 -3
- package/src/components/credits/creditsRedeemList/CreditsRedeemList.tsx +2 -4
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +2 -3
- package/src/components/credits/creditsRedeemList/RedeemProductModal/Success.tsx +2 -3
- package/src/components/credits/creditsRedeemList/RedeemableItem.tsx +2 -3
- package/src/components/credits/creditsWaysToGetCredits/CreditsWaysToGetCredits.tsx +2 -3
- package/src/components/credits/creditsWaysToGetCredits/useActions.ts +4 -1
- package/src/components/credits/modal/MyRewardsModal.tsx +2 -3
- package/src/components/credits/modal/activitiesModal.tsx +2 -3
- package/src/components/credits/modal/creditsUploadReceiptModal.tsx +2 -3
- package/src/components/credits/modal/modalContainer.tsx +2 -3
- package/src/components/credits/modal/subscribeModal.tsx +2 -3
- package/src/components/credits/modal/tip.tsx +2 -3
- package/src/components/credits/type.ts +1 -0
- package/src/components/registration/authCodeActivate/Message.tsx +1 -1
- package/src/components/registration/authCodeActivate/index.tsx +141 -109
- package/src/components/registration/authCodeActivate/type.ts +0 -1
- package/src/components/registration/context/provider.tsx +9 -0
- package/src/components/registration/modalContainer.tsx +9 -7
- package/src/templates/credits.tsx +17 -3
- package/src/components/credits/const.ts +0 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/registration/modalContainer.tsx"],
|
|
4
|
-
"sourcesContent": ["import { classNames as cn } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n
|
|
5
|
-
"mappings": "
|
|
6
|
-
"names": ["jsx", "jsxs", "cn", "useEffect", "useState", "ReactModal", "
|
|
4
|
+
"sourcesContent": ["import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'\nimport { useEffect, useState, type UIEvent } from 'react'\nimport ReactModal from 'react-modal'\n\nexport type ModalContainerProps = {\n overlayClassName?: string\n className?: string\n scrollClassName?: string\n title?: string\n titleClassName?: string\n useAnimation?: boolean // \u4F7F\u7528\u52A8\u753B\u5C55\u793A\n isOpen: boolean\n children?: any\n onClose: () => void\n onScrollEnd?: (event: UIEvent<HTMLDivElement>) => void\n}\n\nexport const RegistrationModalContainer = ({\n isOpen,\n title,\n className = '',\n overlayClassName = '',\n scrollClassName = '',\n onClose,\n onScrollEnd,\n children,\n useAnimation = true,\n titleClassName = '',\n ...props\n}: ModalContainerProps): React.ReactElement => {\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const [animationShow, setAnimationShow] = useState(false)\n\n useEffect(() => {\n if (!useAnimation) {\n return\n }\n requestAnimationFrame(() => {\n setAnimationShow(isOpen ?? false)\n })\n }, [isOpen, useAnimation])\n\n return (\n <ReactModal\n isOpen={isOpen ?? false}\n overlayClassName={cn(\n 'fixed inset-0 z-[999] flex items-center justify-center bg-black/70 leading-[1.2] md:items-end',\n overlayClassName\n )}\n className={cn(\n 'min-md:max-h-[calc(100vh-96px)] w-[540px] relative flex min-h-[200px] flex-col overflow-hidden bg-white outline-none transition-all duration-300 md:h-auto md:w-full',\n rounded && 'rounded-[16px] md:rounded-b-none',\n useAnimation && 'md:translate-y-[100vh]',\n animationShow && 'md:translate-y-0',\n className\n )}\n onRequestClose={onClose}\n {...props}\n >\n <div\n className={cn(\n 'flex w-full shrink-0 items-center justify-between',\n title ? 'min-l:px-[32px] h-[70px] border-b border-[#e2e2e2] px-[24px]' : 'h-[48px] px-[16px]',\n titleClassName\n )}\n >\n <div className=\"text-[18px] font-bold\">{title}</div>\n <div\n className=\"size-[22px] cursor-pointer\"\n onClick={onClose}\n onKeyDown={e => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault()\n onClose?.()\n }\n }}\n role=\"button\"\n tabIndex={0}\n >\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\">\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M16.8525 5.31015C16.4558 4.91337 15.8125 4.91338 15.4157 5.31015L11.1268 9.5991L6.83815 5.31049C6.44138 4.91372 5.79808 4.91372 5.40131 5.31049C5.00454 5.70726 5.00455 6.35055 5.40131 6.74732L9.68993 11.0359L5.40105 15.3248C5.00428 15.7216 5.00428 16.3649 5.40105 16.7616C5.79782 17.1584 6.44111 17.1584 6.83788 16.7616L11.1268 12.4728L15.416 16.762C15.8128 17.1588 16.456 17.1588 16.8528 16.762C17.2496 16.3652 17.2496 15.7219 16.8528 15.3252L12.5636 11.0359L16.8525 6.74698C17.2493 6.35021 17.2493 5.70692 16.8525 5.31015ZM16.921 6.02856C16.921 6.22992 16.8441 6.43127 16.6905 6.5849L14.465 8.8104L12.2395 11.0359L12.2395 11.0359L16.6905 6.58493C16.8441 6.43129 16.921 6.22993 16.921 6.02856ZM5.34966 6.19087C5.37992 6.3354 5.45115 6.47307 5.56336 6.58528L10.014 11.0359L10.014 11.0359L5.56336 6.58524C5.45116 6.47304 5.37992 6.33539 5.34966 6.19087ZM5.35087 16.2121C5.38193 16.3541 5.45267 16.4891 5.56309 16.5996C5.87037 16.9068 6.36856 16.9068 6.67583 16.5996L11.1268 12.1486L15.578 16.5999C15.8853 16.9072 16.3835 16.9072 16.6908 16.5999C16.8498 16.4409 16.9265 16.2307 16.9209 16.0223C16.9265 16.2307 16.8498 16.4409 16.6908 16.5999C16.3835 16.9072 15.8853 16.9072 15.578 16.5999L11.1268 12.1487L6.67583 16.5996C6.36856 16.9069 5.87037 16.9069 5.56309 16.5996C5.45267 16.4892 5.38192 16.3541 5.35087 16.2121Z\"\n fill=\"#333333\"\n />\n </svg>\n </div>\n </div>\n <div\n className={cn(\n 'my-[32px] flex-1 overflow-auto overscroll-contain px-[24px] md:mb-[48px]',\n !title && 'mt-0',\n 'min-l:px-[32px]',\n scrollClassName\n )}\n onScroll={event => {\n const targetElement = event.target as HTMLDivElement\n\n if (targetElement.scrollHeight <= targetElement.clientHeight) {\n return\n }\n\n if (targetElement.scrollTop + targetElement.clientHeight >= targetElement.scrollHeight - 50) {\n onScrollEnd && onScrollEnd(event)\n }\n }}\n >\n {children}\n </div>\n </ReactModal>\n )\n}\n"],
|
|
5
|
+
"mappings": "AA4DM,OAOE,OAAAA,EAPF,QAAAC,MAAA,oBA5DN,OAAS,cAAcC,EAAI,sBAAAC,EAAoB,kBAAAC,MAAsB,gBACrE,OAAS,aAAAC,EAAW,YAAAC,MAA8B,QAClD,OAAOC,MAAgB,cAehB,MAAMC,EAA6B,CAAC,CACzC,OAAAC,EACA,MAAAC,EACA,UAAAC,EAAY,GACZ,iBAAAC,EAAmB,GACnB,gBAAAC,EAAkB,GAClB,QAAAC,EACA,YAAAC,EACA,SAAAC,EACA,aAAAC,EAAe,GACf,eAAAC,EAAiB,GACjB,GAAGC,CACL,IAA+C,CAC7C,KAAM,CAAE,MAAAC,CAAM,EAAIjB,EAAmB,EAC/BkB,EAAUjB,EAAe,SAASgB,CAAK,EACvC,CAACE,EAAeC,CAAgB,EAAIjB,EAAS,EAAK,EAExD,OAAAD,EAAU,IAAM,CACTY,GAGL,sBAAsB,IAAM,CAC1BM,EAAiBd,GAAU,EAAK,CAClC,CAAC,CACH,EAAG,CAACA,EAAQQ,CAAY,CAAC,EAGvBhB,EAACM,EAAA,CACC,OAAQE,GAAU,GAClB,iBAAkBP,EAChB,gGACAU,CACF,EACA,UAAWV,EACT,uKACAmB,GAAW,mCACXJ,GAAgB,yBAChBK,GAAiB,mBACjBX,CACF,EACA,eAAgBG,EACf,GAAGK,EAEJ,UAAAlB,EAAC,OACC,UAAWC,EACT,oDACAQ,EAAQ,+DAAiE,qBACzEQ,CACF,EAEA,UAAAlB,EAAC,OAAI,UAAU,wBAAyB,SAAAU,EAAM,EAC9CV,EAAC,OACC,UAAU,6BACV,QAASc,EACT,UAAW,GAAK,EACV,EAAE,MAAQ,SAAW,EAAE,MAAQ,OACjC,EAAE,eAAe,EACjBA,IAAU,EAEd,EACA,KAAK,SACL,SAAU,EAEV,SAAAd,EAAC,OAAI,MAAM,6BAA6B,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACtF,SAAAA,EAAC,QACC,SAAS,UACT,SAAS,UACT,EAAE,syCACF,KAAK,UACP,EACF,EACF,GACF,EACAA,EAAC,OACC,UAAWE,EACT,2EACA,CAACQ,GAAS,OACV,kBACAG,CACF,EACA,SAAUW,GAAS,CACjB,MAAMC,EAAgBD,EAAM,OAExBC,EAAc,cAAgBA,EAAc,cAI5CA,EAAc,UAAYA,EAAc,cAAgBA,EAAc,aAAe,IACvFV,GAAeA,EAAYS,CAAK,CAEpC,EAEC,SAAAR,EACH,GACF,CAEJ",
|
|
6
|
+
"names": ["jsx", "jsxs", "cn", "useHeadlessContext", "ROUNDED_BRANDS", "useEffect", "useState", "ReactModal", "RegistrationModalContainer", "isOpen", "title", "className", "overlayClassName", "scrollClassName", "onClose", "onScrollEnd", "children", "useAnimation", "titleClassName", "props", "brand", "rounded", "animationShow", "setAnimationShow", "event", "targetElement"]
|
|
7
7
|
}
|
|
@@ -8,6 +8,7 @@ import { CreditsWaysToGetCreditsCopy } from '../components/credits/creditsWaysTo
|
|
|
8
8
|
import { CreditsRedeemListCopy } from '../components/credits/creditsRedeemList';
|
|
9
9
|
import { CreditsCashCopy } from '../components/credits/creditsCash';
|
|
10
10
|
import { CreditsFaqCopy } from '../components/credits/creditsFaq';
|
|
11
|
+
import { AuthCodeActivateCopy } from 'src/components/registration/authCodeActivate/type';
|
|
11
12
|
export declare enum ComponentKey {
|
|
12
13
|
Banner = "creditsBanner",
|
|
13
14
|
InfoCard = "creditsInfoCard",
|
|
@@ -21,7 +22,7 @@ export type CreditsTemplateProps = {
|
|
|
21
22
|
headlessConfig: HeadlessConfig;
|
|
22
23
|
siteConfig: {
|
|
23
24
|
registrationsSettings: {
|
|
24
|
-
authCodeActivate:
|
|
25
|
+
authCodeActivate: AuthCodeActivateCopy;
|
|
25
26
|
};
|
|
26
27
|
taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>;
|
|
27
28
|
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment as v,jsx as o,jsxs as
|
|
1
|
+
import{Fragment as v,jsx as o,jsxs as u}from"react/jsx-runtime";import{classNames as a,HeadlessProvider as C}from"@anker-in/lib";import{RegistrationProvider as m}from"../components/registration/context/provider";import{CreditsProvider as f}from"../components/credits/context/provider";import{CreditsBanner as y}from"../components/credits/creditsBanner";import{CreditsInfoCard as c}from"../components/credits/creditsInfoCard";import{CreditsBenefits as l}from"../components/credits/creditsBenefits";import{CreditsWaysToGetCredits as g}from"../components/credits/creditsWaysToGetCredits";import{CreditsRedeemList as T}from"../components/credits/creditsRedeemList";import{CreditsCash as P}from"../components/credits/creditsCash";import{CreditsFaq as h}from"../components/credits/creditsFaq";var I=(e=>(e.Banner="creditsBanner",e.InfoCard="creditsInfoCard",e.Benefits="creditsBenefits",e.WaysToGetCredits="creditsWaysToGetCredits",e.RedeemList="creditsRedeemList",e.SpendCreditsLikeCash="creditsCash",e.Faqs="creditsFaq",e))(I||{});const O=({headlessConfig:s,siteConfig:d,userContext:t,pageConfig:r,registrationContext:n,gtm:p})=>o(C,{headlessConfig:s,children:o(m,{copy:d.registrationsSettings,email:t?.profile?.email,children:o(f,{profile:t?.profile,removeProfile:t?.removeProfile,isLoadingProfile:t?.isLoadingProfile,openSignInPopup:n.openSignInPopup,openSignUpPopup:n.openSignUpPopup,creditInfo:t?.creditInfo,taskIdToTypeMapping:d.taskIdToTypeMapping,customer:t?.customer,fetchCreditInfo:t?.fetchCreditInfo,customerLoading:t?.customerLoading,gtm:p,pageCommon:r.common,children:o("div",{className:a("bg-[#f5f5f7] leading-[1.2]"),children:r.order.map(i=>{const e=r.components?.[i];return e?u(v,{children:[i==="creditsBanner"&&o(y,{copy:e}),i==="creditsInfoCard"&&t?.profile&&o(c,{copy:e}),i==="creditsBenefits"&&o(l,{copy:e}),i==="creditsWaysToGetCredits"&&o(g,{copy:e,classNames:s.brand==="anker"?{subtitle:"text-white",equalCreditsText:"bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent"}:{subtitle:"text-[#D1D1D1]",equalCreditsText:"text-[#F6EAD0]"}}),i==="creditsRedeemList"&&o(T,{copy:e}),i==="creditsCash"&&o(P,{copy:e}),i==="creditsFaq"&&o(h,{copy:e}),i!=="creditsBanner"&&o("div",{className:"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16"})]}):null})})})})});export{I as ComponentKey,O as CreditsTemplate};
|
|
2
2
|
//# sourceMappingURL=credits.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/templates/credits.tsx"],
|
|
4
|
-
"sourcesContent": ["import { classNames, HeadlessConfig, HeadlessProvider } from '@anker-in/lib'\nimport { RegistrationProvider } from '../components/registration/context/provider'\n\nimport { DTC_TASK_TYPE } from '../components/credits/context/const'\nimport { CreditsProvider } from '../components/credits/context/provider'\nimport { CreditsPageCommon } from '../components/credits/type'\n\nimport { CreditsBanner, CreditsBannerCopy } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard, CreditsInfoCardCopy } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits, CreditsBenefitsCopy } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits, CreditsWaysToGetCreditsCopy } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsRedeemList, CreditsRedeemListCopy } from '../components/credits/creditsRedeemList'\nimport { CreditsCash, CreditsCashCopy } from '../components/credits/creditsCash'\nimport { CreditsFaq, CreditsFaqCopy } from '../components/credits/creditsFaq'\n\nexport enum ComponentKey {\n Banner = 'creditsBanner',\n InfoCard = 'creditsInfoCard',\n Benefits = 'creditsBenefits',\n WaysToGetCredits = 'creditsWaysToGetCredits',\n RedeemList = 'creditsRedeemList',\n SpendCreditsLikeCash = 'creditsCash',\n Faqs = 'creditsFaq',\n}\nexport type CreditsTemplateProps = {\n headlessConfig: HeadlessConfig\n siteConfig: {\n registrationsSettings: {\n authCodeActivate:
|
|
5
|
-
"mappings": "AA8FgB,mBAAAA,EACkC,OAAAC,EADlC,QAAAC,MAAA,oBA9FhB,OAAS,cAAAC,EAA4B,oBAAAC,MAAwB,gBAC7D,OAAS,wBAAAC,MAA4B,8CAGrC,OAAS,mBAAAC,MAAuB,yCAGhC,OAAS,iBAAAC,MAAwC,sCACjD,OAAS,mBAAAC,MAA4C,wCACrD,OAAS,mBAAAC,MAA4C,wCACrD,OAAS,2BAAAC,MAA4D,gDACrE,OAAS,qBAAAC,MAAgD,0CACzD,OAAS,eAAAC,MAAoC,oCAC7C,OAAS,cAAAC,MAAkC,
|
|
4
|
+
"sourcesContent": ["import { classNames, HeadlessConfig, HeadlessProvider } from '@anker-in/lib'\nimport { RegistrationProvider } from '../components/registration/context/provider'\n\nimport { DTC_TASK_TYPE } from '../components/credits/context/const'\nimport { CreditsProvider } from '../components/credits/context/provider'\nimport { CreditsPageCommon } from '../components/credits/type'\n\nimport { CreditsBanner, CreditsBannerCopy } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard, CreditsInfoCardCopy } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits, CreditsBenefitsCopy } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits, CreditsWaysToGetCreditsCopy } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsRedeemList, CreditsRedeemListCopy } from '../components/credits/creditsRedeemList'\nimport { CreditsCash, CreditsCashCopy } from '../components/credits/creditsCash'\nimport { CreditsFaq, CreditsFaqCopy } from '../components/credits/creditsFaq'\nimport { AuthCodeActivateCopy } from 'src/components/registration/authCodeActivate/type'\n\nexport enum ComponentKey {\n Banner = 'creditsBanner',\n InfoCard = 'creditsInfoCard',\n Benefits = 'creditsBenefits',\n WaysToGetCredits = 'creditsWaysToGetCredits',\n RedeemList = 'creditsRedeemList',\n SpendCreditsLikeCash = 'creditsCash',\n Faqs = 'creditsFaq',\n}\nexport type CreditsTemplateProps = {\n headlessConfig: HeadlessConfig\n siteConfig: {\n registrationsSettings: {\n authCodeActivate: AuthCodeActivateCopy\n }\n taskIdToTypeMapping: Record<string, DTC_TASK_TYPE>\n }\n pageConfig: {\n order: ComponentKey[]\n common: CreditsPageCommon\n components: {\n [ComponentKey.Banner]?: CreditsBannerCopy\n [ComponentKey.InfoCard]?: CreditsInfoCardCopy\n [ComponentKey.Benefits]?: CreditsBenefitsCopy\n [ComponentKey.WaysToGetCredits]?: CreditsWaysToGetCreditsCopy\n [ComponentKey.RedeemList]?: CreditsRedeemListCopy\n [ComponentKey.SpendCreditsLikeCash]?: CreditsCashCopy\n [ComponentKey.Faqs]?: CreditsFaqCopy\n }\n }\n userContext: {\n profile: any\n removeProfile: () => void\n isLoadingProfile: boolean\n creditInfo: any\n customer: any\n customerLoading: boolean\n fetchCreditInfo: () => void\n }\n registrationContext: {\n openSignUpPopup: () => void\n openSignInPopup: () => void\n }\n gtm: {\n pageGroup: string\n }\n}\n\nexport const CreditsTemplate = ({\n headlessConfig,\n siteConfig,\n userContext,\n pageConfig,\n registrationContext,\n gtm,\n}: CreditsTemplateProps) => {\n return (\n <HeadlessProvider headlessConfig={headlessConfig}>\n <RegistrationProvider copy={siteConfig.registrationsSettings} email={userContext?.profile?.email}>\n <CreditsProvider\n profile={userContext?.profile}\n removeProfile={userContext?.removeProfile}\n isLoadingProfile={userContext?.isLoadingProfile}\n openSignInPopup={registrationContext.openSignInPopup}\n openSignUpPopup={registrationContext.openSignUpPopup}\n creditInfo={userContext?.creditInfo}\n taskIdToTypeMapping={siteConfig.taskIdToTypeMapping}\n customer={userContext?.customer}\n fetchCreditInfo={userContext?.fetchCreditInfo}\n customerLoading={userContext?.customerLoading}\n gtm={gtm}\n pageCommon={pageConfig.common}\n >\n <div className={classNames('bg-[#f5f5f7] leading-[1.2]')}>\n {pageConfig.order.map(key => {\n const componentCopy = pageConfig.components?.[key]\n if (!componentCopy) return null\n return (\n <>\n {key === ComponentKey.Banner && <CreditsBanner copy={componentCopy as CreditsBannerCopy} />}\n {key === ComponentKey.InfoCard && userContext?.profile && (\n <CreditsInfoCard copy={componentCopy as CreditsInfoCardCopy} />\n )}\n {key === ComponentKey.Benefits && <CreditsBenefits copy={componentCopy as CreditsBenefitsCopy} />}\n {key === ComponentKey.WaysToGetCredits && (\n <CreditsWaysToGetCredits\n copy={componentCopy as CreditsWaysToGetCreditsCopy}\n classNames={\n headlessConfig.brand === 'anker'\n ? {\n subtitle: 'text-white',\n equalCreditsText:\n 'bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent',\n }\n : {\n subtitle: 'text-[#D1D1D1]',\n equalCreditsText: 'text-[#F6EAD0]',\n }\n }\n />\n )}\n {key === ComponentKey.RedeemList && (\n <CreditsRedeemList copy={componentCopy as CreditsRedeemListCopy} />\n )}\n {key === ComponentKey.SpendCreditsLikeCash && <CreditsCash copy={componentCopy as CreditsCashCopy} />}\n {key === ComponentKey.Faqs && <CreditsFaq copy={componentCopy as CreditsFaqCopy} />}\n {key !== ComponentKey.Banner && (\n <div className=\"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16\" />\n )}\n </>\n )\n })}\n </div>\n </CreditsProvider>\n </RegistrationProvider>\n </HeadlessProvider>\n )\n}\n"],
|
|
5
|
+
"mappings": "AA8FgB,mBAAAA,EACkC,OAAAC,EADlC,QAAAC,MAAA,oBA9FhB,OAAS,cAAAC,EAA4B,oBAAAC,MAAwB,gBAC7D,OAAS,wBAAAC,MAA4B,8CAGrC,OAAS,mBAAAC,MAAuB,yCAGhC,OAAS,iBAAAC,MAAwC,sCACjD,OAAS,mBAAAC,MAA4C,wCACrD,OAAS,mBAAAC,MAA4C,wCACrD,OAAS,2BAAAC,MAA4D,gDACrE,OAAS,qBAAAC,MAAgD,0CACzD,OAAS,eAAAC,MAAoC,oCAC7C,OAAS,cAAAC,MAAkC,mCAGpC,IAAKC,OACVA,EAAA,OAAS,gBACTA,EAAA,SAAW,kBACXA,EAAA,SAAW,kBACXA,EAAA,iBAAmB,0BACnBA,EAAA,WAAa,oBACbA,EAAA,qBAAuB,cACvBA,EAAA,KAAO,aAPGA,OAAA,IAgDL,MAAMC,EAAkB,CAAC,CAC9B,eAAAC,EACA,WAAAC,EACA,YAAAC,EACA,WAAAC,EACA,oBAAAC,EACA,IAAAC,CACF,IAEIpB,EAACG,EAAA,CAAiB,eAAgBY,EAChC,SAAAf,EAACI,EAAA,CAAqB,KAAMY,EAAW,sBAAuB,MAAOC,GAAa,SAAS,MACzF,SAAAjB,EAACK,EAAA,CACC,QAASY,GAAa,QACtB,cAAeA,GAAa,cAC5B,iBAAkBA,GAAa,iBAC/B,gBAAiBE,EAAoB,gBACrC,gBAAiBA,EAAoB,gBACrC,WAAYF,GAAa,WACzB,oBAAqBD,EAAW,oBAChC,SAAUC,GAAa,SACvB,gBAAiBA,GAAa,gBAC9B,gBAAiBA,GAAa,gBAC9B,IAAKG,EACL,WAAYF,EAAW,OAEvB,SAAAlB,EAAC,OAAI,UAAWE,EAAW,4BAA4B,EACpD,SAAAgB,EAAW,MAAM,IAAIG,GAAO,CAC3B,MAAMC,EAAgBJ,EAAW,aAAaG,CAAG,EACjD,OAAKC,EAEHrB,EAAAF,EAAA,CACG,UAAAsB,IAAQ,iBAAuBrB,EAACM,EAAA,CAAc,KAAMgB,EAAoC,EACxFD,IAAQ,mBAAyBJ,GAAa,SAC7CjB,EAACO,EAAA,CAAgB,KAAMe,EAAsC,EAE9DD,IAAQ,mBAAyBrB,EAACQ,EAAA,CAAgB,KAAMc,EAAsC,EAC9FD,IAAQ,2BACPrB,EAACS,EAAA,CACC,KAAMa,EACN,WACEP,EAAe,QAAU,QACrB,CACE,SAAU,aACV,iBACE,4EACJ,EACA,CACE,SAAU,iBACV,iBAAkB,gBACpB,EAER,EAEDM,IAAQ,qBACPrB,EAACU,EAAA,CAAkB,KAAMY,EAAwC,EAElED,IAAQ,eAAqCrB,EAACW,EAAA,CAAY,KAAMW,EAAkC,EAClGD,IAAQ,cAAqBrB,EAACY,EAAA,CAAW,KAAMU,EAAiC,EAChFD,IAAQ,iBACPrB,EAAC,OAAI,UAAU,qEAAqE,GAExF,EAjCyB,IAmC7B,CAAC,EACH,EACF,EACF,EACF",
|
|
6
6
|
"names": ["Fragment", "jsx", "jsxs", "classNames", "HeadlessProvider", "RegistrationProvider", "CreditsProvider", "CreditsBanner", "CreditsInfoCard", "CreditsBenefits", "CreditsWaysToGetCredits", "CreditsRedeemList", "CreditsCash", "CreditsFaq", "ComponentKey", "CreditsTemplate", "headlessConfig", "siteConfig", "userContext", "pageConfig", "registrationContext", "gtm", "key", "componentCopy"]
|
|
7
7
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@anker-in/campaign-ui",
|
|
3
|
-
"version": "0.2.0-beta.
|
|
3
|
+
"version": "0.2.0-beta.8",
|
|
4
4
|
"description": "Campaign UI components and utilities for Anker projects",
|
|
5
5
|
"main": "./dist/cjs/index.js",
|
|
6
6
|
"module": "./dist/esm/index.js",
|
|
@@ -87,8 +87,8 @@
|
|
|
87
87
|
"swiper": "^11.1.3",
|
|
88
88
|
"tailwind-merge": "^2.3.0",
|
|
89
89
|
"tailwindcss": "^3.4.3",
|
|
90
|
-
"@anker-in/
|
|
91
|
-
"@anker-in/
|
|
90
|
+
"@anker-in/headless-ui": "1.0.26",
|
|
91
|
+
"@anker-in/lib": "1.1.0-beta.6"
|
|
92
92
|
},
|
|
93
93
|
"publishConfig": {
|
|
94
94
|
"access": "public",
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import
|
|
1
|
+
import { createContext, PropsWithChildren, useContext } from 'react'
|
|
2
2
|
import type { DTC_TASK_TYPE } from './const'
|
|
3
3
|
import type { CreditInfoResponse } from './response'
|
|
4
|
-
import { AuthCodeActivate, useRegistration } from '../../registration'
|
|
5
4
|
import { CreditsPageCommon } from '../type'
|
|
6
5
|
|
|
7
6
|
type Context = {
|
|
@@ -52,7 +51,6 @@ export function CreditsProvider({
|
|
|
52
51
|
gtm,
|
|
53
52
|
pageCommon,
|
|
54
53
|
}: PropsWithChildren<Context>) {
|
|
55
|
-
const { copy } = useRegistration()
|
|
56
54
|
return (
|
|
57
55
|
<CreditsContext.Provider
|
|
58
56
|
value={{
|
|
@@ -71,7 +69,6 @@ export function CreditsProvider({
|
|
|
71
69
|
}}
|
|
72
70
|
>
|
|
73
71
|
{children}
|
|
74
|
-
{copy?.authCodeActivate && <AuthCodeActivate copy={copy.authCodeActivate} autoSendEmail />}
|
|
75
72
|
</CreditsContext.Provider>
|
|
76
73
|
)
|
|
77
74
|
}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Heading, Picture, Text } from '@anker-in/headless-ui'
|
|
2
|
-
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
2
|
+
import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
3
3
|
import IconInfo from './iconInfo'
|
|
4
|
-
import { roundedBrands } from '../const'
|
|
5
4
|
|
|
6
5
|
export interface BenefitItemCopy {
|
|
7
6
|
icon: {
|
|
@@ -24,9 +23,7 @@ const BenefitItem = ({
|
|
|
24
23
|
index: number
|
|
25
24
|
}) => {
|
|
26
25
|
const { brand } = useHeadlessContext()
|
|
27
|
-
|
|
28
|
-
const rounded = roundedBrands.includes(brand)
|
|
29
|
-
console.log('rounded', rounded)
|
|
26
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
30
27
|
return (
|
|
31
28
|
<div
|
|
32
29
|
className={cn(
|
|
@@ -9,8 +9,7 @@ import { Swiper, SwiperSlide } from 'swiper/react'
|
|
|
9
9
|
|
|
10
10
|
import BenefitItem, { type BenefitItemCopy } from './benefitItem'
|
|
11
11
|
import { useCreditsContext } from '../context/provider'
|
|
12
|
-
import { gaTrack, classNames as cn
|
|
13
|
-
import { roundedBrands } from '../const'
|
|
12
|
+
import { gaTrack, classNames as cn } from '@anker-in/lib'
|
|
14
13
|
|
|
15
14
|
export type CreditsBenefitsCopy = {
|
|
16
15
|
title: string
|
|
@@ -20,8 +19,6 @@ export type CreditsBenefitsCopy = {
|
|
|
20
19
|
export const CreditsBenefits = ({ copy }: { copy: CreditsBenefitsCopy }) => {
|
|
21
20
|
const [activeNoteIndex, setActiveNoteIndex] = useState<number | null>(null)
|
|
22
21
|
const { profile, gtm } = useCreditsContext()
|
|
23
|
-
const { brand } = useHeadlessContext()
|
|
24
|
-
const rounded = roundedBrands.includes(brand)
|
|
25
22
|
const handleClick = ({ item, index }: { item: BenefitItemCopy; index: number }) => {
|
|
26
23
|
gaTrack({
|
|
27
24
|
event: 'ga4Event',
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { Container, Heading, Tabs, TabsList, TabsTrigger, Text } from '@anker-in/headless-ui'
|
|
2
|
-
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
2
|
+
import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
3
3
|
import { useMemo, useState } from 'react'
|
|
4
4
|
|
|
5
5
|
import { FaqItem } from './faqItem/FaqItem'
|
|
6
|
-
import { roundedBrands } from '../const'
|
|
7
6
|
|
|
8
7
|
export type CreditsFaqCopy = {
|
|
9
8
|
title: string
|
|
@@ -21,7 +20,7 @@ export type CreditsFaqCopy = {
|
|
|
21
20
|
export const CreditsFaq = ({ copy }: { copy: CreditsFaqCopy }) => {
|
|
22
21
|
const { title, items: faqList, subTitle = '' } = copy || {}
|
|
23
22
|
const { brand } = useHeadlessContext()
|
|
24
|
-
const rounded =
|
|
23
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
25
24
|
const categoryList = useMemo(() => {
|
|
26
25
|
return Array.from(new Set(faqList?.map?.(faq => faq.category_name).filter(item => !!item)))
|
|
27
26
|
}, [faqList])
|
|
@@ -5,8 +5,7 @@ import { useCreditsContext } from '../context/provider'
|
|
|
5
5
|
import { numberFormat } from '../context/utils'
|
|
6
6
|
import ActivitiesModal from '../modal/activitiesModal'
|
|
7
7
|
import MyRewardsModal from '../modal/MyRewardsModal'
|
|
8
|
-
import { gaNormalClick, classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
9
|
-
import { roundedBrands } from '../const'
|
|
8
|
+
import { gaNormalClick, classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
10
9
|
|
|
11
10
|
type ButtonConfig = {
|
|
12
11
|
text: string
|
|
@@ -17,8 +16,6 @@ export type CreditsInfoCardCopy = {
|
|
|
17
16
|
comingSoonLabel: string
|
|
18
17
|
comingSoonTips: string
|
|
19
18
|
buttons: ButtonConfig[]
|
|
20
|
-
pointUnit: string
|
|
21
|
-
infoIcon: string
|
|
22
19
|
}
|
|
23
20
|
|
|
24
21
|
export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
|
|
@@ -27,7 +24,8 @@ export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
|
|
|
27
24
|
const [hover, setHover] = useState<boolean>(false)
|
|
28
25
|
const { creditInfo, pageCommon } = useCreditsContext()
|
|
29
26
|
const { brand } = useHeadlessContext()
|
|
30
|
-
const rounded =
|
|
27
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
28
|
+
|
|
31
29
|
const handleButtonClick = useCallback((buttonConfig: ButtonConfig) => {
|
|
32
30
|
gaNormalClick({ position: 'info_card', label: buttonConfig.text })
|
|
33
31
|
|
|
@@ -76,7 +74,7 @@ export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
|
|
|
76
74
|
<div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-md:text-[44px]', 'min-xl:text-[56px]')}>
|
|
77
75
|
{creditInfo ? numberFormat(creditInfo.available_credit) : 0}
|
|
78
76
|
</div>
|
|
79
|
-
<div className="text-[16px]">{
|
|
77
|
+
<div className="text-[16px]">{pageCommon?.pointUnit}</div>
|
|
80
78
|
</div>
|
|
81
79
|
</div>
|
|
82
80
|
<div className="w-fit md:flex-1">
|
|
@@ -86,7 +84,7 @@ export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
|
|
|
86
84
|
<div className="group relative ml-[4px] flex cursor-pointer items-start">
|
|
87
85
|
<Text
|
|
88
86
|
as="div"
|
|
89
|
-
html={
|
|
87
|
+
html={pageCommon?.infoIcon}
|
|
90
88
|
className="size-[18px] cursor-pointer [&_svg]:size-full"
|
|
91
89
|
onClick={() => {
|
|
92
90
|
if (hover) {
|
|
@@ -127,7 +125,7 @@ export function CreditsInfoCard({ copy }: { copy: CreditsInfoCardCopy }) {
|
|
|
127
125
|
<div className={cn('mr-[8px] text-[36px] font-extrabold', 'min-l:text-[44px]', 'min-xl:text-[56px]')}>
|
|
128
126
|
{creditInfo ? numberFormat(creditInfo.pending_credit) : 0}
|
|
129
127
|
</div>
|
|
130
|
-
<div className="text-[16px]">{
|
|
128
|
+
<div className="text-[16px]">{pageCommon?.pointUnit}</div>
|
|
131
129
|
</div>
|
|
132
130
|
</div>
|
|
133
131
|
</div>
|
|
@@ -2,8 +2,7 @@ import { Picture } from '@anker-in/headless-ui'
|
|
|
2
2
|
import useClickOutside from '../../context/hooks/useClickOutside'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
import { useEffect, useState } from 'react'
|
|
5
|
-
import {
|
|
6
|
-
import { useHeadlessContext } from '@anker-in/lib'
|
|
5
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
7
6
|
|
|
8
7
|
interface Country {
|
|
9
8
|
id: string
|
|
@@ -23,7 +22,7 @@ export function CountrySelect({ countries, loading, className, value, onChange }
|
|
|
23
22
|
const [show, setShow] = useState(false)
|
|
24
23
|
const [display, setDisplay] = useState<any>('')
|
|
25
24
|
const { brand } = useHeadlessContext()
|
|
26
|
-
const rounded =
|
|
25
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
27
26
|
const dorpdown = useClickOutside<HTMLDivElement>(() => {
|
|
28
27
|
setShow(false)
|
|
29
28
|
})
|
|
@@ -2,8 +2,7 @@ import classNames from 'classnames'
|
|
|
2
2
|
import { Picture } from '@anker-in/headless-ui'
|
|
3
3
|
import { useEffect, useMemo, useState } from 'react'
|
|
4
4
|
import useClickOutside from '../../context/hooks/useClickOutside'
|
|
5
|
-
import { useHeadlessContext } from '@anker-in/lib'
|
|
6
|
-
import { roundedBrands } from '../../const'
|
|
5
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
7
6
|
|
|
8
7
|
interface StateSelectProps {
|
|
9
8
|
states: { code: string; id: string; name: string }[]
|
|
@@ -19,7 +18,7 @@ export function StateSelect({ states, stateName = '', stateCode = '', className
|
|
|
19
18
|
const [show, setShow] = useState(false)
|
|
20
19
|
const [display, setDisplay] = useState<any>('')
|
|
21
20
|
const { brand } = useHeadlessContext()
|
|
22
|
-
const rounded =
|
|
21
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
23
22
|
|
|
24
23
|
const dropdown = useClickOutside<HTMLDivElement>(() => {
|
|
25
24
|
setShow(false)
|
|
@@ -7,14 +7,13 @@ import { Input } from './Input'
|
|
|
7
7
|
import { StateSelect } from './StateSelect'
|
|
8
8
|
import { ALPC_COUNTRY_MAP } from '../../context/const'
|
|
9
9
|
import { useCreditsContext } from '../../context/provider'
|
|
10
|
-
import { useHeadlessContext } from '@anker-in/lib'
|
|
10
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
11
11
|
import { AddressFormProps } from './type'
|
|
12
|
-
import { roundedBrands } from '../../const'
|
|
13
12
|
|
|
14
13
|
export const AddressForm = ({ countries, countriesLoading, form, validate, errors, onChange }: AddressFormProps) => {
|
|
15
14
|
const { profile, customer } = useCreditsContext()
|
|
16
15
|
const { locale, brand } = useHeadlessContext()
|
|
17
|
-
const rounded =
|
|
16
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
18
17
|
const [address, setAddress] = useState<Record<string, any>>()
|
|
19
18
|
|
|
20
19
|
const states = useMemo(() => {
|
|
@@ -7,14 +7,12 @@ 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 } from '@anker-in/lib'
|
|
10
|
+
import { useHeadlessContext, useProductsByHandles, gaTrack, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
11
11
|
import type { RedeemableItem as RedeemableItemType } from '../type'
|
|
12
12
|
import { RedeemableItem } from './RedeemableItem'
|
|
13
13
|
import RulesModal from '../modal/rulesModal'
|
|
14
14
|
import { CreditsRedeemListCopy } from './type'
|
|
15
|
-
import { gaTrack } from '@anker-in/lib'
|
|
16
15
|
import { useRegistration } from '../../../components/registration'
|
|
17
|
-
import { roundedBrands } from '../const'
|
|
18
16
|
|
|
19
17
|
export const CreditsRedeemList = ({ copy }: { copy: CreditsRedeemListCopy }) => {
|
|
20
18
|
const {
|
|
@@ -25,7 +23,7 @@ export const CreditsRedeemList = ({ copy }: { copy: CreditsRedeemListCopy }) =>
|
|
|
25
23
|
} = useCreditsContext()
|
|
26
24
|
const { authCodeActivate } = useRegistration()
|
|
27
25
|
const { brand } = useHeadlessContext()
|
|
28
|
-
const rounded =
|
|
26
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
29
27
|
|
|
30
28
|
const isLogin = Object.keys(profile || {}).length > 0
|
|
31
29
|
|
|
@@ -1,12 +1,11 @@
|
|
|
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 } from '@anker-in/lib'
|
|
4
|
+
import { useHeadlessContext, ROUNDED_BRANDS } 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 { roundedBrands } from '../../const'
|
|
10
9
|
|
|
11
10
|
type AddressProps = {
|
|
12
11
|
copy: CreditsRedeemListCopy
|
|
@@ -36,7 +35,7 @@ export const Address = ({
|
|
|
36
35
|
item,
|
|
37
36
|
}: AddressProps) => {
|
|
38
37
|
const { storeDomain, brand } = useHeadlessContext()
|
|
39
|
-
const rounded =
|
|
38
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
40
39
|
const { countries = [], isLoading: countriesLoading } = useCountries({ shopifyStoreDomain: storeDomain })
|
|
41
40
|
|
|
42
41
|
return (
|
|
@@ -3,8 +3,7 @@ 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 } from '@anker-in/lib'
|
|
7
|
-
import { roundedBrands } from '../../const'
|
|
6
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
8
7
|
|
|
9
8
|
type SuccessProps = {
|
|
10
9
|
copy: CreditsRedeemListCopy
|
|
@@ -18,7 +17,7 @@ type SuccessProps = {
|
|
|
18
17
|
|
|
19
18
|
export const Success = ({ copy, shippingProduct, loading, address, disabled, onClose, item }: SuccessProps) => {
|
|
20
19
|
const { brand } = useHeadlessContext()
|
|
21
|
-
const rounded =
|
|
20
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
22
21
|
return (
|
|
23
22
|
<div className={classNames('max-h-[500px] overflow-y-auto px-[48px] pb-[24px] md:max-h-[400px] md:px-[16px]')}>
|
|
24
23
|
<div className="flex flex-col items-center">
|
|
@@ -8,9 +8,8 @@ import type { RedeemableItem as RedeemableItemType } from '../type'
|
|
|
8
8
|
import { AlpcConsumeType, ConsumeType } from '../context/const'
|
|
9
9
|
import { numberFormat } from '../context/utils'
|
|
10
10
|
import type { CreditsRedeemListCopy } from './type'
|
|
11
|
-
import { gaTrack, useHeadlessContext } from '@anker-in/lib'
|
|
11
|
+
import { gaTrack, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
12
12
|
import { NoneProductValue } from './NonProductValue'
|
|
13
|
-
import { roundedBrands } from '../const'
|
|
14
13
|
|
|
15
14
|
export function RedeemableItem({
|
|
16
15
|
copy,
|
|
@@ -33,7 +32,7 @@ export function RedeemableItem({
|
|
|
33
32
|
} = useCreditsContext()
|
|
34
33
|
const { brand } = useHeadlessContext()
|
|
35
34
|
const isLogin = Object.keys(profile || {}).length > 0
|
|
36
|
-
const rounded =
|
|
35
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
37
36
|
|
|
38
37
|
const isDisabled = useMemo(() => {
|
|
39
38
|
if (item.alpc?.remainingInventory <= 0 && item.alpc?.isLimited) {
|
|
@@ -6,18 +6,17 @@ import { useMemo, useState } from 'react'
|
|
|
6
6
|
import { TaskType, type CreditsWaysToGetCreditsProps } from './type'
|
|
7
7
|
import { useActions } from './useActions'
|
|
8
8
|
import { useCreditsContext } from '../context/provider'
|
|
9
|
-
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
9
|
+
import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
10
10
|
import { useRegistration } from '../../registration'
|
|
11
11
|
import { CreditsUploadReceiptModal } from '../modal/creditsUploadReceiptModal'
|
|
12
12
|
import { CreditsSubscribeModal } from '../modal/subscribeModal'
|
|
13
|
-
import { roundedBrands } from '../const'
|
|
14
13
|
|
|
15
14
|
export const CreditsWaysToGetCredits = ({ copy, classNames }: CreditsWaysToGetCreditsProps) => {
|
|
16
15
|
const [showMore, setShowMore] = useState(false)
|
|
17
16
|
const { profile } = useCreditsContext()
|
|
18
17
|
const { authCodeActivate } = useRegistration()
|
|
19
18
|
const { brand } = useHeadlessContext()
|
|
20
|
-
const rounded =
|
|
19
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
21
20
|
const isLogin = !!profile
|
|
22
21
|
|
|
23
22
|
const [isUploadReceiptModalOpen, setIsUploadReceiptModalOpen] = useState(false)
|
|
@@ -77,7 +77,10 @@ export const useActions = ({
|
|
|
77
77
|
handleClick: () =>
|
|
78
78
|
handleClickWithTrack({
|
|
79
79
|
buttonName: copy?.activate,
|
|
80
|
-
callback: () =>
|
|
80
|
+
callback: () => {
|
|
81
|
+
authCodeActivate.setAutoSendEmail(true)
|
|
82
|
+
authCodeActivate.open()
|
|
83
|
+
},
|
|
81
84
|
id: TaskType.Activate,
|
|
82
85
|
}),
|
|
83
86
|
},
|
|
@@ -9,8 +9,7 @@ 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 } from '@anker-in/lib'
|
|
13
|
-
import { roundedBrands } from '../const'
|
|
12
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
14
13
|
|
|
15
14
|
export interface MyRewardsMetafields {
|
|
16
15
|
title: string
|
|
@@ -45,7 +44,7 @@ interface MyRewardsModalProps extends ModalContainerProps {
|
|
|
45
44
|
function MyRewardsModal({ data, ...props }: MyRewardsModalProps) {
|
|
46
45
|
const [activeTab, setActiveTab] = useState(AlpcConsumeType.Coupon)
|
|
47
46
|
const { brand } = useHeadlessContext()
|
|
48
|
-
const rounded =
|
|
47
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
49
48
|
|
|
50
49
|
const [couponPage, setCouponPage] = useState(1)
|
|
51
50
|
const [productPage, setProductPage] = useState(1)
|
|
@@ -4,12 +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 } from '@anker-in/lib'
|
|
7
|
+
import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } 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
11
|
import dayjs from 'dayjs'
|
|
12
|
-
import { roundedBrands } from '../const'
|
|
13
12
|
|
|
14
13
|
export interface MyActivitiesMetafields {
|
|
15
14
|
title: string
|
|
@@ -46,7 +45,7 @@ function ActivitiesModal({ data, ...props }: ActivitiesModalProps) {
|
|
|
46
45
|
const [page, setPage] = useState(1)
|
|
47
46
|
const { taskIdToTypeMapping } = useCreditsContext()
|
|
48
47
|
const { brand } = useHeadlessContext()
|
|
49
|
-
const rounded =
|
|
48
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
50
49
|
|
|
51
50
|
const myActivitiesOptions = useMemo(() => {
|
|
52
51
|
return {
|
|
@@ -2,8 +2,7 @@ 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 } from '@anker-in/lib'
|
|
6
|
-
import { roundedBrands } from '../const'
|
|
5
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
7
6
|
import classNames from 'classnames'
|
|
8
7
|
|
|
9
8
|
export type ReceiptCopy = {
|
|
@@ -47,7 +46,7 @@ export function CreditsUploadReceiptModal({
|
|
|
47
46
|
})
|
|
48
47
|
|
|
49
48
|
const { brand } = useHeadlessContext()
|
|
50
|
-
const rounded =
|
|
49
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
51
50
|
|
|
52
51
|
const handleSubmit = useCallback(() => {
|
|
53
52
|
trigger(
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import { classNames as cn, useHeadlessContext } from '@anker-in/lib'
|
|
1
|
+
import { classNames as cn, useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
2
2
|
import { useEffect, useState, type UIEvent } from 'react'
|
|
3
3
|
import ReactModal from 'react-modal'
|
|
4
|
-
import { roundedBrands } from '../const'
|
|
5
4
|
|
|
6
5
|
export type ModalContainerProps = {
|
|
7
6
|
overlayClassName?: string
|
|
@@ -43,7 +42,7 @@ export const CreditsModalContainer = ({
|
|
|
43
42
|
}, [isOpen, useAnimation])
|
|
44
43
|
|
|
45
44
|
const { brand } = useHeadlessContext()
|
|
46
|
-
const rounded =
|
|
45
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
47
46
|
|
|
48
47
|
return (
|
|
49
48
|
<ReactModal
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from 'react'
|
|
2
2
|
import { useRouter } from 'next/router'
|
|
3
3
|
import { Button, Picture, Text } from '@anker-in/headless-ui'
|
|
4
|
-
import { classNames, fetcher, gaTrack, useHeadlessContext } from '@anker-in/lib'
|
|
4
|
+
import { classNames, fetcher, gaTrack, useHeadlessContext, ROUNDED_BRANDS } 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
9
|
import { emailValidate } from '../context/utils'
|
|
10
10
|
import { CreditsModalContainer, type ModalContainerProps } from './modalContainer'
|
|
11
|
-
import { roundedBrands } from '../const'
|
|
12
11
|
|
|
13
12
|
export type CreditsSubscribeModalCopy = {
|
|
14
13
|
title: string
|
|
@@ -44,7 +43,7 @@ const getAdCookie = () => {
|
|
|
44
43
|
|
|
45
44
|
export function CreditsSubscribeModal({ copy, onSuccess, ...props }: CreditsSubscribeModalProps) {
|
|
46
45
|
const { brand } = useHeadlessContext()
|
|
47
|
-
const rounded =
|
|
46
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
48
47
|
const { locale } = useRouter()
|
|
49
48
|
const [policy, setPolicy] = useState(false)
|
|
50
49
|
const [email, setEmail] = useState('')
|
|
@@ -1,13 +1,12 @@
|
|
|
1
|
-
import { useHeadlessContext } from '@anker-in/lib'
|
|
1
|
+
import { useHeadlessContext, ROUNDED_BRANDS } from '@anker-in/lib'
|
|
2
2
|
import classNames from 'classnames'
|
|
3
3
|
import { useState } from 'react'
|
|
4
|
-
import { roundedBrands } from '../const'
|
|
5
4
|
|
|
6
5
|
function Tip({ info, index }: { info: string; index: number }) {
|
|
7
6
|
const [show, setShow] = useState(false)
|
|
8
7
|
|
|
9
8
|
const { brand } = useHeadlessContext()
|
|
10
|
-
const rounded =
|
|
9
|
+
const rounded = ROUNDED_BRANDS.includes(brand)
|
|
11
10
|
|
|
12
11
|
return (
|
|
13
12
|
<div
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export const Message = ({ status, message }: { status: string; message: string }) => {
|
|
2
2
|
return (
|
|
3
3
|
status && (
|
|
4
|
-
<div className="absolute left-5 right-5 top-
|
|
4
|
+
<div className="absolute left-5 right-5 top-2 flex items-center gap-2 rounded-sm bg-white px-4 py-3 shadow-lg min-md:left-12 min-md:right-12">
|
|
5
5
|
<div className="flex-shrink-0">
|
|
6
6
|
{status === 'success' && (
|
|
7
7
|
<span className="inline-block h-5 w-5">
|