@anker-in/campaign-ui 0.5.0-beta.22 → 0.5.0-beta.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js +1 -1
  2. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +2 -2
  3. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +1 -1
  4. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +2 -2
  5. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +1 -1
  6. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +2 -2
  7. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js +1 -1
  8. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js.map +3 -3
  9. package/dist/cjs/components/memberPopup/type.d.ts +0 -1
  10. package/dist/cjs/components/memberPopup/type.js +1 -1
  11. package/dist/cjs/components/memberPopup/type.js.map +1 -1
  12. package/dist/cjs/templates/Credits.js +1 -1
  13. package/dist/cjs/templates/Credits.js.map +3 -3
  14. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js +1 -1
  15. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +2 -2
  16. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +1 -1
  17. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +2 -2
  18. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js +1 -1
  19. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.js.map +2 -2
  20. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js +1 -1
  21. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js.map +3 -3
  22. package/dist/esm/components/memberPopup/type.d.ts +0 -1
  23. package/dist/esm/components/memberPopup/type.js.map +1 -1
  24. package/dist/esm/templates/Credits.js +1 -1
  25. package/dist/esm/templates/Credits.js.map +3 -3
  26. package/package.json +1 -1
  27. package/src/components/memberPopup/panels/EarnCredits/ActivatePanel.tsx +2 -2
  28. package/src/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.tsx +1 -1
  29. package/src/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.tsx +1 -1
  30. package/src/components/memberPopup/panels/EarnCredits/index.tsx +7 -4
  31. package/src/components/memberPopup/type.ts +0 -1
  32. package/src/templates/Credits.tsx +6 -21
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/templates/Credits.tsx"],
4
- "sourcesContent": ["import { classNames, HeadlessProvider } from '@anker-in/lib'\nimport { useEffect, useRef } from 'react'\nimport { RegistrationProvider } from '../components/registration/context/provider'\nimport { CreditsProvider, useCreditsContext } from '../components/credits/context/provider'\nimport { CreditsBanner } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsAnkersolixTask } from '../components/credits/creditsAnkersolixTask'\nimport { CreditsRedeemList } from '../components/credits/creditsRedeemList'\nimport { CreditsGoGift } from '../components/credits/creditsGoGift'\nimport { CreditsCash } from '../components/credits/creditsCash'\nimport { CreditsMemberPrice } from '../components/credits/creditsMemberPrice'\nimport { CreditsFaq } from '../components/credits/creditsFaq'\nimport { CreditsNavigation } from '../components/credits/creditsNavigation'\nimport ActivitiesModal from '../components/credits/modal/ActivitiesModal'\nimport RewardsModal from '../components/credits/modal/RewardsModal'\nimport { ComponentKey } from './Credits.types'\nimport type {\n CreditsTemplateProps,\n CreditsContentProps,\n CreditsBannerCopy,\n CreditsInfoCardCopy,\n CreditsBenefitsCopy,\n CreditsWaysToGetCreditsCopy,\n CreditsAnkersolixTaskCopy,\n CreditsRedeemListCopy,\n CreditsGoGiftCopy,\n CreditsCashCopy,\n CreditsMemberPriceCopy,\n CreditsFaqCopy,\n} from './Credits.types'\n\nconst CreditsContent = ({ headlessConfig, pageConfig, userContext }: CreditsContentProps) => {\n const { openMyRewardsModal, setOpenMyRewardsModal, openActivitiesModal, setOpenActivitiesModal, pageCommon } = useCreditsContext()\n const hasScrolled = useRef(false)\n\n useEffect(() => {\n if (hasScrolled.current || typeof window === 'undefined') return\n\n const params = new URLSearchParams(window.location.search)\n const section = params.get('section')\n if (!section) return\n\n const navHeight = 56\n\n const doScroll = (el: HTMLElement) => {\n // \u7528\u4E24\u5E27 rAF \u786E\u4FDD\u6D4F\u89C8\u5668\u5B8C\u6210 layout\uFF0C\u518D\u53D6\u6700\u7EC8\u4F4D\u7F6E\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n const top = el.getBoundingClientRect().top + window.pageYOffset - navHeight\n // instant \u4E0D\u4F1A\u88AB\u540E\u7EED\u5E03\u5C40\u53D8\u5316\u6253\u65AD\n window.scrollTo({ top, behavior: 'instant' as ScrollBehavior })\n hasScrolled.current = true\n })\n })\n }\n\n const tryScroll = (attempts = 0) => {\n const el = document.getElementById(section)\n if (el) {\n doScroll(el)\n } else if (attempts < 15) {\n setTimeout(() => tryScroll(attempts + 1), 200)\n }\n }\n\n // \u7B49\u9875\u9762\u8D44\u6E90\u52A0\u8F7D\u5B8C\u540E\u518D\u6EDA\u52A8\uFF0C\u907F\u514D\u88AB\u56FE\u7247/\u7EC4\u4EF6\u6E32\u67D3\u6491\u9AD8\u540E\u4F4D\u7F6E\u504F\u79FB\n if (document.readyState === 'complete') {\n tryScroll()\n } else {\n window.addEventListener('load', () => tryScroll(), { once: true })\n }\n }, [])\n\n return (\n <>\n {/* \u5BFC\u822A\u7EC4\u4EF6 - \u56FA\u5B9A\u4F4D\u7F6E\uFF0C\u4E0D\u53C2\u4E0E order \u6392\u5E8F */}\n {pageConfig.components[ComponentKey.Navigation] && (\n <CreditsNavigation copy={pageConfig.components[ComponentKey.Navigation]} />\n )}\n <div className={classNames('bg-[#f5f5f7] leading-[1.2]')}>\n {pageConfig.order.map(key => {\n // \u8DF3\u8FC7\u5BFC\u822A\u7EC4\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u7ECF\u56FA\u5B9A\u6E32\u67D3\u5728\u4E0A\u65B9\n if (key === ComponentKey.Navigation) return null\n const componentCopy = pageConfig.components?.[key]\n if (!componentCopy) return null\n return (\n <>\n {key === ComponentKey.Banner && <CreditsBanner copy={componentCopy as CreditsBannerCopy} id={key} />}\n {key === ComponentKey.InfoCard && userContext?.profile && (\n <CreditsInfoCard copy={componentCopy as CreditsInfoCardCopy} id={key} />\n )}\n {key === ComponentKey.Benefits && (\n <CreditsBenefits copy={componentCopy as CreditsBenefitsCopy} id={key} />\n )}\n {key === ComponentKey.WaysToGetCredits && (\n <CreditsWaysToGetCredits\n copy={componentCopy as CreditsWaysToGetCreditsCopy}\n id={key}\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.AnkersolixTask && (\n <CreditsAnkersolixTask copy={componentCopy as CreditsAnkersolixTaskCopy} id={key} />\n )}\n {key === ComponentKey.RedeemList && (\n <CreditsRedeemList copy={componentCopy as CreditsRedeemListCopy} id={key} />\n )}\n {key === ComponentKey.GoGift && <CreditsGoGift copy={componentCopy as CreditsGoGiftCopy} id={key} />}\n {key === ComponentKey.SpendCreditsLikeCash && (\n <CreditsCash copy={componentCopy as CreditsCashCopy} id={key} />\n )}\n {key === ComponentKey.MemberPrice && (\n <CreditsMemberPrice copy={componentCopy as CreditsMemberPriceCopy} id={key} />\n )}\n {key === ComponentKey.Faqs && <CreditsFaq copy={componentCopy as CreditsFaqCopy} id={key} />}\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\n {/* Global Modals */}\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivitiesModal}\n data={pageCommon.activitiesModal}\n onClose={() => setOpenActivitiesModal(false)}\n />\n )}\n {pageCommon?.rewardsModal && (\n <RewardsModal\n isOpen={openMyRewardsModal}\n data={pageCommon.rewardsModal}\n onClose={() => setOpenMyRewardsModal(false)}\n />\n )}\n </>\n )\n}\n\nexport const CreditsTemplate = ({\n headlessConfig,\n siteConfig,\n creditsConfig,\n userContext,\n pageConfig,\n registrationContext,\n gtm,\n cartConfig,\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 memberPriceDiscount={siteConfig.memberPriceDiscount}\n alpcBrand={creditsConfig?.alpcBrand}\n cartConfig={cartConfig}\n apiBaseUrl={userContext?.apiBaseUrl}\n >\n <CreditsContent headlessConfig={headlessConfig} pageConfig={pageConfig} userContext={userContext} />\n </CreditsProvider>\n </RegistrationProvider>\n </HeadlessProvider>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["Credits_exports", "__export", "CreditsTemplate", "__toCommonJS", "import_jsx_runtime", "import_lib", "import_react", "import_provider", "import_creditsBanner", "import_creditsInfoCard", "import_creditsBenefits", "import_creditsWaysToGetCredits", "import_creditsAnkersolixTask", "import_creditsRedeemList", "import_creditsGoGift", "import_creditsCash", "import_creditsMemberPrice", "import_creditsFaq", "import_creditsNavigation", "import_ActivitiesModal", "import_RewardsModal", "import_Credits", "CreditsContent", "headlessConfig", "pageConfig", "userContext", "openMyRewardsModal", "setOpenMyRewardsModal", "openActivitiesModal", "setOpenActivitiesModal", "pageCommon", "hasScrolled", "section", "navHeight", "doScroll", "el", "top", "tryScroll", "attempts", "key", "componentCopy", "ActivitiesModal", "RewardsModal", "siteConfig", "creditsConfig", "registrationContext", "gtm", "cartConfig"]
4
+ "sourcesContent": ["import { classNames, HeadlessProvider } from '@anker-in/lib'\nimport { useEffect, useRef } from 'react'\nimport { RegistrationProvider } from '../components/registration/context/provider'\nimport { CreditsProvider, useCreditsContext } from '../components/credits/context/provider'\nimport { CreditsBanner } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsAnkersolixTask } from '../components/credits/creditsAnkersolixTask'\nimport { CreditsRedeemList } from '../components/credits/creditsRedeemList'\nimport { CreditsGoGift } from '../components/credits/creditsGoGift'\nimport { CreditsCash } from '../components/credits/creditsCash'\nimport { CreditsMemberPrice } from '../components/credits/creditsMemberPrice'\nimport { CreditsFaq } from '../components/credits/creditsFaq'\nimport { CreditsNavigation } from '../components/credits/creditsNavigation'\nimport ActivitiesModal from '../components/credits/modal/ActivitiesModal'\nimport RewardsModal from '../components/credits/modal/RewardsModal'\nimport { ComponentKey } from './Credits.types'\nimport type {\n CreditsTemplateProps,\n CreditsContentProps,\n CreditsBannerCopy,\n CreditsInfoCardCopy,\n CreditsBenefitsCopy,\n CreditsWaysToGetCreditsCopy,\n CreditsAnkersolixTaskCopy,\n CreditsRedeemListCopy,\n CreditsGoGiftCopy,\n CreditsCashCopy,\n CreditsMemberPriceCopy,\n CreditsFaqCopy,\n} from './Credits.types'\n\nconst CreditsContent = ({ headlessConfig, pageConfig, userContext }: CreditsContentProps) => {\n const { openMyRewardsModal, setOpenMyRewardsModal, openActivitiesModal, setOpenActivitiesModal, pageCommon } = useCreditsContext()\n const hasScrolled = useRef(false)\n\n useEffect(() => {\n if (hasScrolled.current || typeof window === 'undefined') return\n\n const params = new URLSearchParams(window.location.search)\n const section = params.get('section')\n if (!section) return\n\n const navHeight = 56\n\n const tryScroll = (attempts = 0) => {\n const el = document.getElementById(section)\n if (el) {\n hasScrolled.current = true\n const top = el.getBoundingClientRect().top + window.pageYOffset - navHeight\n window.scrollTo({ top, behavior: 'smooth' })\n } else if (attempts < 10) {\n setTimeout(() => tryScroll(attempts + 1), 300)\n }\n }\n\n tryScroll()\n }, [])\n\n return (\n <>\n {/* \u5BFC\u822A\u7EC4\u4EF6 - \u56FA\u5B9A\u4F4D\u7F6E\uFF0C\u4E0D\u53C2\u4E0E order \u6392\u5E8F */}\n {pageConfig.components[ComponentKey.Navigation] && (\n <CreditsNavigation copy={pageConfig.components[ComponentKey.Navigation]} />\n )}\n <div className={classNames('bg-[#f5f5f7] leading-[1.2]')}>\n {pageConfig.order.map(key => {\n // \u8DF3\u8FC7\u5BFC\u822A\u7EC4\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u7ECF\u56FA\u5B9A\u6E32\u67D3\u5728\u4E0A\u65B9\n if (key === ComponentKey.Navigation) return null\n const componentCopy = pageConfig.components?.[key]\n if (!componentCopy) return null\n return (\n <>\n {key === ComponentKey.Banner && <CreditsBanner copy={componentCopy as CreditsBannerCopy} id={key} />}\n {key === ComponentKey.InfoCard && userContext?.profile && (\n <CreditsInfoCard copy={componentCopy as CreditsInfoCardCopy} id={key} />\n )}\n {key === ComponentKey.Benefits && (\n <CreditsBenefits copy={componentCopy as CreditsBenefitsCopy} id={key} />\n )}\n {key === ComponentKey.WaysToGetCredits && (\n <CreditsWaysToGetCredits\n copy={componentCopy as CreditsWaysToGetCreditsCopy}\n id={key}\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.AnkersolixTask && (\n <CreditsAnkersolixTask copy={componentCopy as CreditsAnkersolixTaskCopy} id={key} />\n )}\n {key === ComponentKey.RedeemList && (\n <CreditsRedeemList copy={componentCopy as CreditsRedeemListCopy} id={key} />\n )}\n {key === ComponentKey.GoGift && <CreditsGoGift copy={componentCopy as CreditsGoGiftCopy} id={key} />}\n {key === ComponentKey.SpendCreditsLikeCash && (\n <CreditsCash copy={componentCopy as CreditsCashCopy} id={key} />\n )}\n {key === ComponentKey.MemberPrice && (\n <CreditsMemberPrice copy={componentCopy as CreditsMemberPriceCopy} id={key} />\n )}\n {key === ComponentKey.Faqs && <CreditsFaq copy={componentCopy as CreditsFaqCopy} id={key} />}\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\n {/* Global Modals */}\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivitiesModal}\n data={pageCommon.activitiesModal}\n onClose={() => setOpenActivitiesModal(false)}\n />\n )}\n {pageCommon?.rewardsModal && (\n <RewardsModal\n isOpen={openMyRewardsModal}\n data={pageCommon.rewardsModal}\n onClose={() => setOpenMyRewardsModal(false)}\n />\n )}\n </>\n )\n}\n\nexport const CreditsTemplate = ({\n headlessConfig,\n siteConfig,\n creditsConfig,\n userContext,\n pageConfig,\n registrationContext,\n gtm,\n cartConfig,\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 memberPriceDiscount={siteConfig.memberPriceDiscount}\n alpcBrand={creditsConfig?.alpcBrand}\n cartConfig={cartConfig}\n apiBaseUrl={userContext?.apiBaseUrl}\n >\n <CreditsContent headlessConfig={headlessConfig} pageConfig={pageConfig} userContext={userContext} />\n </CreditsProvider>\n </RegistrationProvider>\n </HeadlessProvider>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Credits_exports", "__export", "CreditsTemplate", "__toCommonJS", "import_jsx_runtime", "import_lib", "import_react", "import_provider", "import_creditsBanner", "import_creditsInfoCard", "import_creditsBenefits", "import_creditsWaysToGetCredits", "import_creditsAnkersolixTask", "import_creditsRedeemList", "import_creditsGoGift", "import_creditsCash", "import_creditsMemberPrice", "import_creditsFaq", "import_creditsNavigation", "import_ActivitiesModal", "import_RewardsModal", "import_Credits", "CreditsContent", "headlessConfig", "pageConfig", "userContext", "openMyRewardsModal", "setOpenMyRewardsModal", "openActivitiesModal", "setOpenActivitiesModal", "pageCommon", "hasScrolled", "section", "navHeight", "tryScroll", "attempts", "el", "top", "key", "componentCopy", "ActivitiesModal", "RewardsModal", "siteConfig", "creditsConfig", "registrationContext", "gtm", "cartConfig"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as n,jsxs as _}from"react/jsx-runtime";import{useState as p,useCallback as R,useRef as U,useEffect as H}from"react";import{Button as q,Text as r}from"@anker-in/headless-ui";import{useSendEmailValidation as G,gaTrack as S,classNames as L,useHeadlessContext as J,useEmailValidation as Q,useCountDown as X}from"@anker-in/lib";import{Message as Y}from"../../../registration/authCodeActivate/Message";import{useRegistration as Z}from"../../../registration";import{useMemberPopupContext as ee}from"../../context/provider";import{ROUNDED_BRANDS as te}from"../../../../constants";function ae({copy:e,onClose:x}){const{setIsActivateSuccess:h,fetchCreditInfo:v,profile:f}=ee(),{locale:P,brand:V}=J(),{email:i}=Z(),y=te.includes(V),{isMutating:B,trigger:C,data:E}=G(),{isMutating:F,trigger:k}=Q(),[$,l]=p(""),[j,c]=p(""),{startCountDown:A,startAction:D,countDown:z}=X(60),[I,u]=p(""),[w,m]=p(0),[o,N]=p(new Array(6).fill("")),T=U([]),b=o.join("");H(()=>{T.current[w]&&T.current[w].focus()},[w]),H(()=>{i&&C({email:i,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{c("success"),l(e?.sendEmailSuccessMessage||""),D(),setTimeout(()=>{c(""),l("")},5e3)}})},[i]);const W=R(async()=>{i&&(await C({email:i,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{c("success"),l(e?.sendEmailSuccessMessage||""),D(),setTimeout(()=>{c(""),l("")},5e3)}}),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"sent_again"}}))},[i,C]),K=(d,a)=>{const{value:t}=d.target;if(u(""),Number.isNaN(Number(t)))return;if(t.length>1){a<o.length-1&&(o[a+1]||(m(a+1),N(g=>{const M=[...g];return M[a]=t[0],t.length>1&&(M[a+1]=t[1]),M})));return}const s=[...o];s[a]=t,N(s),t?a<o.length-1&&!o[a+1]&&m(a+1):a>0&&m(a-1)},O=R(async()=>{if(!b?.length){u(e?.codeEmptyError||"");return}if(b.length<6){u(e?.incorrectCodeError||"");return}const d=E?.data?.data?.active_token??E?.data?.active_token;d&&await k({token:d,code:b},{onSuccess:t=>{if(t.status>=200&&t.status<300)c("success"),l(e?.authSuccessMessage||""),h(!0),f?.user_id&&v(f.user_id),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active",info:"Member Floating Window"}}),setTimeout(()=>{x()},3e3);else{const s=t?.data?.error_code??t?.error_code;s==="104"?(h(!0),f?.user_id&&v(f.user_id),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active",info:"Member Floating Window"}}),setTimeout(()=>{x()},3e3)):u(s==="142"?e?.incorrectCodeError||"Invalid verification code.":s==="154"?e?.expiredCodeMessage||"":e?.sendEmailErrorMessage||"")}}});let a=setTimeout(()=>{c(""),l(""),clearTimeout(a)},5e3)},[b,e?.codeEmptyError,e?.authSuccessMessage,e?.incorrectCodeError,e?.expiredCodeMessage,e?.sendEmailErrorMessage,P,E,k,x,h,v,f]);return _("div",{className:"relative",children:[_("div",{children:[n(r,{className:"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]",html:e?.authCodeTitle}),n(r,{as:"p",className:"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]",html:e?.authCodeDesc?.replace("%email%",i||"")})]}),_("div",{className:"mt-6",children:[n(r,{className:"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6",html:e?.enterActiveCodeText}),n("div",{className:"my-3 grid grid-cols-6 gap-2",children:o.map((d,a)=>n("div",{className:"col-span-1 aspect-1 text-[#555]",children:n("input",{ref:t=>{t&&(T.current[a]=t)},type:"tel",className:L("flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none",y&&"rounded-[12px]"),value:d,autoComplete:"false",autoCorrect:"false",spellCheck:"false",autoCapitalize:"false",onChange:t=>K(t,a),onFocus:()=>{m(a)},onPaste:t=>{const s=t.clipboardData.getData("text");if(!Number.isNaN(Number(s))){const g=s.split("").slice(0,6);N(g.concat(Array(6-g.length).fill(""))),g.length<=o.length&&m(g.length-1)}},onKeyDown:t=>{const{value:s}=t.target;t.key==="Backspace"&&!s&&a>0&&m(a-1)}},a)},a))}),I&&n(r,{className:"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]",html:I}),e?.authCodeContent&&n("ul",{className:'flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-["\u2022"]',dangerouslySetInnerHTML:{__html:e?.authCodeContent}})]}),_("div",{className:"mt-4 min-l:mt-6",children:[n(r,{className:"text-base font-semibold leading-[100%] text-[#333]",html:e?.authCodeReceiveText})," ",A?n(r,{html:e?.retrieveText?.replace("%countdownTime%",z.toString()),className:"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline"}):n(r,{onClick:W,className:L("cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline",{"pointer-events-none":A||B}),html:e?.sendAgainText}),n(q,{type:"submit",loading:F,className:"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8",onClick:O,children:e.buttonText})]}),n(Y,{status:j,message:$})]})}export{ae as default};
1
+ import{jsx as n,jsxs as _}from"react/jsx-runtime";import{useState as p,useCallback as R,useRef as U,useEffect as H}from"react";import{Button as q,Text as r}from"@anker-in/headless-ui";import{useSendEmailValidation as G,gaTrack as S,classNames as L,useHeadlessContext as J,useEmailValidation as Q,useCountDown as X}from"@anker-in/lib";import{Message as Y}from"../../../registration/authCodeActivate/Message";import{useRegistration as Z}from"../../../registration";import{useMemberPopupContext as ee}from"../../context/provider";import{ROUNDED_BRANDS as te}from"../../../../constants";function ae({copy:e,onClose:x}){const{setIsActivateSuccess:h,fetchCreditInfo:v,profile:f}=ee(),{locale:P,brand:V}=J(),{email:i}=Z(),y=te.includes(V),{isMutating:B,trigger:C,data:E}=G(),{isMutating:F,trigger:k}=Q(),[$,l]=p(""),[j,c]=p(""),{startCountDown:A,startAction:D,countDown:z}=X(60),[I,u]=p(""),[w,m]=p(0),[o,N]=p(new Array(6).fill("")),T=U([]),b=o.join("");H(()=>{T.current[w]&&T.current[w].focus()},[w]),H(()=>{i&&C({email:i,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{c("success"),l(e?.sendEmailSuccessMessage||""),D(),setTimeout(()=>{c(""),l("")},5e3)}})},[i]);const W=R(async()=>{i&&(await C({email:i,data:{redirect_url:`${window?.location?.origin}${window?.location?.pathname}`}},{onSuccess:()=>{c("success"),l(e?.sendEmailSuccessMessage||""),D(),setTimeout(()=>{c(""),l("")},5e3)}}),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"sent_again"}}))},[i,C]),K=(d,a)=>{const{value:t}=d.target;if(u(""),Number.isNaN(Number(t)))return;if(t.length>1){a<o.length-1&&(o[a+1]||(m(a+1),N(g=>{const M=[...g];return M[a]=t[0],t.length>1&&(M[a+1]=t[1]),M})));return}const s=[...o];s[a]=t,N(s),t?a<o.length-1&&!o[a+1]&&m(a+1):a>0&&m(a-1)},O=R(async()=>{if(!b?.length){u(e?.codeEmptyError||"");return}if(b.length<6){u(e?.incorrectCodeError||"");return}const d=E?.data?.data?.active_token??E?.data?.active_token;d&&await k({token:d,code:b},{onSuccess:t=>{if(t.status>=200&&t.status<300)c("success"),l(e?.authSuccessMessage||""),h(!0),f?.user_id&&setTimeout(()=>v(f.user_id),3e3),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active",info:"Member Floating Window"}}),setTimeout(()=>{x()},3e3);else{const s=t?.data?.error_code??t?.error_code;s==="104"?(h(!0),f?.user_id&&setTimeout(()=>v(f.user_id),3e3),S({event:"ga4Event",event_name:"lp_button",event_parameters:{page_group:"reg_sub_pop",position:"auth_code",button_name:"check_and_active",info:"Member Floating Window"}}),setTimeout(()=>{x()},3e3)):u(s==="142"?e?.incorrectCodeError||"Invalid verification code.":s==="154"?e?.expiredCodeMessage||"":e?.sendEmailErrorMessage||"")}}});let a=setTimeout(()=>{c(""),l(""),clearTimeout(a)},5e3)},[b,e?.codeEmptyError,e?.authSuccessMessage,e?.incorrectCodeError,e?.expiredCodeMessage,e?.sendEmailErrorMessage,P,E,k,x,h,v,f]);return _("div",{className:"relative",children:[_("div",{children:[n(r,{className:"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]",html:e?.authCodeTitle}),n(r,{as:"p",className:"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]",html:e?.authCodeDesc?.replace("%email%",i||"")})]}),_("div",{className:"mt-6",children:[n(r,{className:"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6",html:e?.enterActiveCodeText}),n("div",{className:"my-3 grid grid-cols-6 gap-2",children:o.map((d,a)=>n("div",{className:"col-span-1 aspect-1 text-[#555]",children:n("input",{ref:t=>{t&&(T.current[a]=t)},type:"tel",className:L("flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none",y&&"rounded-[12px]"),value:d,autoComplete:"false",autoCorrect:"false",spellCheck:"false",autoCapitalize:"false",onChange:t=>K(t,a),onFocus:()=>{m(a)},onPaste:t=>{const s=t.clipboardData.getData("text");if(!Number.isNaN(Number(s))){const g=s.split("").slice(0,6);N(g.concat(Array(6-g.length).fill(""))),g.length<=o.length&&m(g.length-1)}},onKeyDown:t=>{const{value:s}=t.target;t.key==="Backspace"&&!s&&a>0&&m(a-1)}},a)},a))}),I&&n(r,{className:"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]",html:I}),e?.authCodeContent&&n("ul",{className:'flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-["\u2022"]',dangerouslySetInnerHTML:{__html:e?.authCodeContent}})]}),_("div",{className:"mt-4 min-l:mt-6",children:[n(r,{className:"text-base font-semibold leading-[100%] text-[#333]",html:e?.authCodeReceiveText})," ",A?n(r,{html:e?.retrieveText?.replace("%countdownTime%",z.toString()),className:"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline"}):n(r,{onClick:W,className:L("cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline",{"pointer-events-none":A||B}),html:e?.sendAgainText}),n(q,{type:"submit",loading:F,className:"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8",onClick:O,children:e.buttonText})]}),n(Y,{status:j,message:$})]})}export{ae as default};
2
2
  //# sourceMappingURL=ActivatePanel.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/ActivatePanel.tsx"],
4
- "sourcesContent": ["import { useState, useCallback, useRef, useEffect } from 'react'\nimport { Button, Text } from '@anker-in/headless-ui'\nimport {\n useSendEmailValidation,\n gaTrack,\n classNames as cn,\n useHeadlessContext,\n useEmailValidation,\n useCountDown,\n} from '@anker-in/lib'\nimport { Message } from '../../../registration/authCodeActivate/Message'\nimport type { AuthCodeActivateCopy } from '../../type'\nimport { useRegistration } from '../../../registration'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: AuthCodeActivateCopy\n onClose: () => void\n}\n\nexport default function ActivatePanel({ copy, onClose }: Props) {\n const { setIsActivateSuccess, fetchCreditInfo, profile } = useMemberPopupContext()\n const { locale, brand } = useHeadlessContext()\n const { email } = useRegistration()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const {\n isMutating: isSendingEmail,\n trigger: triggerSendValidationEmail,\n data: sendEmailData,\n } = useSendEmailValidation()\n\n const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()\n\n const [messageText, setMessageText] = useState('')\n const [messageStatus, setMessageStatus] = useState('')\n const { startCountDown: isStartCountDown, startAction: startCountDown, countDown } = useCountDown(60)\n\n const [error, setError] = useState('')\n const [focusIndex, setFocusIndex] = useState(0)\n const [codeArray, setCodeArray] = useState(new Array(6).fill(''))\n\n const inputRefs = useRef<HTMLInputElement[]>([])\n const code = codeArray.join('')\n\n useEffect(() => {\n if (inputRefs.current[focusIndex]) {\n inputRefs.current[focusIndex].focus()\n }\n }, [focusIndex])\n\n useEffect(() => {\n if (email) {\n triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n }\n }, [email])\n\n const handleSendAgain = useCallback(async () => {\n if (!email) return\n await triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'sent_again',\n },\n })\n }, [email, triggerSendValidationEmail])\n\n const handleInputCodeChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const { value } = event.target\n\n setError('')\n\n if (Number.isNaN(Number(value))) {\n return\n }\n\n if (value.length > 1) {\n if (index < codeArray.length - 1) {\n if (!codeArray[index + 1]) {\n setFocusIndex(index + 1)\n setCodeArray(old => {\n const newCode = [...old]\n newCode[index] = value[0]\n if (value.length > 1) {\n newCode[index + 1] = value[1]\n }\n return newCode\n })\n }\n }\n return\n }\n const newCode = [...codeArray]\n newCode[index] = value\n setCodeArray(newCode)\n if (value) {\n if (index < codeArray.length - 1 && !codeArray[index + 1]) {\n setFocusIndex(index + 1)\n }\n } else if (index > 0) {\n setFocusIndex(index - 1)\n }\n }\n\n const handleAuthCodeSubmit = useCallback(async () => {\n if (!code?.length) {\n setError(copy?.codeEmptyError || '')\n return\n }\n\n if (code.length < 6) {\n setError(copy?.incorrectCodeError || '')\n return\n }\n\n const token = sendEmailData?.data?.data?.active_token ?? sendEmailData?.data?.active_token\n if (token) {\n await triggerEmailValidation(\n {\n token: token,\n code: code,\n },\n {\n onSuccess: data => {\n if (data.status >= 200 && data.status < 300) {\n setMessageStatus('success')\n setMessageText(copy?.authSuccessMessage || '')\n setIsActivateSuccess(true)\n if (profile?.user_id) fetchCreditInfo(profile.user_id)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n info: 'Member Floating Window',\n },\n })\n setTimeout(() => {\n onClose()\n }, 3000)\n } else {\n const errorCode = data?.data?.error_code ?? data?.error_code\n if (errorCode === '104') {\n setIsActivateSuccess(true)\n if (profile?.user_id) fetchCreditInfo(profile.user_id)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n info: 'Member Floating Window',\n },\n })\n setTimeout(() => {\n onClose()\n }, 3000)\n } else if (errorCode === '142') {\n setError(copy?.incorrectCodeError || 'Invalid verification code.')\n } else if (errorCode === '154') {\n setError(copy?.expiredCodeMessage || '')\n } else {\n setError(copy?.sendEmailErrorMessage || '')\n }\n }\n },\n }\n )\n }\n\n let timer = setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n clearTimeout(timer)\n }, 5000)\n }, [\n code,\n copy?.codeEmptyError,\n copy?.authSuccessMessage,\n copy?.incorrectCodeError,\n copy?.expiredCodeMessage,\n copy?.sendEmailErrorMessage,\n locale,\n sendEmailData,\n triggerEmailValidation,\n onClose,\n setIsActivateSuccess,\n fetchCreditInfo,\n profile,\n ])\n\n return (\n <div className=\"relative\">\n <div>\n <Text\n className=\"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]\"\n html={copy?.authCodeTitle}\n />\n <Text\n as=\"p\"\n className=\"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]\"\n html={copy?.authCodeDesc?.replace('%email%', email || '')}\n />\n </div>\n <div className=\"mt-6\">\n <Text\n className=\"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6\"\n html={copy?.enterActiveCodeText}\n />\n <div className=\"my-3 grid grid-cols-6 gap-2\">\n {codeArray.map((item, index) => (\n <div key={index} className=\"col-span-1 aspect-1 text-[#555]\">\n <input\n ref={inputRef => {\n if (inputRef) {\n inputRefs.current[index] = inputRef\n }\n }}\n key={index}\n type=\"tel\"\n className={cn(\n 'flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none',\n rounded && 'rounded-[12px]'\n )}\n value={item}\n autoComplete=\"false\"\n autoCorrect=\"false\"\n spellCheck=\"false\"\n autoCapitalize=\"false\"\n onChange={event => handleInputCodeChange(event, index)}\n onFocus={() => {\n setFocusIndex(index)\n }}\n onPaste={event => {\n const paste = event.clipboardData.getData('text')\n if (!Number.isNaN(Number(paste))) {\n const pastedCode = paste.split('').slice(0, 6)\n setCodeArray(pastedCode.concat(Array(6 - pastedCode.length).fill('')))\n if (pastedCode.length <= codeArray.length) {\n setFocusIndex(pastedCode.length - 1)\n }\n }\n }}\n onKeyDown={event => {\n const { value } = event.target as HTMLInputElement\n if (event.key === 'Backspace' && !value && index > 0) {\n setFocusIndex(index - 1)\n }\n }}\n />\n </div>\n ))}\n </div>\n\n {error && <Text className=\"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]\" html={error} />}\n {copy?.authCodeContent && (\n <ul\n className='flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-[\"\u2022\"]'\n dangerouslySetInnerHTML={{ __html: copy?.authCodeContent }}\n />\n )}\n </div>\n <div className=\"mt-4 min-l:mt-6\">\n <Text className=\"text-base font-semibold leading-[100%] text-[#333]\" html={copy?.authCodeReceiveText} />{' '}\n {isStartCountDown ? (\n <Text\n html={copy?.retrieveText?.replace('%countdownTime%', countDown.toString())}\n className=\"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline\"\n />\n ) : (\n <Text\n onClick={handleSendAgain}\n className={cn(\n 'cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline',\n {\n 'pointer-events-none': isStartCountDown || isSendingEmail,\n }\n )}\n html={copy?.sendAgainText}\n />\n )}\n <Button\n type=\"submit\"\n loading={emailValidationLoading}\n className=\"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8\"\n onClick={handleAuthCodeSubmit}\n >\n {copy.buttonText}\n </Button>\n </div>\n <Message status={messageStatus} message={messageText} />\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useState, useCallback, useRef, useEffect } from 'react'\nimport { Button, Text } from '@anker-in/headless-ui'\nimport {\n useSendEmailValidation,\n gaTrack,\n classNames as cn,\n useHeadlessContext,\n useEmailValidation,\n useCountDown,\n} from '@anker-in/lib'\nimport { Message } from '../../../registration/authCodeActivate/Message'\nimport type { AuthCodeActivateCopy } from '../../type'\nimport { useRegistration } from '../../../registration'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: AuthCodeActivateCopy\n onClose: () => void\n}\n\nexport default function ActivatePanel({ copy, onClose }: Props) {\n const { setIsActivateSuccess, fetchCreditInfo, profile } = useMemberPopupContext()\n const { locale, brand } = useHeadlessContext()\n const { email } = useRegistration()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const {\n isMutating: isSendingEmail,\n trigger: triggerSendValidationEmail,\n data: sendEmailData,\n } = useSendEmailValidation()\n\n const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()\n\n const [messageText, setMessageText] = useState('')\n const [messageStatus, setMessageStatus] = useState('')\n const { startCountDown: isStartCountDown, startAction: startCountDown, countDown } = useCountDown(60)\n\n const [error, setError] = useState('')\n const [focusIndex, setFocusIndex] = useState(0)\n const [codeArray, setCodeArray] = useState(new Array(6).fill(''))\n\n const inputRefs = useRef<HTMLInputElement[]>([])\n const code = codeArray.join('')\n\n useEffect(() => {\n if (inputRefs.current[focusIndex]) {\n inputRefs.current[focusIndex].focus()\n }\n }, [focusIndex])\n\n useEffect(() => {\n if (email) {\n triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n }\n }, [email])\n\n const handleSendAgain = useCallback(async () => {\n if (!email) return\n await triggerSendValidationEmail(\n {\n email: email,\n data: {\n redirect_url: `${window?.location?.origin}${window?.location?.pathname}`,\n },\n },\n {\n onSuccess: () => {\n setMessageStatus('success')\n setMessageText(copy?.sendEmailSuccessMessage || '')\n startCountDown()\n setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n }, 5000)\n },\n }\n )\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'sent_again',\n },\n })\n }, [email, triggerSendValidationEmail])\n\n const handleInputCodeChange = (event: React.ChangeEvent<HTMLInputElement>, index: number) => {\n const { value } = event.target\n\n setError('')\n\n if (Number.isNaN(Number(value))) {\n return\n }\n\n if (value.length > 1) {\n if (index < codeArray.length - 1) {\n if (!codeArray[index + 1]) {\n setFocusIndex(index + 1)\n setCodeArray(old => {\n const newCode = [...old]\n newCode[index] = value[0]\n if (value.length > 1) {\n newCode[index + 1] = value[1]\n }\n return newCode\n })\n }\n }\n return\n }\n const newCode = [...codeArray]\n newCode[index] = value\n setCodeArray(newCode)\n if (value) {\n if (index < codeArray.length - 1 && !codeArray[index + 1]) {\n setFocusIndex(index + 1)\n }\n } else if (index > 0) {\n setFocusIndex(index - 1)\n }\n }\n\n const handleAuthCodeSubmit = useCallback(async () => {\n if (!code?.length) {\n setError(copy?.codeEmptyError || '')\n return\n }\n\n if (code.length < 6) {\n setError(copy?.incorrectCodeError || '')\n return\n }\n\n const token = sendEmailData?.data?.data?.active_token ?? sendEmailData?.data?.active_token\n if (token) {\n await triggerEmailValidation(\n {\n token: token,\n code: code,\n },\n {\n onSuccess: data => {\n if (data.status >= 200 && data.status < 300) {\n setMessageStatus('success')\n setMessageText(copy?.authSuccessMessage || '')\n setIsActivateSuccess(true)\n if (profile?.user_id) setTimeout(() => fetchCreditInfo(profile.user_id), 3000)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n info: 'Member Floating Window',\n },\n })\n setTimeout(() => {\n onClose()\n }, 3000)\n } else {\n const errorCode = data?.data?.error_code ?? data?.error_code\n if (errorCode === '104') {\n setIsActivateSuccess(true)\n if (profile?.user_id) setTimeout(() => fetchCreditInfo(profile.user_id), 3000)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n page_group: 'reg_sub_pop',\n position: 'auth_code',\n button_name: 'check_and_active',\n info: 'Member Floating Window',\n },\n })\n setTimeout(() => {\n onClose()\n }, 3000)\n } else if (errorCode === '142') {\n setError(copy?.incorrectCodeError || 'Invalid verification code.')\n } else if (errorCode === '154') {\n setError(copy?.expiredCodeMessage || '')\n } else {\n setError(copy?.sendEmailErrorMessage || '')\n }\n }\n },\n }\n )\n }\n\n let timer = setTimeout(() => {\n setMessageStatus('')\n setMessageText('')\n clearTimeout(timer)\n }, 5000)\n }, [\n code,\n copy?.codeEmptyError,\n copy?.authSuccessMessage,\n copy?.incorrectCodeError,\n copy?.expiredCodeMessage,\n copy?.sendEmailErrorMessage,\n locale,\n sendEmailData,\n triggerEmailValidation,\n onClose,\n setIsActivateSuccess,\n fetchCreditInfo,\n profile,\n ])\n\n return (\n <div className=\"relative\">\n <div>\n <Text\n className=\"text-[22px] font-extrabold leading-[120%] text-[#333] min-l:text-[24px] [&_abbr]:text-[#005d8e]\"\n html={copy?.authCodeTitle}\n />\n <Text\n as=\"p\"\n className=\"mt-3 text-[14px] font-semibold leading-[140%] text-[rgba(51,51,51,0.75)] min-l:text-base [&_abbr]:text-[#333]\"\n html={copy?.authCodeDesc?.replace('%email%', email || '')}\n />\n </div>\n <div className=\"mt-6\">\n <Text\n className=\"mt-4 text-[14px] !font-bold font-semibold leading-[140%] text-[#333] min-l:mt-6\"\n html={copy?.enterActiveCodeText}\n />\n <div className=\"my-3 grid grid-cols-6 gap-2\">\n {codeArray.map((item, index) => (\n <div key={index} className=\"col-span-1 aspect-1 text-[#555]\">\n <input\n ref={inputRef => {\n if (inputRef) {\n inputRefs.current[index] = inputRef\n }\n }}\n key={index}\n type=\"tel\"\n className={cn(\n 'flex size-full items-center justify-center border border-[#333333]/20 bg-[#EEEEEE] text-center text-[24px] font-medium focus:border-[#333]/50 [&::-webkit-inner-spin-button]:appearance-none [&::-webkit-outer-spin-button]:appearance-none [&:focus-visible]:outline-none',\n rounded && 'rounded-[12px]'\n )}\n value={item}\n autoComplete=\"false\"\n autoCorrect=\"false\"\n spellCheck=\"false\"\n autoCapitalize=\"false\"\n onChange={event => handleInputCodeChange(event, index)}\n onFocus={() => {\n setFocusIndex(index)\n }}\n onPaste={event => {\n const paste = event.clipboardData.getData('text')\n if (!Number.isNaN(Number(paste))) {\n const pastedCode = paste.split('').slice(0, 6)\n setCodeArray(pastedCode.concat(Array(6 - pastedCode.length).fill('')))\n if (pastedCode.length <= codeArray.length) {\n setFocusIndex(pastedCode.length - 1)\n }\n }\n }}\n onKeyDown={event => {\n const { value } = event.target as HTMLInputElement\n if (event.key === 'Backspace' && !value && index > 0) {\n setFocusIndex(index - 1)\n }\n }}\n />\n </div>\n ))}\n </div>\n\n {error && <Text className=\"mb-3 text-[14px] font-semibold leading-[120%] text-[#f84d4f]\" html={error} />}\n {copy?.authCodeContent && (\n <ul\n className='flex flex-col gap-1 [&_li]:flex [&_li]:gap-2 [&_li]:text-[14px] [&_li]:font-semibold [&_li]:leading-[120%] [&_li]:text-[rgba(51,51,51,0.55)] [&_li]:before:content-[\"\u2022\"]'\n dangerouslySetInnerHTML={{ __html: copy?.authCodeContent }}\n />\n )}\n </div>\n <div className=\"mt-4 min-l:mt-6\">\n <Text className=\"text-base font-semibold leading-[100%] text-[#333]\" html={copy?.authCodeReceiveText} />{' '}\n {isStartCountDown ? (\n <Text\n html={copy?.retrieveText?.replace('%countdownTime%', countDown.toString())}\n className=\"cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline\"\n />\n ) : (\n <Text\n onClick={handleSendAgain}\n className={cn(\n 'cursor-pointer text-base font-semibold leading-[100%] !text-brand text-[#005d8e] text-[#333] underline',\n {\n 'pointer-events-none': isStartCountDown || isSendingEmail,\n }\n )}\n html={copy?.sendAgainText}\n />\n )}\n <Button\n type=\"submit\"\n loading={emailValidationLoading}\n className=\"mt-6 flex h-[54px] w-full cursor-pointer items-center justify-center px-8 py-[15px] text-center text-base font-bold leading-[100%] text-white min-l:mt-8\"\n onClick={handleAuthCodeSubmit}\n >\n {copy.buttonText}\n </Button>\n </div>\n <Message status={messageStatus} message={messageText} />\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsxs", "useState", "useCallback", "useRef", "useEffect", "Button", "Text", "useSendEmailValidation", "gaTrack", "cn", "useHeadlessContext", "useEmailValidation", "useCountDown", "Message", "useRegistration", "useMemberPopupContext", "ROUNDED_BRANDS", "ActivatePanel", "copy", "onClose", "setIsActivateSuccess", "fetchCreditInfo", "profile", "locale", "brand", "email", "rounded", "isSendingEmail", "triggerSendValidationEmail", "sendEmailData", "emailValidationLoading", "triggerEmailValidation", "messageText", "setMessageText", "messageStatus", "setMessageStatus", "isStartCountDown", "startCountDown", "countDown", "error", "setError", "focusIndex", "setFocusIndex", "codeArray", "setCodeArray", "inputRefs", "code", "handleSendAgain", "handleInputCodeChange", "event", "index", "value", "old", "newCode", "handleAuthCodeSubmit", "token", "data", "errorCode", "timer", "item", "inputRef", "paste", "pastedCode"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useCallback as q,useEffect as F,useState as r}from"react";import{Button as L,Text as g}from"@anker-in/headless-ui";import{gaTrack as T,classNames as s,useHeadlessContext as U}from"@anker-in/lib";import{useUpdateProfile as A}from"./hooks/useUpdateProfile";import H from"../../../credits/context/hooks/useCountries";import{useMemberPopupContext as O}from"../../context/provider";import{ROUNDED_BRANDS as W}from"../../../../constants";function G({copy:a,onClose:x}){const{profile:o,fetchCreditInfo:C,alpcConfig:_,setIsProfileCompleteSuccess:k}=O(),{locale:z}=_,{brand:I,storeDomain:M}=U(),l=W.includes(I),[d,P]=r(""),[i,w]=r(""),[u,E]=r(""),[f,y]=r(""),[p,c]=r(""),[b,v]=r(""),[N,h]=r(""),{updateProfile:D,isLoading:B}=A({locale:z,appName:_.appName}),{countries:m}=H({shopifyStoreDomain:M});F(()=>{o&&(P(o.first_name??""),w(o.last_name??""),E(o.phone_number??""),y(o.dob??""),c(o.country?.id??""))},[o]),F(()=>{m.length>0&&!p&&c(m[0].id)},[m]);const S=q(()=>{let e=!1;return d.trim()?v(""):(v(a.required),e=!0),i.trim()?h(""):(h(a.required),e=!0),e},[d,i,a.required]),R=q(async()=>{if(S())return;await D({first_name:d.trim(),last_name:i.trim(),phone_number:u,country:p,dob:f})&&(C(o?.user_id),k(!0),T({event:"ga4Event",event_name:"lp_button",event_parameters:{position:"earn_credits",button_name:"complete_profile_success",info:"Member Floating Window"}}),x())},[S,D,d,i,u,p,f,C,o,k,x]);return n("div",{className:"flex flex-col gap-[16px]",children:[a.subtitle&&t(g,{className:"text-[14px] text-[#1d1d1f]",html:a.subtitle}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.email}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] bg-[#f5f5f5] px-[12px] text-[14px] text-[#999]",l?"rounded-[4px]":"rounded-none"),value:o?.email??"",disabled:!0})]}),n("div",{children:[n("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:[a.firstName," ",t("span",{className:"text-[#f84d4f]",children:"*"})]}),t("input",{className:s("mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none",b?"border-[#f84d4f]":"border-[#d8d8d8]",l?"rounded-[4px]":"rounded-none"),value:d,onChange:e=>{P(e.target.value),v("")}}),b&&t(g,{className:"mt-[4px] text-[12px] text-[#f84d4f]",html:b})]}),n("div",{children:[n("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:[a.lastName," ",t("span",{className:"text-[#f84d4f]",children:"*"})]}),t("input",{className:s("mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none",N?"border-[#f84d4f]":"border-[#d8d8d8]",l?"rounded-[4px]":"rounded-none"),value:i,onChange:e=>{w(e.target.value),h("")}}),N&&t(g,{className:"mt-[4px] text-[12px] text-[#f84d4f]",html:N})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.birthday}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),type:"date",value:f,onChange:e=>y(e.target.value)})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.phone}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),value:u,onChange:e=>E(e.target.value)})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.country}),t("select",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),value:p,onChange:e=>c(e.target.value),children:m.map(e=>t("option",{value:e.id,children:e.name},e.id))})]}),n("div",{className:"flex gap-[12px]",children:[t(L,{variant:"secondary",size:"lg",className:"flex-1",onClick:x,disabled:B,children:a.cancel}),t(L,{variant:"primary",size:"lg",className:"flex-1",loading:B,onClick:R,children:a.save})]})]})}export{G as default};
1
+ import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useCallback as q,useEffect as F,useState as r}from"react";import{Button as L,Text as g}from"@anker-in/headless-ui";import{gaTrack as R,classNames as s,useHeadlessContext as U}from"@anker-in/lib";import{useUpdateProfile as A}from"./hooks/useUpdateProfile";import H from"../../../credits/context/hooks/useCountries";import{useMemberPopupContext as O}from"../../context/provider";import{ROUNDED_BRANDS as W}from"../../../../constants";function G({copy:a,onClose:x}){const{profile:o,fetchCreditInfo:C,alpcConfig:_,setIsProfileCompleteSuccess:k}=O(),{locale:T}=_,{brand:z,storeDomain:I}=U(),l=W.includes(z),[d,P]=r(""),[i,w]=r(""),[u,E]=r(""),[f,y]=r(""),[p,c]=r(""),[b,v]=r(""),[N,h]=r(""),{updateProfile:D,isLoading:B}=A({locale:T,appName:_.appName}),{countries:m}=H({shopifyStoreDomain:I});F(()=>{o&&(P(o.first_name??""),w(o.last_name??""),E(o.phone_number??""),y(o.dob??""),c(o.country?.id??""))},[o]),F(()=>{m.length>0&&!p&&c(m[0].id)},[m]);const S=q(()=>{let e=!1;return d.trim()?v(""):(v(a.required),e=!0),i.trim()?h(""):(h(a.required),e=!0),e},[d,i,a.required]),M=q(async()=>{if(S())return;await D({first_name:d.trim(),last_name:i.trim(),phone_number:u,country:p,dob:f})&&(setTimeout(()=>C(o?.user_id),3e3),k(!0),R({event:"ga4Event",event_name:"lp_button",event_parameters:{position:"earn_credits",button_name:"complete_profile_success",info:"Member Floating Window"}}),x())},[S,D,d,i,u,p,f,C,o,k,x]);return n("div",{className:"flex flex-col gap-[16px]",children:[a.subtitle&&t(g,{className:"text-[14px] text-[#1d1d1f]",html:a.subtitle}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.email}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] bg-[#f5f5f5] px-[12px] text-[14px] text-[#999]",l?"rounded-[4px]":"rounded-none"),value:o?.email??"",disabled:!0})]}),n("div",{children:[n("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:[a.firstName," ",t("span",{className:"text-[#f84d4f]",children:"*"})]}),t("input",{className:s("mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none",b?"border-[#f84d4f]":"border-[#d8d8d8]",l?"rounded-[4px]":"rounded-none"),value:d,onChange:e=>{P(e.target.value),v("")}}),b&&t(g,{className:"mt-[4px] text-[12px] text-[#f84d4f]",html:b})]}),n("div",{children:[n("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:[a.lastName," ",t("span",{className:"text-[#f84d4f]",children:"*"})]}),t("input",{className:s("mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none",N?"border-[#f84d4f]":"border-[#d8d8d8]",l?"rounded-[4px]":"rounded-none"),value:i,onChange:e=>{w(e.target.value),h("")}}),N&&t(g,{className:"mt-[4px] text-[12px] text-[#f84d4f]",html:N})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.birthday}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),type:"date",value:f,onChange:e=>y(e.target.value)})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.phone}),t("input",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),value:u,onChange:e=>E(e.target.value)})]}),n("div",{children:[t("label",{className:"block text-[14px] font-[700] text-[#1d1d1f]",children:a.country}),t("select",{className:s("mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none",l?"rounded-[4px]":"rounded-none"),value:p,onChange:e=>c(e.target.value),children:m.map(e=>t("option",{value:e.id,children:e.name},e.id))})]}),n("div",{className:"flex gap-[12px]",children:[t(L,{variant:"secondary",size:"lg",className:"flex-1",onClick:x,disabled:B,children:a.cancel}),t(L,{variant:"primary",size:"lg",className:"flex-1",loading:B,onClick:M,children:a.save})]})]})}export{G as default};
2
2
  //# sourceMappingURL=CompleteProfilePanel.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.tsx"],
4
- "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Button, Text } from '@anker-in/headless-ui'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport type { CompleteProfileCopy } from '../../type'\nimport { useUpdateProfile } from './hooks/useUpdateProfile'\nimport useCountries from '../../../credits/context/hooks/useCountries'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: CompleteProfileCopy\n onClose: () => void\n}\n\nexport default function CompleteProfilePanel({ copy, onClose }: Props) {\n const { profile, fetchCreditInfo, alpcConfig, setIsProfileCompleteSuccess } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand, storeDomain } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [phone, setPhone] = useState('')\n const [birthDay, setBirthDay] = useState('')\n const [country, setCountry] = useState('')\n const [firstNameError, setFirstNameError] = useState('')\n const [lastNameError, setLastNameError] = useState('')\n\n const { updateProfile, isLoading } = useUpdateProfile({ locale, appName: alpcConfig.appName })\n const { countries } = useCountries({ shopifyStoreDomain: storeDomain })\n\n useEffect(() => {\n if (profile) {\n setFirstName(profile.first_name ?? '')\n setLastName(profile.last_name ?? '')\n setPhone(profile.phone_number ?? '')\n setBirthDay(profile.dob ?? '')\n setCountry(profile.country?.id ?? '')\n }\n }, [profile])\n\n useEffect(() => {\n if (countries.length > 0 && !country) {\n setCountry(countries[0].id)\n }\n }, [countries])\n\n const validate = useCallback(() => {\n let hasError = false\n if (!firstName.trim()) {\n setFirstNameError(copy.required)\n hasError = true\n } else {\n setFirstNameError('')\n }\n if (!lastName.trim()) {\n setLastNameError(copy.required)\n hasError = true\n } else {\n setLastNameError('')\n }\n return hasError\n }, [firstName, lastName, copy.required])\n\n const handleSubmit = useCallback(async () => {\n if (validate()) return\n const success = await updateProfile({\n first_name: firstName.trim(),\n last_name: lastName.trim(),\n phone_number: phone,\n country,\n dob: birthDay,\n })\n if (success) {\n fetchCreditInfo(profile?.user_id)\n setIsProfileCompleteSuccess(true)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n position: 'earn_credits',\n button_name: 'complete_profile_success',\n info: 'Member Floating Window',\n },\n })\n onClose()\n }\n }, [\n validate,\n updateProfile,\n firstName,\n lastName,\n phone,\n country,\n birthDay,\n fetchCreditInfo,\n profile,\n setIsProfileCompleteSuccess,\n onClose,\n ])\n\n return (\n <div className=\"flex flex-col gap-[16px]\">\n {copy.subtitle && <Text className=\"text-[14px] text-[#1d1d1f]\" html={copy.subtitle} />}\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.email}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] bg-[#f5f5f5] px-[12px] text-[14px] text-[#999]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={profile?.email ?? ''}\n disabled\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">\n {copy.firstName} <span className=\"text-[#f84d4f]\">*</span>\n </label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none',\n firstNameError ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={firstName}\n onChange={e => {\n setFirstName(e.target.value)\n setFirstNameError('')\n }}\n />\n {firstNameError && <Text className=\"mt-[4px] text-[12px] text-[#f84d4f]\" html={firstNameError} />}\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">\n {copy.lastName} <span className=\"text-[#f84d4f]\">*</span>\n </label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none',\n lastNameError ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={lastName}\n onChange={e => {\n setLastName(e.target.value)\n setLastNameError('')\n }}\n />\n {lastNameError && <Text className=\"mt-[4px] text-[12px] text-[#f84d4f]\" html={lastNameError} />}\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.birthday}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n type=\"date\"\n value={birthDay}\n onChange={e => setBirthDay(e.target.value)}\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.phone}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={phone}\n onChange={e => setPhone(e.target.value)}\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.country}</label>\n <select\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={country}\n onChange={e => setCountry(e.target.value)}\n >\n {countries.map((c: { id: string; name: string }) => (\n <option key={c.id} value={c.id}>\n {c.name}\n </option>\n ))}\n </select>\n </div>\n\n <div className=\"flex gap-[12px]\">\n <Button variant=\"secondary\" size=\"lg\" className=\"flex-1\" onClick={onClose} disabled={isLoading}>\n {copy.cancel}\n </Button>\n <Button variant=\"primary\" size=\"lg\" className=\"flex-1\" loading={isLoading} onClick={handleSubmit}>\n {copy.save}\n </Button>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Button, Text } from '@anker-in/headless-ui'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport type { CompleteProfileCopy } from '../../type'\nimport { useUpdateProfile } from './hooks/useUpdateProfile'\nimport useCountries from '../../../credits/context/hooks/useCountries'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: CompleteProfileCopy\n onClose: () => void\n}\n\nexport default function CompleteProfilePanel({ copy, onClose }: Props) {\n const { profile, fetchCreditInfo, alpcConfig, setIsProfileCompleteSuccess } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand, storeDomain } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const [firstName, setFirstName] = useState('')\n const [lastName, setLastName] = useState('')\n const [phone, setPhone] = useState('')\n const [birthDay, setBirthDay] = useState('')\n const [country, setCountry] = useState('')\n const [firstNameError, setFirstNameError] = useState('')\n const [lastNameError, setLastNameError] = useState('')\n\n const { updateProfile, isLoading } = useUpdateProfile({ locale, appName: alpcConfig.appName })\n const { countries } = useCountries({ shopifyStoreDomain: storeDomain })\n\n useEffect(() => {\n if (profile) {\n setFirstName(profile.first_name ?? '')\n setLastName(profile.last_name ?? '')\n setPhone(profile.phone_number ?? '')\n setBirthDay(profile.dob ?? '')\n setCountry(profile.country?.id ?? '')\n }\n }, [profile])\n\n useEffect(() => {\n if (countries.length > 0 && !country) {\n setCountry(countries[0].id)\n }\n }, [countries])\n\n const validate = useCallback(() => {\n let hasError = false\n if (!firstName.trim()) {\n setFirstNameError(copy.required)\n hasError = true\n } else {\n setFirstNameError('')\n }\n if (!lastName.trim()) {\n setLastNameError(copy.required)\n hasError = true\n } else {\n setLastNameError('')\n }\n return hasError\n }, [firstName, lastName, copy.required])\n\n const handleSubmit = useCallback(async () => {\n if (validate()) return\n const success = await updateProfile({\n first_name: firstName.trim(),\n last_name: lastName.trim(),\n phone_number: phone,\n country,\n dob: birthDay,\n })\n if (success) {\n setTimeout(() => fetchCreditInfo(profile?.user_id), 3000)\n setIsProfileCompleteSuccess(true)\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n position: 'earn_credits',\n button_name: 'complete_profile_success',\n info: 'Member Floating Window',\n },\n })\n onClose()\n }\n }, [\n validate,\n updateProfile,\n firstName,\n lastName,\n phone,\n country,\n birthDay,\n fetchCreditInfo,\n profile,\n setIsProfileCompleteSuccess,\n onClose,\n ])\n\n return (\n <div className=\"flex flex-col gap-[16px]\">\n {copy.subtitle && <Text className=\"text-[14px] text-[#1d1d1f]\" html={copy.subtitle} />}\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.email}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] bg-[#f5f5f5] px-[12px] text-[14px] text-[#999]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={profile?.email ?? ''}\n disabled\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">\n {copy.firstName} <span className=\"text-[#f84d4f]\">*</span>\n </label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none',\n firstNameError ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={firstName}\n onChange={e => {\n setFirstName(e.target.value)\n setFirstNameError('')\n }}\n />\n {firstNameError && <Text className=\"mt-[4px] text-[12px] text-[#f84d4f]\" html={firstNameError} />}\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">\n {copy.lastName} <span className=\"text-[#f84d4f]\">*</span>\n </label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border px-[12px] text-[14px] outline-none',\n lastNameError ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={lastName}\n onChange={e => {\n setLastName(e.target.value)\n setLastNameError('')\n }}\n />\n {lastNameError && <Text className=\"mt-[4px] text-[12px] text-[#f84d4f]\" html={lastNameError} />}\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.birthday}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n type=\"date\"\n value={birthDay}\n onChange={e => setBirthDay(e.target.value)}\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.phone}</label>\n <input\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={phone}\n onChange={e => setPhone(e.target.value)}\n />\n </div>\n\n <div>\n <label className=\"block text-[14px] font-[700] text-[#1d1d1f]\">{copy.country}</label>\n <select\n className={cn(\n 'mt-[8px] h-[46px] w-full border border-[#d8d8d8] px-[12px] text-[14px] outline-none',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n value={country}\n onChange={e => setCountry(e.target.value)}\n >\n {countries.map((c: { id: string; name: string }) => (\n <option key={c.id} value={c.id}>\n {c.name}\n </option>\n ))}\n </select>\n </div>\n\n <div className=\"flex gap-[12px]\">\n <Button variant=\"secondary\" size=\"lg\" className=\"flex-1\" onClick={onClose} disabled={isLoading}>\n {copy.cancel}\n </Button>\n <Button variant=\"primary\" size=\"lg\" className=\"flex-1\" loading={isLoading} onClick={handleSubmit}>\n {copy.save}\n </Button>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsxs", "useCallback", "useEffect", "useState", "Button", "Text", "gaTrack", "cn", "useHeadlessContext", "useUpdateProfile", "useCountries", "useMemberPopupContext", "ROUNDED_BRANDS", "CompleteProfilePanel", "copy", "onClose", "profile", "fetchCreditInfo", "alpcConfig", "setIsProfileCompleteSuccess", "locale", "brand", "storeDomain", "rounded", "firstName", "setFirstName", "lastName", "setLastName", "phone", "setPhone", "birthDay", "setBirthDay", "country", "setCountry", "firstNameError", "setFirstNameError", "lastNameError", "setLastNameError", "updateProfile", "isLoading", "countries", "validate", "hasError", "handleSubmit", "c"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useCallback as D,useEffect as E,useState as l}from"react";import{Checkbox as I,Text as S}from"@anker-in/headless-ui";import{gaTrack as L,classNames as p,useHeadlessContext as O}from"@anker-in/lib";import c from"js-cookie";import{parse as A}from"query-string";import{emailValidate as B}from"../../../credits/context/utils";import{useMemberPopupContext as H}from"../../context/provider";import{ROUNDED_BRANDS as R}from"../../../../constants";function j(){if(typeof window>"u")return{register_source:""};const{search:e,href:o}=window.location,a=A(e);return{fbuy_ref_code:c.get("fbuy_ref_code"),ref:c.get("ref_ads"),inviter_code:a.ic??a.inviter_code??c.get("inviter_code"),register_source:a.redirect??c.get("reg_source")??o}}function q({copy:e,email:o,onClose:a}){const{alpcConfig:k,setIsSubscribeSuccess:m,fetchCreditInfo:w,profile:x}=H(),{brand:b,locale:g}=k,{brand:T}=O(),h=R.includes(T),[u,_]=l(e.policyDefaultChecked??!1),[i,v]=l(o??""),[n,s]=l(""),[f,y]=l(""),[M,C]=l(!1);E(()=>{o&&v(o)},[o]);const P=D(async()=>{if(s(""),!i)return s("Please fill in your email");if(!B(i))return s("Invalid email address");if(!u)return s("Please agree to the policy");C(!0);const{register_source:r}=j();try{const N=await(await fetch("/api/multipass/subscribe/subscribe_emails",{method:"POST",headers:{"Content-Type":"application/json","current-language":g},body:JSON.stringify({email:i,register_source:r,brand:b,deals_type:e.dealsType??"vip_subscribe"})})).json();N.errors?s(N.errors??"Error occurred"):(y(e.successTips??"Subscribed successfully!"),m(!0),x?.user_id&&w(x.user_id),L({event:"ga4Event",event_name:"subscribe",event_parameters:{page_group:e.dealsType??"",position:"sticky",info:""}}),setTimeout(()=>{y(""),a()},3e3))}catch{s("Network error")}finally{C(!1)}},[i,u,g,b,e,a,m]);return d("div",{className:"flex flex-col gap-[12px]",children:[d("div",{className:"flex flex-col gap-[8px]",children:[e.title&&t("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),e.desc&&t(S,{className:"text-[16px] text-[#1e2024]",html:e.desc})]}),d("div",{className:"flex flex-col gap-[16px]",children:[t("input",{className:p("h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]",n?"border-[#f84d4f]":"border-[#d8d8d8]",h?"rounded-[4px]":"rounded-none"),placeholder:e.placeholder,value:i,onChange:r=>{s(""),v(r.target.value.trim())}}),d("div",{className:"flex w-full items-start gap-[8px]",children:[t(I,{checked:u,onCheckedChange:()=>_(r=>!r),className:"mt-[2px] border-[#1d1d1f]"}),t("label",{className:"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline",onClick:()=>_(r=>!r),dangerouslySetInnerHTML:{__html:e.policy??""}})]}),(n||f)&&t("div",{className:p("text-[14px] font-[700]",n&&"text-[#f84d4f]",f&&"text-[#52c41a]"),children:t(S,{html:f||n})}),t("button",{className:p("w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60",h?"rounded-[4px]":"rounded-none"),disabled:M,onClick:P,children:e.buttonLabel??"Subscribe"})]})]})}export{q as default};
1
+ import{jsx as t,jsxs as d}from"react/jsx-runtime";import{useCallback as D,useEffect as E,useState as l}from"react";import{Checkbox as I,Text as S}from"@anker-in/headless-ui";import{gaTrack as L,classNames as p,useHeadlessContext as O}from"@anker-in/lib";import c from"js-cookie";import{parse as A}from"query-string";import{emailValidate as B}from"../../../credits/context/utils";import{useMemberPopupContext as H}from"../../context/provider";import{ROUNDED_BRANDS as R}from"../../../../constants";function j(){if(typeof window>"u")return{register_source:""};const{search:e,href:o}=window.location,a=A(e);return{fbuy_ref_code:c.get("fbuy_ref_code"),ref:c.get("ref_ads"),inviter_code:a.ic??a.inviter_code??c.get("inviter_code"),register_source:a.redirect??c.get("reg_source")??o}}function q({copy:e,email:o,onClose:a}){const{alpcConfig:k,setIsSubscribeSuccess:m,fetchCreditInfo:w,profile:x}=H(),{brand:b,locale:g}=k,{brand:T}=O(),h=R.includes(T),[u,_]=l(e.policyDefaultChecked??!1),[i,v]=l(o??""),[n,s]=l(""),[f,y]=l(""),[M,C]=l(!1);E(()=>{o&&v(o)},[o]);const P=D(async()=>{if(s(""),!i)return s("Please fill in your email");if(!B(i))return s("Invalid email address");if(!u)return s("Please agree to the policy");C(!0);const{register_source:r}=j();try{const N=await(await fetch("/api/multipass/subscribe/subscribe_emails",{method:"POST",headers:{"Content-Type":"application/json","current-language":g},body:JSON.stringify({email:i,register_source:r,brand:b,deals_type:e.dealsType??"vip_subscribe"})})).json();N.errors?s(N.errors??"Error occurred"):(y(e.successTips??"Subscribed successfully!"),m(!0),x?.user_id&&setTimeout(()=>w(x.user_id),3e3),L({event:"ga4Event",event_name:"subscribe",event_parameters:{page_group:e.dealsType??"",position:"sticky",info:""}}),setTimeout(()=>{y(""),a()},3e3))}catch{s("Network error")}finally{C(!1)}},[i,u,g,b,e,a,m]);return d("div",{className:"flex flex-col gap-[12px]",children:[d("div",{className:"flex flex-col gap-[8px]",children:[e.title&&t("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),e.desc&&t(S,{className:"text-[16px] text-[#1e2024]",html:e.desc})]}),d("div",{className:"flex flex-col gap-[16px]",children:[t("input",{className:p("h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]",n?"border-[#f84d4f]":"border-[#d8d8d8]",h?"rounded-[4px]":"rounded-none"),placeholder:e.placeholder,value:i,onChange:r=>{s(""),v(r.target.value.trim())}}),d("div",{className:"flex w-full items-start gap-[8px]",children:[t(I,{checked:u,onCheckedChange:()=>_(r=>!r),className:"mt-[2px] border-[#1d1d1f]"}),t("label",{className:"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline",onClick:()=>_(r=>!r),dangerouslySetInnerHTML:{__html:e.policy??""}})]}),(n||f)&&t("div",{className:p("text-[14px] font-[700]",n&&"text-[#f84d4f]",f&&"text-[#52c41a]"),children:t(S,{html:f||n})}),t("button",{className:p("w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60",h?"rounded-[4px]":"rounded-none"),disabled:M,onClick:P,children:e.buttonLabel??"Subscribe"})]})]})}export{q as default};
2
2
  //# sourceMappingURL=SubscribeEmailPanel.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/SubscribeEmailPanel.tsx"],
4
- "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Checkbox, Text } from '@anker-in/headless-ui'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { emailValidate } from '../../../credits/context/utils'\nimport { useMemberPopupContext } from '../../context/provider'\nimport type { SubscribeModalCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: SubscribeModalCopy\n email?: string\n onClose: () => void\n}\n\nfunction getAdCookie() {\n if (typeof window === 'undefined') return { register_source: '' }\n const { search, href } = window.location\n const query = parse(search)\n return {\n fbuy_ref_code: Cookies.get('fbuy_ref_code'),\n ref: Cookies.get('ref_ads'),\n inviter_code: query.ic ?? query.inviter_code ?? Cookies.get('inviter_code'),\n register_source: query.redirect ?? Cookies.get('reg_source') ?? href,\n }\n}\n\nexport default function SubscribeEmailPanel({ copy, email: initialEmail, onClose }: Props) {\n const { alpcConfig, setIsSubscribeSuccess, fetchCreditInfo, profile } = useMemberPopupContext()\n const { brand, locale } = alpcConfig\n const { brand: headlessBrand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(copy.policyDefaultChecked ?? false)\n const [email, setEmail] = useState(initialEmail ?? '')\n const [errorMessage, setErrorMessage] = useState('')\n const [successMessage, setSuccessMessage] = useState('')\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n if (initialEmail) setEmail(initialEmail)\n }, [initialEmail])\n\n const handleSubmit = useCallback(async () => {\n setErrorMessage('')\n if (!email) return setErrorMessage('Please fill in your email')\n if (!emailValidate(email)) return setErrorMessage('Invalid email address')\n if (!policy) return setErrorMessage('Please agree to the policy')\n\n setLoading(true)\n const { register_source } = getAdCookie()\n try {\n const response = await fetch('/api/multipass/subscribe/subscribe_emails', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'current-language': locale },\n body: JSON.stringify({\n email,\n register_source,\n brand,\n deals_type: copy.dealsType ?? 'vip_subscribe',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n setIsSubscribeSuccess(true)\n if (profile?.user_id) fetchCreditInfo(profile.user_id)\n gaTrack({\n event: 'ga4Event',\n event_name: 'subscribe',\n event_parameters: {\n page_group: copy.dealsType ?? '',\n position: 'sticky',\n info: '',\n },\n })\n setTimeout(() => {\n setSuccessMessage('')\n onClose()\n }, 3000)\n } else {\n setErrorMessage(result.errors ?? 'Error occurred')\n }\n } catch {\n setErrorMessage('Network error')\n } finally {\n setLoading(false)\n }\n }, [email, policy, locale, brand, copy, onClose, setIsSubscribeSuccess])\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && (\n <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>\n )}\n {copy.desc && (\n <Text className=\"text-[16px] text-[#1e2024]\" html={copy.desc} />\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n <input\n className={cn(\n 'h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]',\n errorMessage ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => { setErrorMessage(''); setEmail(e.target.value.trim()) }}\n />\n\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"mt-[2px] border-[#1d1d1f]\" />\n <label\n className=\"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline\"\n onClick={() => setPolicy(v => !v)}\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n\n {(errorMessage || successMessage) && (\n <div className={cn('text-[14px] font-[700]', errorMessage && 'text-[#f84d4f]', successMessage && 'text-[#52c41a]')}>\n <Text html={successMessage || errorMessage} />\n </div>\n )}\n\n <button\n className={cn('w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60', rounded ? 'rounded-[4px]' : 'rounded-none')}\n disabled={loading}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </button>\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Checkbox, Text } from '@anker-in/headless-ui'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { emailValidate } from '../../../credits/context/utils'\nimport { useMemberPopupContext } from '../../context/provider'\nimport type { SubscribeModalCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: SubscribeModalCopy\n email?: string\n onClose: () => void\n}\n\nfunction getAdCookie() {\n if (typeof window === 'undefined') return { register_source: '' }\n const { search, href } = window.location\n const query = parse(search)\n return {\n fbuy_ref_code: Cookies.get('fbuy_ref_code'),\n ref: Cookies.get('ref_ads'),\n inviter_code: query.ic ?? query.inviter_code ?? Cookies.get('inviter_code'),\n register_source: query.redirect ?? Cookies.get('reg_source') ?? href,\n }\n}\n\nexport default function SubscribeEmailPanel({ copy, email: initialEmail, onClose }: Props) {\n const { alpcConfig, setIsSubscribeSuccess, fetchCreditInfo, profile } = useMemberPopupContext()\n const { brand, locale } = alpcConfig\n const { brand: headlessBrand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(copy.policyDefaultChecked ?? false)\n const [email, setEmail] = useState(initialEmail ?? '')\n const [errorMessage, setErrorMessage] = useState('')\n const [successMessage, setSuccessMessage] = useState('')\n const [loading, setLoading] = useState(false)\n\n useEffect(() => {\n if (initialEmail) setEmail(initialEmail)\n }, [initialEmail])\n\n const handleSubmit = useCallback(async () => {\n setErrorMessage('')\n if (!email) return setErrorMessage('Please fill in your email')\n if (!emailValidate(email)) return setErrorMessage('Invalid email address')\n if (!policy) return setErrorMessage('Please agree to the policy')\n\n setLoading(true)\n const { register_source } = getAdCookie()\n try {\n const response = await fetch('/api/multipass/subscribe/subscribe_emails', {\n method: 'POST',\n headers: { 'Content-Type': 'application/json', 'current-language': locale },\n body: JSON.stringify({\n email,\n register_source,\n brand,\n deals_type: copy.dealsType ?? 'vip_subscribe',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n setIsSubscribeSuccess(true)\n if (profile?.user_id) setTimeout(() => fetchCreditInfo(profile.user_id), 3000)\n gaTrack({\n event: 'ga4Event',\n event_name: 'subscribe',\n event_parameters: {\n page_group: copy.dealsType ?? '',\n position: 'sticky',\n info: '',\n },\n })\n setTimeout(() => {\n setSuccessMessage('')\n onClose()\n }, 3000)\n } else {\n setErrorMessage(result.errors ?? 'Error occurred')\n }\n } catch {\n setErrorMessage('Network error')\n } finally {\n setLoading(false)\n }\n }, [email, policy, locale, brand, copy, onClose, setIsSubscribeSuccess])\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && (\n <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>\n )}\n {copy.desc && (\n <Text className=\"text-[16px] text-[#1e2024]\" html={copy.desc} />\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n <input\n className={cn(\n 'h-[46px] w-full border px-[14px] text-[16px] outline-none placeholder:text-[#999]',\n errorMessage ? 'border-[#f84d4f]' : 'border-[#d8d8d8]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => { setErrorMessage(''); setEmail(e.target.value.trim()) }}\n />\n\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"mt-[2px] border-[#1d1d1f]\" />\n <label\n className=\"cursor-pointer text-left text-[14px] text-[#1e2024] [&_a]:underline\"\n onClick={() => setPolicy(v => !v)}\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n\n {(errorMessage || successMessage) && (\n <div className={cn('text-[14px] font-[700]', errorMessage && 'text-[#f84d4f]', successMessage && 'text-[#52c41a]')}>\n <Text html={successMessage || errorMessage} />\n </div>\n )}\n\n <button\n className={cn('w-full cursor-pointer bg-[#080a0f] py-[14px] text-[14px] font-[700] text-white disabled:opacity-60', rounded ? 'rounded-[4px]' : 'rounded-none')}\n disabled={loading}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </button>\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["jsx", "jsxs", "useCallback", "useEffect", "useState", "Checkbox", "Text", "gaTrack", "cn", "useHeadlessContext", "Cookies", "parse", "emailValidate", "useMemberPopupContext", "ROUNDED_BRANDS", "getAdCookie", "search", "href", "query", "SubscribeEmailPanel", "copy", "initialEmail", "onClose", "alpcConfig", "setIsSubscribeSuccess", "fetchCreditInfo", "profile", "brand", "locale", "headlessBrand", "rounded", "policy", "setPolicy", "email", "setEmail", "errorMessage", "setErrorMessage", "successMessage", "setSuccessMessage", "loading", "setLoading", "handleSubmit", "register_source", "result", "e", "v"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as n}from"react/jsx-runtime";import{useMemo as m}from"react";import{gaTrack as L,classNames as d,useHeadlessContext as w}from"@anker-in/lib";import{useMemberPopupContext as A}from"../../context/provider";import{useViewStack as B}from"../../context/viewStack";import{useSubscribed as I}from"./hooks/useSubscribed";import{EarnCreditsTaskType as s,MemberPopupPanelType as b}from"../../type";import{IconBag as U,IconLock as M,IconSubscription as y,IconOrders as R}from"../../icons";import{numberFormat as T}from"../../../credits/context/utils";import{ROUNDED_BRANDS as D}from"../../../../constants";function F({id:a,className:i}){switch(a){case s.Activate:return t(M,{className:i});case s.Subscribe:return t(y,{className:i});case s.Shop:return t(U,{className:i});case s.CompleteProfile:return t(R,{className:i})}}function O({copy:a}){const{profile:i,openSignUpPopup:l,alpcConfig:v,creditInfo:f,isSubscribeSuccess:g,isActivateSuccess:N,isProfileCompleteSuccess:x}=A(),{pushView:c}=B(),{locale:P}=v,{brand:k}=w(),u=D.includes(k);console.log("creditInfo",f);const o=!!i,h=I({userId:i?.user_id,brand:k,email:i?.email,locale:P,apiBaseUrl:v.apiBaseUrl}),C=m(()=>x||!!(i?.first_name||i?.last_name)&&!!i?.phone_number&&!!i?.dob,[i,x]);function p(e){const r={[s.Activate]:"activate",[s.CompleteProfile]:"complete_profile",[s.Subscribe]:"subscribe",[s.Shop]:"shop"};L({event:"ga4Event",event_name:"lp_button",event_parameters:{position:"earn_credits",button_name:r[e],info:"Member Floating Window"}})}const S=m(()=>({[s.Activate]:{finished:!!i?.activated||N,onClick:o?()=>{p(s.Activate),c({type:b.Activate})}:l},[s.CompleteProfile]:{finished:C,onClick:o?()=>{p(s.CompleteProfile),c({type:b.CompleteProfile})}:l},[s.Subscribe]:{finished:h||g,onClick:o?()=>{p(s.Subscribe),c({type:b.SubscribeEmail})}:l},[s.Shop]:{finished:!1,link:a.goShopLink,onClick:o?()=>p(s.Shop):l}}),[i,o,N,x,C,h,g,l,c,a.goShopLink]),_=m(()=>a.list.map(e=>{const r=S[e.id];if(!r)return null;const E=r.finished?a.completed:o?V(e.id,a):a.joinNow;return{...e,...r,buttonLabel:E}}).filter(Boolean),[a,S,o]);return n("div",{className:"flex flex-col gap-[16px]",children:[n("div",{className:"flex flex-col gap-[16px]",children:[t("div",{className:"flex flex-col gap-[8px]",children:a.title&&t("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:a.title})}),o&&n("div",{className:d("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",u?"rounded-[8px]":"rounded-none"),children:[n("div",{className:"flex flex-1 flex-col gap-[4px]",children:[t("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:a.balanceLabel??"AnkerCredits Balance"}),n("div",{className:"flex items-end gap-[4px]",children:[t("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:T(f?.available_credit??0)}),t("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:a.creditUnit??"ankercredits"})]})]}),t("div",{className:"h-full w-px bg-[#dadce0]"}),n("div",{className:"flex flex-1 flex-col gap-[4px]",children:[t("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:a.comingSoonLabel??"Coming Soon"}),n("div",{className:"flex items-end gap-[4px]",children:[t("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:T(f?.pending_credit??0)}),t("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:a.creditUnit??"ankercredits"})]})]})]})]}),n("div",{className:"flex flex-col gap-[16px]",children:[a.subtitle&&t("p",{className:"text-[16px] font-[700] text-[#1e2024]",children:a.subtitle}),t("div",{className:"flex flex-col",children:_.map((e,r)=>n("div",{className:"relative py-[16px]",children:[r>0&&t("div",{className:"absolute left-0 right-0 top-0 h-px bg-[#dadce0]"}),n("div",{className:d("flex items-center gap-[12px]"),children:[t(F,{id:e.id,className:"size-[24px] shrink-0"}),n("div",{className:"flex-1",children:[t("div",{className:"text-[16px] font-[700] text-[#1e2024]",children:e.title}),e.description&&t("div",{className:"mt-[4px] text-[14px] font-[700] text-[#4a4c56]",children:e.description})]}),!e.finished&&e.link&&o?t("a",{href:e.link,target:"_blank",rel:"noopener noreferrer",className:d("cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",u?"rounded-[4px]":"rounded-none"),onClick:()=>p(e.id),children:e.buttonLabel}):t("button",{className:d("cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",e.finished?"bg-[#767880]":"bg-[#080a0f]",u?"rounded-[4px]":"rounded-none",e.finished&&"opacity-60"),disabled:e.finished,onClick:e.finished?void 0:e.onClick,children:e.buttonLabel})]})]},r))})]})]})}function V(a,i){switch(a){case s.Activate:return i.activate;case s.CompleteProfile:return i.completeProfileLabel;case s.Subscribe:return i.subscribeLabel;case s.Shop:return i.shopNow}}var X=O;export{X as default};
1
+ import{jsx as i,jsxs as n}from"react/jsx-runtime";import{useEffect as w,useMemo as u}from"react";import{gaTrack as A,classNames as c,useHeadlessContext as B}from"@anker-in/lib";import{useMemberPopupContext as I}from"../../context/provider";import{useViewStack as U}from"../../context/viewStack";import{useSubscribed as M}from"./hooks/useSubscribed";import{EarnCreditsTaskType as s,MemberPopupPanelType as m}from"../../type";import{IconBag as y,IconLock as R,IconSubscription as D,IconOrders as F}from"../../icons";import{numberFormat as T}from"../../../credits/context/utils";import{ROUNDED_BRANDS as O}from"../../../../constants";function V({id:a,className:e}){switch(a){case s.Activate:return i(R,{className:e});case s.Subscribe:return i(D,{className:e});case s.Shop:return i(y,{className:e});case s.CompleteProfile:return i(F,{className:e})}}function z({copy:a}){const{profile:e,openSignUpPopup:l,alpcConfig:b,creditInfo:v,fetchCreditInfo:_,isSubscribeSuccess:g,isActivateSuccess:C,isProfileCompleteSuccess:f}=I(),{pushView:p}=U(),{locale:E}=b,{brand:N}=B(),x=O.includes(N);w(()=>{e?.user_id&&_(e.user_id)},[]);const o=!!e,h=M({userId:e?.user_id,brand:N,email:e?.email,locale:E,apiBaseUrl:b.apiBaseUrl}),k=u(()=>f||!!(e?.first_name||e?.last_name)&&!!e?.phone_number&&!!e?.dob,[e,f]);function d(t){const r={[s.Activate]:"activate",[s.CompleteProfile]:"complete_profile",[s.Subscribe]:"subscribe",[s.Shop]:"shop"};A({event:"ga4Event",event_name:"lp_button",event_parameters:{position:"earn_credits",button_name:r[t],info:"Member Floating Window"}})}const S=u(()=>({[s.Activate]:{finished:!!e?.activated||C,onClick:o?()=>{d(s.Activate),p({type:m.Activate})}:l},[s.CompleteProfile]:{finished:k,onClick:o?()=>{d(s.CompleteProfile),p({type:m.CompleteProfile})}:l},[s.Subscribe]:{finished:h||g,onClick:o?()=>{d(s.Subscribe),p({type:m.SubscribeEmail})}:l},[s.Shop]:{finished:!1,link:a.goShopLink,onClick:o?()=>d(s.Shop):l}}),[e,o,C,f,k,h,g,l,p,a.goShopLink]),P=u(()=>a.list.map(t=>{const r=S[t.id];if(!r)return null;const L=r.finished?a.completed:o?H(t.id,a):a.joinNow;return{...t,...r,buttonLabel:L}}).filter(Boolean),[a,S,o]);return n("div",{className:"flex flex-col gap-[16px]",children:[n("div",{className:"flex flex-col gap-[16px]",children:[i("div",{className:"flex flex-col gap-[8px]",children:a.title&&i("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:a.title})}),o&&n("div",{className:c("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",x?"rounded-[8px]":"rounded-none"),children:[n("div",{className:"flex flex-1 flex-col gap-[4px]",children:[i("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:a.balanceLabel??"AnkerCredits Balance"}),n("div",{className:"flex items-end gap-[4px]",children:[i("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:T(v?.available_credit??0)}),i("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:a.creditUnit??"ankercredits"})]})]}),i("div",{className:"h-full w-px bg-[#dadce0]"}),n("div",{className:"flex flex-1 flex-col gap-[4px]",children:[i("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:a.comingSoonLabel??"Coming Soon"}),n("div",{className:"flex items-end gap-[4px]",children:[i("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:T(v?.pending_credit??0)}),i("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:a.creditUnit??"ankercredits"})]})]})]})]}),n("div",{className:"flex flex-col gap-[16px]",children:[a.subtitle&&i("p",{className:"text-[16px] font-[700] text-[#1e2024]",children:a.subtitle}),i("div",{className:"flex flex-col",children:P.map((t,r)=>n("div",{className:"relative py-[16px]",children:[r>0&&i("div",{className:"absolute left-0 right-0 top-0 h-px bg-[#dadce0]"}),n("div",{className:c("flex items-center gap-[12px]"),children:[i(V,{id:t.id,className:"size-[24px] shrink-0"}),n("div",{className:"flex-1",children:[i("div",{className:"text-[16px] font-[700] text-[#1e2024]",children:t.title}),t.credits&&i("div",{className:"mt-[4px] text-[14px] font-bold text-[#4A4C56]",children:t.credits})]}),!t.finished&&t.link&&o?i("a",{href:t.link,target:"_blank",rel:"noopener noreferrer",className:c("cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",x?"rounded-[4px]":"rounded-none"),onClick:()=>d(t.id),children:t.buttonLabel}):i("button",{className:c("cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",t.finished?"bg-[#767880]":"bg-[#080a0f]",x?"rounded-[4px]":"rounded-none",t.finished&&"opacity-60"),disabled:t.finished,onClick:t.finished?void 0:t.onClick,children:t.buttonLabel})]})]},r))})]})]})}function H(a,e){switch(a){case s.Activate:return e.activate;case s.CompleteProfile:return e.completeProfileLabel;case s.Subscribe:return e.subscribeLabel;case s.Shop:return e.shopNow}}var Z=z;export{Z as default};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/index.tsx"],
4
- "sourcesContent": ["import { useMemo } from 'react'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useViewStack } from '../../context/viewStack'\nimport { useSubscribed } from './hooks/useSubscribed'\nimport { EarnCreditsTaskType, MemberPopupPanelType, type EarnCreditsCopy } from '../../type'\nimport { IconBag, IconLock, IconSubscription, IconOrders } from '../../icons'\nimport { numberFormat } from '../../../credits/context/utils'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\nfunction TaskIcon({ id, className }: { id: EarnCreditsTaskType; className?: string }) {\n switch (id) {\n case EarnCreditsTaskType.Activate:\n return <IconLock className={className} />\n case EarnCreditsTaskType.Subscribe:\n return <IconSubscription className={className} />\n case EarnCreditsTaskType.Shop:\n return <IconBag className={className} />\n case EarnCreditsTaskType.CompleteProfile:\n return <IconOrders className={className} />\n }\n}\n\ntype Props = {\n copy: EarnCreditsCopy\n}\n\nfunction EarnCredits({ copy }: Props) {\n const {\n profile,\n openSignUpPopup,\n alpcConfig,\n creditInfo,\n isSubscribeSuccess,\n isActivateSuccess,\n isProfileCompleteSuccess,\n } = useMemberPopupContext()\n const { pushView } = useViewStack()\n const { locale } = alpcConfig\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n console.log('creditInfo', creditInfo)\n\n const isLogin = !!profile\n\n const isSubscribed = useSubscribed({\n userId: profile?.user_id,\n brand: brand,\n email: profile?.email,\n locale,\n apiBaseUrl: alpcConfig.apiBaseUrl,\n })\n\n const profileCompleted = useMemo(() => {\n return (\n isProfileCompleteSuccess ||\n (!!(profile?.first_name || profile?.last_name) && !!profile?.phone_number && !!profile?.dob)\n )\n }, [profile, isProfileCompleteSuccess])\n\n function trackTaskButton(taskId: EarnCreditsTaskType) {\n const taskButtonNameMap: Record<EarnCreditsTaskType, string> = {\n [EarnCreditsTaskType.Activate]: 'activate',\n [EarnCreditsTaskType.CompleteProfile]: 'complete_profile',\n [EarnCreditsTaskType.Subscribe]: 'subscribe',\n [EarnCreditsTaskType.Shop]: 'shop',\n }\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n position: 'earn_credits',\n button_name: taskButtonNameMap[taskId],\n info: 'Member Floating Window',\n },\n })\n }\n\n const taskStates: Record<EarnCreditsTaskType, { finished: boolean; onClick?: () => void; link?: string }> = useMemo(\n () => ({\n [EarnCreditsTaskType.Activate]: {\n finished: !!profile?.activated || isActivateSuccess,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.Activate)\n pushView({\n type: MemberPopupPanelType.Activate,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.CompleteProfile]: {\n finished: profileCompleted,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.CompleteProfile)\n pushView({\n type: MemberPopupPanelType.CompleteProfile,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Subscribe]: {\n finished: isSubscribed || isSubscribeSuccess,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.Subscribe)\n pushView({\n type: MemberPopupPanelType.SubscribeEmail,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Shop]: {\n finished: false,\n link: copy.goShopLink,\n onClick: isLogin ? () => trackTaskButton(EarnCreditsTaskType.Shop) : openSignUpPopup,\n },\n }),\n [\n profile,\n isLogin,\n isActivateSuccess,\n isProfileCompleteSuccess,\n profileCompleted,\n isSubscribed,\n isSubscribeSuccess,\n openSignUpPopup,\n pushView,\n copy.goShopLink,\n ]\n )\n\n const list = useMemo(() => {\n return copy.list\n .map(item => {\n const state = taskStates[item.id]\n if (!state) return null\n const buttonLabel = state.finished\n ? copy.completed\n : isLogin\n ? getNotFinishedLabel(item.id, copy)\n : copy.joinNow\n return { ...item, ...state, buttonLabel }\n })\n .filter(Boolean) as ((typeof copy.list)[number] & {\n finished: boolean\n onClick?: () => void\n link?: string\n buttonLabel: string\n })[]\n }, [copy, taskStates, isLogin])\n\n return (\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\n </div>\n\n {isLogin && (\n <div\n className={cn(\n 'flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]',\n rounded ? 'rounded-[8px]' : 'rounded-none'\n )}\n >\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.balanceLabel ?? 'AnkerCredits Balance'}</div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo?.available_credit ?? 0)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n <div className=\"h-full w-px bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.comingSoonLabel ?? 'Coming Soon'}</div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo?.pending_credit ?? 0)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n {copy.subtitle && <p className=\"text-[16px] font-[700] text-[#1e2024]\">{copy.subtitle}</p>}\n\n <div className=\"flex flex-col\">\n {list.map((item, idx) => (\n <div key={idx} className=\"relative py-[16px]\">\n {idx > 0 && <div className=\"absolute left-0 right-0 top-0 h-px bg-[#dadce0]\" />}\n <div className={cn('flex items-center gap-[12px]')}>\n <TaskIcon id={item.id} className=\"size-[24px] shrink-0\" />\n <div className=\"flex-1\">\n <div className=\"text-[16px] font-[700] text-[#1e2024]\">{item.title}</div>\n {item.description && (\n <div className=\"mt-[4px] text-[14px] font-[700] text-[#4a4c56]\">{item.description}</div>\n )}\n </div>\n {!item.finished && item.link && isLogin ? (\n <a\n href={item.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n onClick={() => trackTaskButton(item.id)}\n >\n {item.buttonLabel}\n </a>\n ) : (\n <button\n className={cn(\n 'cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white',\n item.finished ? 'bg-[#767880]' : 'bg-[#080a0f]',\n rounded ? 'rounded-[4px]' : 'rounded-none',\n item.finished && 'opacity-60'\n )}\n disabled={item.finished}\n onClick={!item.finished ? item.onClick : undefined}\n >\n {item.buttonLabel}\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getNotFinishedLabel(id: EarnCreditsTaskType, copy: EarnCreditsCopy): string {\n switch (id) {\n case EarnCreditsTaskType.Activate:\n return copy.activate\n case EarnCreditsTaskType.CompleteProfile:\n return copy.completeProfileLabel\n case EarnCreditsTaskType.Subscribe:\n return copy.subscribeLabel\n case EarnCreditsTaskType.Shop:\n return copy.shopNow\n }\n}\n\nexport default EarnCredits\n"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "useMemo", "gaTrack", "cn", "useHeadlessContext", "useMemberPopupContext", "useViewStack", "useSubscribed", "EarnCreditsTaskType", "MemberPopupPanelType", "IconBag", "IconLock", "IconSubscription", "IconOrders", "numberFormat", "ROUNDED_BRANDS", "TaskIcon", "id", "className", "EarnCredits", "copy", "profile", "openSignUpPopup", "alpcConfig", "creditInfo", "isSubscribeSuccess", "isActivateSuccess", "isProfileCompleteSuccess", "pushView", "locale", "brand", "rounded", "isLogin", "isSubscribed", "profileCompleted", "trackTaskButton", "taskId", "taskButtonNameMap", "taskStates", "list", "item", "state", "buttonLabel", "getNotFinishedLabel", "idx", "EarnCredits_default"]
4
+ "sourcesContent": ["import { useEffect, useMemo } from 'react'\nimport { gaTrack, classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useViewStack } from '../../context/viewStack'\nimport { useSubscribed } from './hooks/useSubscribed'\nimport { EarnCreditsTaskType, MemberPopupPanelType, type EarnCreditsCopy } from '../../type'\nimport { IconBag, IconLock, IconSubscription, IconOrders } from '../../icons'\nimport { numberFormat } from '../../../credits/context/utils'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\nfunction TaskIcon({ id, className }: { id: EarnCreditsTaskType; className?: string }) {\n switch (id) {\n case EarnCreditsTaskType.Activate:\n return <IconLock className={className} />\n case EarnCreditsTaskType.Subscribe:\n return <IconSubscription className={className} />\n case EarnCreditsTaskType.Shop:\n return <IconBag className={className} />\n case EarnCreditsTaskType.CompleteProfile:\n return <IconOrders className={className} />\n }\n}\n\ntype Props = {\n copy: EarnCreditsCopy\n}\n\nfunction EarnCredits({ copy }: Props) {\n const {\n profile,\n openSignUpPopup,\n alpcConfig,\n creditInfo,\n fetchCreditInfo,\n isSubscribeSuccess,\n isActivateSuccess,\n isProfileCompleteSuccess,\n } = useMemberPopupContext()\n const { pushView } = useViewStack()\n const { locale } = alpcConfig\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n useEffect(() => {\n if (profile?.user_id) fetchCreditInfo(profile.user_id)\n }, [])\n\n const isLogin = !!profile\n\n const isSubscribed = useSubscribed({\n userId: profile?.user_id,\n brand: brand,\n email: profile?.email,\n locale,\n apiBaseUrl: alpcConfig.apiBaseUrl,\n })\n\n const profileCompleted = useMemo(() => {\n return (\n isProfileCompleteSuccess ||\n (!!(profile?.first_name || profile?.last_name) && !!profile?.phone_number && !!profile?.dob)\n )\n }, [profile, isProfileCompleteSuccess])\n\n function trackTaskButton(taskId: EarnCreditsTaskType) {\n const taskButtonNameMap: Record<EarnCreditsTaskType, string> = {\n [EarnCreditsTaskType.Activate]: 'activate',\n [EarnCreditsTaskType.CompleteProfile]: 'complete_profile',\n [EarnCreditsTaskType.Subscribe]: 'subscribe',\n [EarnCreditsTaskType.Shop]: 'shop',\n }\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n event_parameters: {\n position: 'earn_credits',\n button_name: taskButtonNameMap[taskId],\n info: 'Member Floating Window',\n },\n })\n }\n\n const taskStates: Record<EarnCreditsTaskType, { finished: boolean; onClick?: () => void; link?: string }> = useMemo(\n () => ({\n [EarnCreditsTaskType.Activate]: {\n finished: !!profile?.activated || isActivateSuccess,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.Activate)\n pushView({\n type: MemberPopupPanelType.Activate,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.CompleteProfile]: {\n finished: profileCompleted,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.CompleteProfile)\n pushView({\n type: MemberPopupPanelType.CompleteProfile,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Subscribe]: {\n finished: isSubscribed || isSubscribeSuccess,\n onClick: isLogin\n ? () => {\n trackTaskButton(EarnCreditsTaskType.Subscribe)\n pushView({\n type: MemberPopupPanelType.SubscribeEmail,\n })\n }\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Shop]: {\n finished: false,\n link: copy.goShopLink,\n onClick: isLogin ? () => trackTaskButton(EarnCreditsTaskType.Shop) : openSignUpPopup,\n },\n }),\n [\n profile,\n isLogin,\n isActivateSuccess,\n isProfileCompleteSuccess,\n profileCompleted,\n isSubscribed,\n isSubscribeSuccess,\n openSignUpPopup,\n pushView,\n copy.goShopLink,\n ]\n )\n\n const list = useMemo(() => {\n return copy.list\n .map(item => {\n const state = taskStates[item.id]\n if (!state) return null\n const buttonLabel = state.finished\n ? copy.completed\n : isLogin\n ? getNotFinishedLabel(item.id, copy)\n : copy.joinNow\n return { ...item, ...state, buttonLabel }\n })\n .filter(Boolean) as ((typeof copy.list)[number] & {\n finished: boolean\n onClick?: () => void\n link?: string\n buttonLabel: string\n })[]\n }, [copy, taskStates, isLogin])\n\n return (\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[16px]\">\n <div className=\"flex flex-col gap-[8px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\n </div>\n\n {isLogin && (\n <div\n className={cn(\n 'flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]',\n rounded ? 'rounded-[8px]' : 'rounded-none'\n )}\n >\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.balanceLabel ?? 'AnkerCredits Balance'}</div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo?.available_credit ?? 0)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n <div className=\"h-full w-px bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.comingSoonLabel ?? 'Coming Soon'}</div>\n <div className=\"flex items-end gap-[4px]\">\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {numberFormat(creditInfo?.pending_credit ?? 0)}\n </span>\n <span className=\"text-[14px] font-[700] leading-[1.4] text-[#1e2024]\">\n {copy.creditUnit ?? 'ankercredits'}\n </span>\n </div>\n </div>\n </div>\n )}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n {copy.subtitle && <p className=\"text-[16px] font-[700] text-[#1e2024]\">{copy.subtitle}</p>}\n\n <div className=\"flex flex-col\">\n {list.map((item, idx) => (\n <div key={idx} className=\"relative py-[16px]\">\n {idx > 0 && <div className=\"absolute left-0 right-0 top-0 h-px bg-[#dadce0]\" />}\n <div className={cn('flex items-center gap-[12px]')}>\n <TaskIcon id={item.id} className=\"size-[24px] shrink-0\" />\n <div className=\"flex-1\">\n <div className=\"text-[16px] font-[700] text-[#1e2024]\">{item.title}</div>\n {item.credits && (\n <div className=\"mt-[4px] text-[14px] font-bold text-[#4A4C56]\">{item.credits}</div>\n )}\n </div>\n {!item.finished && item.link && isLogin ? (\n <a\n href={item.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n onClick={() => trackTaskButton(item.id)}\n >\n {item.buttonLabel}\n </a>\n ) : (\n <button\n className={cn(\n 'cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white',\n item.finished ? 'bg-[#767880]' : 'bg-[#080a0f]',\n rounded ? 'rounded-[4px]' : 'rounded-none',\n item.finished && 'opacity-60'\n )}\n disabled={item.finished}\n onClick={!item.finished ? item.onClick : undefined}\n >\n {item.buttonLabel}\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n )\n}\n\nfunction getNotFinishedLabel(id: EarnCreditsTaskType, copy: EarnCreditsCopy): string {\n switch (id) {\n case EarnCreditsTaskType.Activate:\n return copy.activate\n case EarnCreditsTaskType.CompleteProfile:\n return copy.completeProfileLabel\n case EarnCreditsTaskType.Subscribe:\n return copy.subscribeLabel\n case EarnCreditsTaskType.Shop:\n return copy.shopNow\n }\n}\n\nexport default EarnCredits\n"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "useEffect", "useMemo", "gaTrack", "cn", "useHeadlessContext", "useMemberPopupContext", "useViewStack", "useSubscribed", "EarnCreditsTaskType", "MemberPopupPanelType", "IconBag", "IconLock", "IconSubscription", "IconOrders", "numberFormat", "ROUNDED_BRANDS", "TaskIcon", "id", "className", "EarnCredits", "copy", "profile", "openSignUpPopup", "alpcConfig", "creditInfo", "fetchCreditInfo", "isSubscribeSuccess", "isActivateSuccess", "isProfileCompleteSuccess", "pushView", "locale", "brand", "rounded", "isLogin", "isSubscribed", "profileCompleted", "trackTaskButton", "taskId", "taskButtonNameMap", "taskStates", "list", "item", "state", "buttonLabel", "getNotFinishedLabel", "idx", "EarnCredits_default"]
7
7
  }
@@ -92,7 +92,6 @@ export type EarnCreditsCopy = {
92
92
  list: {
93
93
  id: EarnCreditsTaskType;
94
94
  title: string;
95
- description: string;
96
95
  credits?: string;
97
96
  }[];
98
97
  authCodeActivate: AuthCodeActivateCopy;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/memberPopup/type.ts"],
4
- "sourcesContent": ["import type { AuthCodeActivateCopy } from '../registration/authCodeActivate/type'\nimport type { CreditInfoResponse } from '../credits/context/response'\nimport type { DTC_TASK_TYPE } from '../credits/context/const'\n\nexport type { AuthCodeActivateCopy }\n\n// \u2500\u2500\u2500 \u9762\u677F\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupPanelType {\n EarnCredits = 'EARN_CREDITS',\n ConsumeCredits = 'CONSUME_CREDITS',\n Referral = 'REFERRAL',\n CompleteProfile = 'COMPLETE_PROFILE',\n Subscribe = 'SUBSCRIBE',\n SubscribeEmail = 'SUBSCRIBE_EMAIL',\n RedeemCoupon = 'REDEEM_COUPON',\n Activate = 'ACTIVATE',\n}\n\n// \u2500\u2500\u2500 item action \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupActionType {\n ExternalLink = 'EXTERNAL_LINK',\n OpenEarnCredits = 'OPEN_EARN_CREDITS',\n OpenConsumeCredits = 'OPEN_CONSUME_CREDITS',\n OpenReferral = 'OPEN_REFERRAL',\n OpenSubscribe = 'OPEN_SUBSCRIBE',\n}\n\n// \u2500\u2500\u2500 EarnCredits \u4EFB\u52A1\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum EarnCreditsTaskType {\n Activate = 'activate',\n CompleteProfile = 'completeProfile',\n Subscribe = 'subscribe',\n Shop = 'shop',\n}\n\n// \u2500\u2500\u2500 ConsumeCredits item \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum ConsumeCreditsItemType {\n Coupon = 'COUPON',\n RedeemAndBuy = 'REDEEM_AND_BUY',\n GiftCard = 'GIFT_CARD',\n Product = 'PRODUCT',\n}\n\n// \u2500\u2500\u2500 \u901A\u7528 link\uFF08\u7EDF\u4E00\u4E00\u79CD\u7C7B\u578B\uFF09 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupLink = {\n type: MemberPopupActionType\n label: string\n url?: string // \u4EC5 ExternalLink \u65F6\u4F7F\u7528\n}\n\n// \u2500\u2500\u2500 list item \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupItem = {\n title: string\n description?: string\n links: MemberPopupLink[]\n}\n\n// \u2500\u2500 \u4E3B\u7EC4\u4EF6 Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupPageScope {\n /** \u5168\u5C40\u5C55\u793A */\n Global = 'GLOBAL',\n /** \u4EC5\u5728\u7279\u5B9A\u9875\u9762\u5C55\u793A */\n Include = 'INCLUDE',\n /** \u5728\u7279\u5B9A\u9875\u9762\u4E0D\u5C55\u793A */\n Exclude = 'EXCLUDE',\n}\n\nexport type MemberPopupPageConfig = {\n scope: MemberPopupPageScope\n /** \u9875\u9762\u8DEF\u5F84\u5217\u8868\uFF0C\u652F\u6301\u7CBE\u786E\u5339\u914D\u548C\u524D\u7F00\u5339\u914D\uFF08\u5982 \"/products\" \u4F1A\u5339\u914D \"/products/xxx\"\uFF09 */\n pages: string[]\n}\n\nexport type MemberPopupCopy = {\n triggerImg: { url: string; alt?: string }\n title?: string\n subtitle?: string\n list: MemberPopupItem[]\n footer?: {\n loginHint: string\n loginLabel: string\n joinLabel: string\n shopLabel: string\n shopUrl?: string\n }\n activitiesSubscribe?: SubscribeModalCopy\n earnCredits?: EarnCreditsCopy\n consumeCredits?: ConsumeCreditsopy\n referral?: ReferralCopy\n /** \u9875\u9762\u8986\u76D6\u8303\u56F4\u914D\u7F6E\uFF0C\u9ED8\u8BA4\u5168\u5C40\u5C55\u793A */\n pageConfig?: MemberPopupPageConfig\n}\n\n// \u2500\u2500\u2500 EarnCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type EarnCreditsCopy = {\n title?: string\n subtitle?: string\n balanceLabel?: string\n comingSoonLabel?: string\n creditUnit?: string\n joinNow: string\n completed: string\n activate: string\n completeProfileLabel: string\n subscribeLabel: string\n shopNow: string\n goShopLink?: string\n list: {\n id: EarnCreditsTaskType\n title: string\n description: string\n credits?: string\n }[]\n // \u5B50\u5F39\u7A97\u6587\u6848\n authCodeActivate: AuthCodeActivateCopy\n completeProfile: CompleteProfileCopy\n subscribe: SubscribeModalCopy\n}\n\nexport type CompleteProfileCopy = {\n title: string\n subtitle?: string\n firstName: string\n lastName: string\n email: string\n phone: string\n birthday: string\n country: string\n save: string\n cancel: string\n edit: string\n required: string\n}\n\nexport type SubscribeModalCopy = {\n title: string\n desc?: string\n placeholder: string\n policy?: string\n policyDefaultChecked?: boolean\n successTips?: string\n subscribedLabel?: string\n dealsType?: string\n buttonLabel?: string\n single_brand_subscribe?: boolean\n genre?: string\n sub_brand_type?: string\n promo?: {\n title?: string\n description?: string\n learnMoreLabel?: string\n learnMoreUrl?: string\n image?: { url: string; alt?: string }\n }\n}\n\n// \u2500\u2500\u2500 ConsumeCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ConsumeCreditsopy = {\n title?: string\n subtitle?: string\n soldOut: string\n unlockRewards: string\n btnRedeem: string\n insufficientCredits?: string\n balanceLabel?: string\n comingSoonLabel?: string\n creditUnit?: string\n off?: string\n imageMapping?: {\n [key in ConsumeCreditsItemType]?: { url: string }\n }\n list: ConsumeCreditsItem[]\n redeemModal: RedeemCouponModalCopy\n creditsPage?: { label: string; url: string; redeemListSectionId?: string }\n}\n\nexport type ConsumeCreditsItem = {\n redeemId: string | number\n title: string\n description?: string\n image: { url: string; alt?: string }\n type: ConsumeCreditsItemType\n product?: { handle: string; sku: string }\n price?: number\n value?: string\n rules?: string[]\n}\n\nexport type RedeemCouponModalCopy = {\n confirmTitle: string\n confirmButton: string\n off?: string\n commonError: string\n redeemLimitError: string\n inventoryNotEnough: string\n creditsNotEnough: string\n crossSiteError: string\n successTitle: string\n successDesc: string\n successButton: string\n successButtonUrl?: string\n}\n\n// \u2500\u2500\u2500 Referral Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ReferralCopy = {\n title?: string\n description?: string\n cashAvailableLabel: string\n cashPendingLabel: string\n creditUnit?: string\n referralLinksLabel?: string\n referralLinkBaseUrl?: string\n copyLabel?: string\n copiedLabel?: string\n howToTitle?: string\n howToDescription?: string\n learnMoreLabel?: string\n learnMoreUrl?: string\n image?: { url: string; alt?: string }\n ctaButton: string\n ctaUrl?: string\n loginTitle?: string\n loginDescription?: string\n loginCtaLabel?: string\n}\n\n// \u2500\u2500\u2500 Provider Context \u7C7B\u578B \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type AlpcConfig = {\n brand: string\n locale: string\n appName: string\n apiBaseUrl?: string\n}\n\nexport type MemberPopupContextValue = {\n profile: any\n isLoadingProfile: boolean\n creditInfo?: CreditInfoResponse\n fetchCreditInfo: (userId: string) => void\n openSignUpPopup: () => void\n openSignInPopup: () => void\n taskIdToTypeMapping?: Record<string, DTC_TASK_TYPE>\n alpcConfig: AlpcConfig\n pageHandle?: string\n}\n\nexport type MemberPopupInternalContextValue = MemberPopupContextValue & {\n isSubscribeSuccess: boolean\n setIsSubscribeSuccess: (v: boolean) => void\n isActivateSuccess: boolean\n setIsActivateSuccess: (v: boolean) => void\n isProfileCompleteSuccess: boolean\n setIsProfileCompleteSuccess: (v: boolean) => void\n}\n"],
4
+ "sourcesContent": ["import type { AuthCodeActivateCopy } from '../registration/authCodeActivate/type'\nimport type { CreditInfoResponse } from '../credits/context/response'\nimport type { DTC_TASK_TYPE } from '../credits/context/const'\n\nexport type { AuthCodeActivateCopy }\n\n// \u2500\u2500\u2500 \u9762\u677F\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupPanelType {\n EarnCredits = 'EARN_CREDITS',\n ConsumeCredits = 'CONSUME_CREDITS',\n Referral = 'REFERRAL',\n CompleteProfile = 'COMPLETE_PROFILE',\n Subscribe = 'SUBSCRIBE',\n SubscribeEmail = 'SUBSCRIBE_EMAIL',\n RedeemCoupon = 'REDEEM_COUPON',\n Activate = 'ACTIVATE',\n}\n\n// \u2500\u2500\u2500 item action \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupActionType {\n ExternalLink = 'EXTERNAL_LINK',\n OpenEarnCredits = 'OPEN_EARN_CREDITS',\n OpenConsumeCredits = 'OPEN_CONSUME_CREDITS',\n OpenReferral = 'OPEN_REFERRAL',\n OpenSubscribe = 'OPEN_SUBSCRIBE',\n}\n\n// \u2500\u2500\u2500 EarnCredits \u4EFB\u52A1\u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum EarnCreditsTaskType {\n Activate = 'activate',\n CompleteProfile = 'completeProfile',\n Subscribe = 'subscribe',\n Shop = 'shop',\n}\n\n// \u2500\u2500\u2500 ConsumeCredits item \u7C7B\u578B\u679A\u4E3E \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum ConsumeCreditsItemType {\n Coupon = 'COUPON',\n RedeemAndBuy = 'REDEEM_AND_BUY',\n GiftCard = 'GIFT_CARD',\n Product = 'PRODUCT',\n}\n\n// \u2500\u2500\u2500 \u901A\u7528 link\uFF08\u7EDF\u4E00\u4E00\u79CD\u7C7B\u578B\uFF09 \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupLink = {\n type: MemberPopupActionType\n label: string\n url?: string // \u4EC5 ExternalLink \u65F6\u4F7F\u7528\n}\n\n// \u2500\u2500\u2500 list item \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type MemberPopupItem = {\n title: string\n description?: string\n links: MemberPopupLink[]\n}\n\n// \u2500\u2500 \u4E3B\u7EC4\u4EF6 Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport enum MemberPopupPageScope {\n /** \u5168\u5C40\u5C55\u793A */\n Global = 'GLOBAL',\n /** \u4EC5\u5728\u7279\u5B9A\u9875\u9762\u5C55\u793A */\n Include = 'INCLUDE',\n /** \u5728\u7279\u5B9A\u9875\u9762\u4E0D\u5C55\u793A */\n Exclude = 'EXCLUDE',\n}\n\nexport type MemberPopupPageConfig = {\n scope: MemberPopupPageScope\n /** \u9875\u9762\u8DEF\u5F84\u5217\u8868\uFF0C\u652F\u6301\u7CBE\u786E\u5339\u914D\u548C\u524D\u7F00\u5339\u914D\uFF08\u5982 \"/products\" \u4F1A\u5339\u914D \"/products/xxx\"\uFF09 */\n pages: string[]\n}\n\nexport type MemberPopupCopy = {\n triggerImg: { url: string; alt?: string }\n title?: string\n subtitle?: string\n list: MemberPopupItem[]\n footer?: {\n loginHint: string\n loginLabel: string\n joinLabel: string\n shopLabel: string\n shopUrl?: string\n }\n activitiesSubscribe?: SubscribeModalCopy\n earnCredits?: EarnCreditsCopy\n consumeCredits?: ConsumeCreditsopy\n referral?: ReferralCopy\n /** \u9875\u9762\u8986\u76D6\u8303\u56F4\u914D\u7F6E\uFF0C\u9ED8\u8BA4\u5168\u5C40\u5C55\u793A */\n pageConfig?: MemberPopupPageConfig\n}\n\n// \u2500\u2500\u2500 EarnCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type EarnCreditsCopy = {\n title?: string\n subtitle?: string\n balanceLabel?: string\n comingSoonLabel?: string\n creditUnit?: string\n joinNow: string\n completed: string\n activate: string\n completeProfileLabel: string\n subscribeLabel: string\n shopNow: string\n goShopLink?: string\n list: {\n id: EarnCreditsTaskType\n title: string\n credits?: string\n }[]\n // \u5B50\u5F39\u7A97\u6587\u6848\n authCodeActivate: AuthCodeActivateCopy\n completeProfile: CompleteProfileCopy\n subscribe: SubscribeModalCopy\n}\n\nexport type CompleteProfileCopy = {\n title: string\n subtitle?: string\n firstName: string\n lastName: string\n email: string\n phone: string\n birthday: string\n country: string\n save: string\n cancel: string\n edit: string\n required: string\n}\n\nexport type SubscribeModalCopy = {\n title: string\n desc?: string\n placeholder: string\n policy?: string\n policyDefaultChecked?: boolean\n successTips?: string\n subscribedLabel?: string\n dealsType?: string\n buttonLabel?: string\n single_brand_subscribe?: boolean\n genre?: string\n sub_brand_type?: string\n promo?: {\n title?: string\n description?: string\n learnMoreLabel?: string\n learnMoreUrl?: string\n image?: { url: string; alt?: string }\n }\n}\n\n// \u2500\u2500\u2500 ConsumeCredits Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ConsumeCreditsopy = {\n title?: string\n subtitle?: string\n soldOut: string\n unlockRewards: string\n btnRedeem: string\n insufficientCredits?: string\n balanceLabel?: string\n comingSoonLabel?: string\n creditUnit?: string\n off?: string\n imageMapping?: {\n [key in ConsumeCreditsItemType]?: { url: string }\n }\n list: ConsumeCreditsItem[]\n redeemModal: RedeemCouponModalCopy\n creditsPage?: { label: string; url: string; redeemListSectionId?: string }\n}\n\nexport type ConsumeCreditsItem = {\n redeemId: string | number\n title: string\n description?: string\n image: { url: string; alt?: string }\n type: ConsumeCreditsItemType\n product?: { handle: string; sku: string }\n price?: number\n value?: string\n rules?: string[]\n}\n\nexport type RedeemCouponModalCopy = {\n confirmTitle: string\n confirmButton: string\n off?: string\n commonError: string\n redeemLimitError: string\n inventoryNotEnough: string\n creditsNotEnough: string\n crossSiteError: string\n successTitle: string\n successDesc: string\n successButton: string\n successButtonUrl?: string\n}\n\n// \u2500\u2500\u2500 Referral Copy \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type ReferralCopy = {\n title?: string\n description?: string\n cashAvailableLabel: string\n cashPendingLabel: string\n creditUnit?: string\n referralLinksLabel?: string\n referralLinkBaseUrl?: string\n copyLabel?: string\n copiedLabel?: string\n howToTitle?: string\n howToDescription?: string\n learnMoreLabel?: string\n learnMoreUrl?: string\n image?: { url: string; alt?: string }\n ctaButton: string\n ctaUrl?: string\n loginTitle?: string\n loginDescription?: string\n loginCtaLabel?: string\n}\n\n// \u2500\u2500\u2500 Provider Context \u7C7B\u578B \u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\nexport type AlpcConfig = {\n brand: string\n locale: string\n appName: string\n apiBaseUrl?: string\n}\n\nexport type MemberPopupContextValue = {\n profile: any\n isLoadingProfile: boolean\n creditInfo?: CreditInfoResponse\n fetchCreditInfo: (userId: string) => void\n openSignUpPopup: () => void\n openSignInPopup: () => void\n taskIdToTypeMapping?: Record<string, DTC_TASK_TYPE>\n alpcConfig: AlpcConfig\n pageHandle?: string\n}\n\nexport type MemberPopupInternalContextValue = MemberPopupContextValue & {\n isSubscribeSuccess: boolean\n setIsSubscribeSuccess: (v: boolean) => void\n isActivateSuccess: boolean\n setIsActivateSuccess: (v: boolean) => void\n isProfileCompleteSuccess: boolean\n setIsProfileCompleteSuccess: (v: boolean) => void\n}\n"],
5
5
  "mappings": "AAOO,IAAKA,OACVA,EAAA,YAAc,eACdA,EAAA,eAAiB,kBACjBA,EAAA,SAAW,WACXA,EAAA,gBAAkB,mBAClBA,EAAA,UAAY,YACZA,EAAA,eAAiB,kBACjBA,EAAA,aAAe,gBACfA,EAAA,SAAW,WARDA,OAAA,IAYAC,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,oBAClBA,EAAA,mBAAqB,uBACrBA,EAAA,aAAe,gBACfA,EAAA,cAAgB,iBALNA,OAAA,IASAC,OACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,kBAClBA,EAAA,UAAY,YACZA,EAAA,KAAO,OAJGA,OAAA,IAQAC,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,iBACfA,EAAA,SAAW,YACXA,EAAA,QAAU,UAJAA,OAAA,IAsBAC,OAEVA,EAAA,OAAS,SAETA,EAAA,QAAU,UAEVA,EAAA,QAAU,UANAA,OAAA",
6
6
  "names": ["MemberPopupPanelType", "MemberPopupActionType", "EarnCreditsTaskType", "ConsumeCreditsItemType", "MemberPopupPageScope"]
7
7
  }