@anker-in/campaign-ui 0.5.0-beta.4 → 0.5.0-beta.5

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 (52) hide show
  1. package/dist/cjs/components/credits/context/hooks/useCountries.js +1 -1
  2. package/dist/cjs/components/credits/context/hooks/useCountries.js.map +3 -3
  3. package/dist/cjs/components/memberPopup/MemberPopup.js +1 -1
  4. package/dist/cjs/components/memberPopup/MemberPopup.js.map +3 -3
  5. package/dist/cjs/components/memberPopup/panels/ActivitiesSubscribePanel.d.ts +10 -0
  6. package/dist/cjs/components/memberPopup/panels/ActivitiesSubscribePanel.js +2 -0
  7. package/dist/cjs/components/memberPopup/panels/ActivitiesSubscribePanel.js.map +7 -0
  8. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js +1 -1
  9. package/dist/cjs/components/memberPopup/panels/ConsumeCredits/index.js.map +3 -3
  10. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.d.ts +11 -0
  11. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.js +2 -0
  12. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.js.map +7 -0
  13. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js +1 -1
  14. package/dist/cjs/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +2 -2
  15. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js +1 -1
  16. package/dist/cjs/components/memberPopup/panels/EarnCredits/index.js.map +2 -2
  17. package/dist/cjs/components/memberPopup/panels/Referral/index.js +1 -1
  18. package/dist/cjs/components/memberPopup/panels/Referral/index.js.map +2 -2
  19. package/dist/cjs/components/memberPopup/type.d.ts +14 -2
  20. package/dist/cjs/components/memberPopup/type.js +1 -1
  21. package/dist/cjs/components/memberPopup/type.js.map +2 -2
  22. package/dist/esm/components/credits/context/hooks/useCountries.js +1 -1
  23. package/dist/esm/components/credits/context/hooks/useCountries.js.map +3 -3
  24. package/dist/esm/components/memberPopup/MemberPopup.js +1 -1
  25. package/dist/esm/components/memberPopup/MemberPopup.js.map +3 -3
  26. package/dist/esm/components/memberPopup/panels/ActivitiesSubscribePanel.d.ts +10 -0
  27. package/dist/esm/components/memberPopup/panels/ActivitiesSubscribePanel.js +2 -0
  28. package/dist/esm/components/memberPopup/panels/ActivitiesSubscribePanel.js.map +7 -0
  29. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js +1 -1
  30. package/dist/esm/components/memberPopup/panels/ConsumeCredits/index.js.map +3 -3
  31. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.d.ts +11 -0
  32. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.js +2 -0
  33. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivitiesSubscribePanel.js.map +7 -0
  34. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js +1 -1
  35. package/dist/esm/components/memberPopup/panels/EarnCredits/SubscribeModal.js.map +2 -2
  36. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js +1 -1
  37. package/dist/esm/components/memberPopup/panels/EarnCredits/index.js.map +2 -2
  38. package/dist/esm/components/memberPopup/panels/Referral/index.js +1 -1
  39. package/dist/esm/components/memberPopup/panels/Referral/index.js.map +2 -2
  40. package/dist/esm/components/memberPopup/type.d.ts +14 -2
  41. package/dist/esm/components/memberPopup/type.js +1 -1
  42. package/dist/esm/components/memberPopup/type.js.map +2 -2
  43. package/package.json +1 -1
  44. package/src/components/credits/context/hooks/useCountries.ts +1 -2
  45. package/src/components/memberPopup/MemberPopup.tsx +17 -13
  46. package/src/components/memberPopup/panels/ActivitiesSubscribePanel.tsx +198 -0
  47. package/src/components/memberPopup/panels/ConsumeCredits/index.tsx +39 -14
  48. package/src/components/memberPopup/panels/EarnCredits/index.tsx +94 -64
  49. package/src/components/memberPopup/panels/Referral/index.tsx +1 -1
  50. package/src/components/memberPopup/type.ts +10 -1
  51. package/src/components/memberPopup/panels/EarnCredits/SubscribeModal.tsx +0 -144
  52. package/src/components/memberPopup/panels/EarnCredits/SubscribePanel.tsx +0 -147
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/EarnCredits/SubscribeModal.tsx"],
4
- "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Button, Checkbox, Text } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { CreditsModalContainer } from '../../../credits/modal/ModalContainer'\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 isOpen: boolean\n onClose: () => void\n onSuccess?: () => void\n copy: SubscribeModalCopy\n email?: string\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\nasync function getRecaptchaToken(sitekey: string): Promise<string> {\n if (typeof window === 'undefined' || !window?.grecaptcha?.execute) return ''\n if (!sitekey) return ''\n try {\n return await window.grecaptcha.execute(sitekey, { action: 'activity' })\n } catch {\n return ''\n }\n}\n\nexport function EarnCreditsSubscribeModal({ isOpen, onClose, onSuccess, copy, email: initialEmail }: Props) {\n const { alpcConfig } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand: headlessBrand, storeDomain, recaptchaSitekey } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(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 const recaptchaToken = await getRecaptchaToken(recaptchaSitekey || '')\n try {\n const response = await fetch('/api/multipass/rainbowbridge/activities', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n 'X-Recaptcha-Token': recaptchaToken,\n },\n body: JSON.stringify({\n email,\n register_source,\n shopify_domain: storeDomain,\n single_brand_subscribe: copy.single_brand_subscribe ?? true,\n genre: copy.genre ?? copy.dealsType ?? '',\n sub_brand_type: copy.sub_brand_type ?? '',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n onSuccess?.()\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, storeDomain, copy, onSuccess, onClose])\n\n return (\n <CreditsModalContainer\n isOpen={isOpen}\n onClose={onClose}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] md:mb-[24px]\"\n useAnimation\n animationClassName=\"md:translate-y-[100vh]\"\n >\n <div className=\"flex flex-col gap-[16px] text-center\">\n <Text className=\"text-[22px] font-bold\" html={copy.title} />\n {copy.desc && (\n <Text className=\"text-left text-[16px] font-semibold text-[#1f2021]\" html={copy.desc} />\n )}\n <div className={cn('flex h-[52px] w-full overflow-hidden md:flex-col md:h-auto md:gap-[16px]', rounded ? 'rounded-[2px]' : 'rounded-none')}>\n <input\n className={cn('h-full flex-1 border border-[#d8d8d8] px-[14px] text-[16px] outline-none placeholder:text-[#999] md:h-[52px]', rounded ? 'rounded-l-[2px] md:rounded-[2px]' : 'rounded-none')}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => { setErrorMessage(''); setEmail(e.target.value.trim()) }}\n />\n <Button\n variant=\"primary\"\n loading={loading}\n className={cn('!h-full !min-w-0 !px-[24px] md:!h-[46px]', rounded ? '!rounded-l-none !rounded-r-[2px] md:!rounded-[2px]' : '!rounded-none')}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </Button>\n </div>\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"border-[#1d1d1f]\" />\n <label\n className=\"text-left text-[14px] font-semibold text-[#777] [&_a]:underline\"\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n <div className={cn('text-left text-[16px] font-semibold', errorMessage && 'text-[#f84d4f]', successMessage && 'text-[#52c41a]')}>\n <Text html={successMessage || errorMessage || ''} />\n </div>\n </div>\n </CreditsModalContainer>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useCallback, useEffect, useState } from 'react'\nimport { Button, Checkbox, Text } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport Cookies from 'js-cookie'\nimport { parse } from 'query-string'\nimport { CreditsModalContainer } from '../../../credits/modal/ModalContainer'\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 isOpen: boolean\n onClose: () => void\n onSuccess?: () => void\n copy: SubscribeModalCopy\n email?: string\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\nasync function getRecaptchaToken(sitekey: string): Promise<string> {\n if (typeof window === 'undefined' || !window?.grecaptcha?.execute) return ''\n if (!sitekey) return ''\n try {\n return await window.grecaptcha.execute(sitekey, { action: 'activity' })\n } catch {\n return ''\n }\n}\n\nexport function EarnCreditsSubscribeModal({ isOpen, onClose, onSuccess, copy, email: initialEmail }: Props) {\n const { alpcConfig } = useMemberPopupContext()\n const { locale } = alpcConfig\n const { brand: headlessBrand, storeDomain, recaptchaSitekey } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(headlessBrand)\n const [policy, setPolicy] = useState(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 console.log('copy', copy)\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 const recaptchaToken = await getRecaptchaToken(recaptchaSitekey || '')\n try {\n const response = await fetch('/api/multipass/rainbowbridge/activities', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'current-language': locale,\n 'X-Recaptcha-Token': recaptchaToken,\n },\n body: JSON.stringify({\n email,\n register_source,\n shopify_domain: storeDomain,\n single_brand_subscribe: copy.single_brand_subscribe ?? true,\n genre: copy.genre ?? copy.dealsType ?? '',\n sub_brand_type: copy.sub_brand_type ?? '',\n }),\n })\n const result = await response.json()\n if (!result.errors) {\n setSuccessMessage(copy.successTips ?? 'Subscribed successfully!')\n onSuccess?.()\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, storeDomain, copy, onSuccess, onClose])\n\n return (\n <CreditsModalContainer\n isOpen={isOpen}\n onClose={onClose}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] md:mb-[24px]\"\n useAnimation\n animationClassName=\"md:translate-y-[100vh]\"\n >\n <div className=\"flex flex-col gap-[16px] text-center\">\n <Text className=\"text-[22px] font-bold\" html={copy.title} />\n {copy.desc && <Text className=\"text-left text-[16px] font-semibold text-[#1f2021]\" html={copy.desc} />}\n <div\n className={cn(\n 'flex h-[52px] w-full overflow-hidden md:flex-col md:h-auto md:gap-[16px]',\n rounded ? 'rounded-[2px]' : 'rounded-none'\n )}\n >\n <input\n className={cn(\n 'h-full flex-1 border border-[#d8d8d8] px-[14px] text-[16px] outline-none placeholder:text-[#999] md:h-[52px]',\n rounded ? 'rounded-l-[2px] md:rounded-[2px]' : 'rounded-none'\n )}\n placeholder={copy.placeholder}\n value={email}\n onChange={e => {\n setErrorMessage('')\n setEmail(e.target.value.trim())\n }}\n />\n <Button\n variant=\"primary\"\n loading={loading}\n className={cn(\n '!h-full !min-w-0 !px-[24px] md:!h-[46px]',\n rounded ? '!rounded-l-none !rounded-r-[2px] md:!rounded-[2px]' : '!rounded-none'\n )}\n onClick={handleSubmit}\n >\n {copy.buttonLabel ?? 'Subscribe'}\n </Button>\n </div>\n <div className=\"flex w-full items-start gap-[8px]\">\n <Checkbox checked={policy} onCheckedChange={() => setPolicy(v => !v)} className=\"border-[#1d1d1f]\" />\n <label\n className=\"text-left text-[14px] font-semibold text-[#777] [&_a]:underline\"\n dangerouslySetInnerHTML={{ __html: copy.policy ?? '' }}\n />\n </div>\n {copy.promo && (\n <div className=\"border-t border-[#e5e5e5] pt-[16px]\">\n <div className=\"flex items-center gap-[12px]\">\n <div className=\"flex flex-1 flex-col gap-[8px] text-left\">\n {copy.promo.title && <p className=\"text-[14px] font-[700] text-[#080a0f]\">{copy.promo.title}</p>}\n {copy.promo.description && (\n <p className=\"text-[12px] font-[400] leading-[18px] text-[#666]\">{copy.promo.description}</p>\n )}\n {copy.promo.learnMoreLabel && (\n <a\n href={copy.promo.learnMoreUrl ?? '#'}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-[4px] text-[12px] font-[600] text-[#080a0f] underline-offset-2 hover:underline\"\n >\n {copy.promo.learnMoreLabel}\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M4.5 2.5L7.5 6L4.5 9.5\"\n stroke=\"#080a0f\"\n strokeWidth=\"1.2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </a>\n )}\n </div>\n {copy.promo.image?.url && (\n <img\n src={copy.promo.image.url}\n alt={copy.promo.image.alt ?? ''}\n className=\"h-[80px] w-[100px] flex-shrink-0 rounded-[8px] object-cover\"\n />\n )}\n </div>\n </div>\n )}\n <div\n className={cn(\n 'text-left text-[16px] font-semibold',\n errorMessage && 'text-[#f84d4f]',\n successMessage && 'text-[#52c41a]'\n )}\n >\n <Text html={successMessage || errorMessage || ''} />\n </div>\n </div>\n </CreditsModalContainer>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["SubscribeModal_exports", "__export", "EarnCreditsSubscribeModal", "__toCommonJS", "import_jsx_runtime", "import_react", "import_headless_ui", "import_lib", "import_js_cookie", "import_query_string", "import_ModalContainer", "import_utils", "import_provider", "import_constants", "getAdCookie", "search", "href", "query", "Cookies", "getRecaptchaToken", "sitekey", "isOpen", "onClose", "onSuccess", "copy", "initialEmail", "alpcConfig", "locale", "headlessBrand", "storeDomain", "recaptchaSitekey", "rounded", "policy", "setPolicy", "email", "setEmail", "errorMessage", "setErrorMessage", "successMessage", "setSuccessMessage", "loading", "setLoading", "handleSubmit", "register_source", "recaptchaToken", "result", "cn", "e", "v"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var N=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var F=(t,s)=>{for(var d in s)N(t,d,{get:s[d],enumerable:!0})},O=(t,s,d,f)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of R(s))!y.call(t,o)&&o!==d&&N(t,o,{get:()=>s[o],enumerable:!(f=M(s,o))||f.enumerable});return t};var V=t=>O(N({},"__esModule",{value:!0}),t);var G={};F(G,{default:()=>q});module.exports=V(G);var e=require("react/jsx-runtime"),m=require("react"),p=require("@anker-in/lib"),L=require("../../context/provider"),w=require("../../context/viewStack"),P=require("./hooks/useSubscribed"),n=require("../../type"),r=require("../../icons"),h=require("../../../credits/context/utils"),E=require("../../../../constants");function z({id:t,className:s}){switch(t){case n.EarnCreditsTaskType.Activate:return(0,e.jsx)(r.IconLock,{className:s});case n.EarnCreditsTaskType.Subscribe:return(0,e.jsx)(r.IconSubscription,{className:s});case n.EarnCreditsTaskType.Shop:return(0,e.jsx)(r.IconBag,{className:s});case n.EarnCreditsTaskType.CompleteProfile:return(0,e.jsx)(r.IconOrders,{className:s})}}function H({copy:t,onClose:s,isSubscribeSuccess:d=!1,isActivateSuccess:f=!1,isProfileCompleteSuccess:o=!1,onSubscribeSuccess:T,onActivateSuccess:_,onProfileCompleteSuccess:A}){const{profile:a,openSignUpPopup:x,alpcConfig:b,creditInfo:v}=(0,L.useMemberPopupContext)(),{pushView:u}=(0,w.useViewStack)(),{locale:I}=b,{brand:B}=(0,p.useHeadlessContext)(),g=E.ROUNDED_BRANDS.includes(B),l=!!a,C=(0,P.useSubscribed)({userId:a?.user_id,brand:b.brand,email:a?.email,locale:I,apiBaseUrl:b.apiBaseUrl}),k=(0,m.useMemo)(()=>o||!!(a?.first_name||a?.last_name)&&!!a?.phone_number&&!!a?.dob,[a,o]),S=(0,m.useMemo)(()=>({[n.EarnCreditsTaskType.Activate]:{finished:!!a?.activated||f,onClick:l?()=>u({type:n.MemberPopupPanelType.Activate,props:{onSuccess:_}}):x},[n.EarnCreditsTaskType.CompleteProfile]:{finished:k,onClick:l?()=>u({type:n.MemberPopupPanelType.CompleteProfile,props:{onSuccess:A}}):x},[n.EarnCreditsTaskType.Subscribe]:{finished:C||d,onClick:l?()=>u({type:n.MemberPopupPanelType.SubscribeEmail,props:{onSuccess:T}}):x},[n.EarnCreditsTaskType.Shop]:{finished:!1,link:t.goShopLink,onClick:l?void 0:x}}),[a,l,f,o,k,C,d,x,u,t.goShopLink]),U=(0,m.useMemo)(()=>t.list.map(i=>{const c=S[i.id];if(!c)return null;const D=c.finished?t.completed:l?j(i.id,t):t.joinNow;return{...i,...c,buttonLabel:D}}).filter(Boolean),[t,S,l]);return(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsx)("div",{className:"flex flex-col gap-[8px]",children:t.title&&(0,e.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:t.title})}),l&&v&&(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",g?"rounded-[8px]":"rounded-none"),children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.balanceLabel??"AnkerCredits Balance"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,h.numberFormat)(v.available_credit)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]}),(0,e.jsx)("div",{className:"h-full w-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.comingSoonLabel??"Coming Soon"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,h.numberFormat)(v.pending_credit??0)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[t.subtitle&&(0,e.jsx)("p",{className:"text-[16px] font-[700] text-[#1e2024]",children:t.subtitle}),(0,e.jsx)("div",{className:"flex flex-col",children:U.map((i,c)=>(0,e.jsxs)("div",{className:"relative py-[16px]",children:[c>0&&(0,e.jsx)("div",{className:"absolute left-0 right-0 top-0 h-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px]",i.finished&&"opacity-60"),children:[(0,e.jsx)(z,{id:i.id,className:"size-[24px] shrink-0"}),(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("div",{className:"text-[16px] font-[700] text-[#1e2024]",children:i.title}),i.description&&(0,e.jsx)("div",{className:"mt-[4px] text-[14px] font-[700] text-[#4a4c56]",children:i.description})]}),!i.finished&&i.link?(0,e.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:(0,p.classNames)("cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",g?"rounded-[4px]":"rounded-none"),children:i.buttonLabel}):(0,e.jsx)("button",{className:(0,p.classNames)("cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",i.finished?"bg-[#767880]":"bg-[#080a0f]",g?"rounded-[4px]":"rounded-none"),disabled:i.finished,onClick:i.finished?void 0:i.onClick,children:i.buttonLabel})]})]},c))})]})]})}function j(t,s){switch(t){case n.EarnCreditsTaskType.Activate:return s.activate;case n.EarnCreditsTaskType.CompleteProfile:return s.completeProfileLabel;case n.EarnCreditsTaskType.Subscribe:return s.subscribeLabel;case n.EarnCreditsTaskType.Shop:return s.shopNow}}var q=H;
1
+ "use strict";var g=Object.defineProperty;var M=Object.getOwnPropertyDescriptor;var R=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var F=(t,s)=>{for(var d in s)g(t,d,{get:s[d],enumerable:!0})},O=(t,s,d,f)=>{if(s&&typeof s=="object"||typeof s=="function")for(let o of R(s))!y.call(t,o)&&o!==d&&g(t,o,{get:()=>s[o],enumerable:!(f=M(s,o))||f.enumerable});return t};var V=t=>O(g({},"__esModule",{value:!0}),t);var G={};F(G,{default:()=>q});module.exports=V(G);var e=require("react/jsx-runtime"),m=require("react"),p=require("@anker-in/lib"),w=require("../../context/provider"),P=require("../../context/viewStack"),E=require("./hooks/useSubscribed"),n=require("../../type"),r=require("../../icons"),N=require("../../../credits/context/utils"),T=require("../../../../constants");function z({id:t,className:s}){switch(t){case n.EarnCreditsTaskType.Activate:return(0,e.jsx)(r.IconLock,{className:s});case n.EarnCreditsTaskType.Subscribe:return(0,e.jsx)(r.IconSubscription,{className:s});case n.EarnCreditsTaskType.Shop:return(0,e.jsx)(r.IconBag,{className:s});case n.EarnCreditsTaskType.CompleteProfile:return(0,e.jsx)(r.IconOrders,{className:s})}}function H({copy:t,onClose:s,isSubscribeSuccess:d=!1,isActivateSuccess:f=!1,isProfileCompleteSuccess:o=!1,onSubscribeSuccess:I,onActivateSuccess:_,onProfileCompleteSuccess:A}){const{profile:a,openSignUpPopup:x,alpcConfig:h,creditInfo:b}=(0,w.useMemberPopupContext)(),{pushView:u}=(0,P.useViewStack)(),{locale:B}=h,{brand:C}=(0,p.useHeadlessContext)(),v=T.ROUNDED_BRANDS.includes(C);console.log("creditInfo",b);const l=!!a,k=(0,E.useSubscribed)({userId:a?.user_id,brand:C,email:a?.email,locale:B,apiBaseUrl:h.apiBaseUrl}),S=(0,m.useMemo)(()=>o||!!(a?.first_name||a?.last_name)&&!!a?.phone_number&&!!a?.dob,[a,o]),L=(0,m.useMemo)(()=>({[n.EarnCreditsTaskType.Activate]:{finished:!!a?.activated||f,onClick:l?()=>u({type:n.MemberPopupPanelType.Activate,props:{onSuccess:_}}):x},[n.EarnCreditsTaskType.CompleteProfile]:{finished:S,onClick:l?()=>u({type:n.MemberPopupPanelType.CompleteProfile,props:{onSuccess:A}}):x},[n.EarnCreditsTaskType.Subscribe]:{finished:k||d,onClick:l?()=>u({type:n.MemberPopupPanelType.SubscribeEmail,props:{onSuccess:I}}):x},[n.EarnCreditsTaskType.Shop]:{finished:!1,link:t.goShopLink,onClick:l?void 0:x}}),[a,l,f,o,S,k,d,x,u,t.goShopLink]),U=(0,m.useMemo)(()=>t.list.map(i=>{const c=L[i.id];if(!c)return null;const D=c.finished?t.completed:l?j(i.id,t):t.joinNow;return{...i,...c,buttonLabel:D}}).filter(Boolean),[t,L,l]);return(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[(0,e.jsx)("div",{className:"flex flex-col gap-[8px]",children:t.title&&(0,e.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:t.title})}),l&&(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",v?"rounded-[8px]":"rounded-none"),children:[(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.balanceLabel??"AnkerCredits Balance"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,N.numberFormat)(b?.available_credit??0)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]}),(0,e.jsx)("div",{className:"h-full w-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,e.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:t.comingSoonLabel??"Coming Soon"}),(0,e.jsxs)("div",{className:"flex items-end gap-[4px]",children:[(0,e.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,N.numberFormat)(b?.pending_credit??0)}),(0,e.jsx)("span",{className:"text-[14px] font-[700] leading-[1.4] text-[#1e2024]",children:t.creditUnit??"ankercredits"})]})]})]})]}),(0,e.jsxs)("div",{className:"flex flex-col gap-[16px]",children:[t.subtitle&&(0,e.jsx)("p",{className:"text-[16px] font-[700] text-[#1e2024]",children:t.subtitle}),(0,e.jsx)("div",{className:"flex flex-col",children:U.map((i,c)=>(0,e.jsxs)("div",{className:"relative py-[16px]",children:[c>0&&(0,e.jsx)("div",{className:"absolute left-0 right-0 top-0 h-px bg-[#dadce0]"}),(0,e.jsxs)("div",{className:(0,p.classNames)("flex items-center gap-[12px]",i.finished&&"opacity-60"),children:[(0,e.jsx)(z,{id:i.id,className:"size-[24px] shrink-0"}),(0,e.jsxs)("div",{className:"flex-1",children:[(0,e.jsx)("div",{className:"text-[16px] font-[700] text-[#1e2024]",children:i.title}),i.description&&(0,e.jsx)("div",{className:"mt-[4px] text-[14px] font-[700] text-[#4a4c56]",children:i.description})]}),!i.finished&&i.link?(0,e.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:(0,p.classNames)("cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",v?"rounded-[4px]":"rounded-none"),children:i.buttonLabel}):(0,e.jsx)("button",{className:(0,p.classNames)("cursor-pointer min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white",i.finished?"bg-[#767880]":"bg-[#080a0f]",v?"rounded-[4px]":"rounded-none"),disabled:i.finished,onClick:i.finished?void 0:i.onClick,children:i.buttonLabel})]})]},c))})]})]})}function j(t,s){switch(t){case n.EarnCreditsTaskType.Activate:return s.activate;case n.EarnCreditsTaskType.CompleteProfile:return s.completeProfileLabel;case n.EarnCreditsTaskType.Subscribe:return s.subscribeLabel;case n.EarnCreditsTaskType.Shop:return s.shopNow}}var q=H;
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 { 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 onClose: () => void\n isSubscribeSuccess?: boolean\n isActivateSuccess?: boolean\n isProfileCompleteSuccess?: boolean\n onSubscribeSuccess?: () => void\n onActivateSuccess?: () => void\n onProfileCompleteSuccess?: () => void\n}\n\nfunction EarnCredits({\n copy,\n onClose,\n isSubscribeSuccess = false,\n isActivateSuccess = false,\n isProfileCompleteSuccess = false,\n onSubscribeSuccess,\n onActivateSuccess,\n onProfileCompleteSuccess,\n}: Props) {\n const { profile, openSignUpPopup, alpcConfig, creditInfo } = useMemberPopupContext()\n const { pushView } = useViewStack()\n const { locale } = alpcConfig\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const isLogin = !!profile\n\n const isSubscribed = useSubscribed({\n userId: profile?.user_id,\n brand: alpcConfig.brand,\n email: profile?.email,\n locale,\n apiBaseUrl: alpcConfig.apiBaseUrl,\n })\n\n const profileCompleted = useMemo(() => {\n return isProfileCompleteSuccess || (!!(profile?.first_name || profile?.last_name) && !!profile?.phone_number && !!profile?.dob)\n }, [profile, isProfileCompleteSuccess])\n\n const taskStates: Record<EarnCreditsTaskType, { finished: boolean; onClick?: () => void; link?: string }> = useMemo(() => ({\n [EarnCreditsTaskType.Activate]: {\n finished: !!profile?.activated || isActivateSuccess,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.Activate,\n props: { onSuccess: onActivateSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.CompleteProfile]: {\n finished: profileCompleted,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.CompleteProfile,\n props: { onSuccess: onProfileCompleteSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Subscribe]: {\n finished: isSubscribed || isSubscribeSuccess,\n onClick: isLogin\n ? () => pushView({\n type: MemberPopupPanelType.SubscribeEmail,\n props: { onSuccess: onSubscribeSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Shop]: {\n finished: false,\n link: copy.goShopLink,\n onClick: isLogin ? undefined : openSignUpPopup,\n },\n }), [profile, isLogin, isActivateSuccess, isProfileCompleteSuccess, profileCompleted, isSubscribed, isSubscribeSuccess, openSignUpPopup, pushView, copy.goShopLink])\n\n const list = useMemo(() => {\n return copy.list.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 }).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 && creditInfo && (\n <div className={cn('flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]', rounded ? 'rounded-[8px]' : 'rounded-none')}>\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">\n {copy.balanceLabel ?? 'AnkerCredits Balance'}\n </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)}\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]\">\n {copy.comingSoonLabel ?? 'Coming Soon'}\n </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 && (\n <p className=\"text-[16px] font-[700] text-[#1e2024]\">{copy.subtitle}</p>\n )}\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]', item.finished && 'opacity-60')}>\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 ? (\n <a\n href={item.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn('cursor-pointer bg-[#080a0f] min-w-[118px] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-white', rounded ? 'rounded-[4px]' : 'rounded-none')}\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 )}\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: return copy.activate\n case EarnCreditsTaskType.CompleteProfile: return copy.completeProfileLabel\n case EarnCreditsTaskType.Subscribe: return copy.subscribeLabel\n case EarnCreditsTaskType.Shop: return copy.shopNow\n }\n}\n\nexport default EarnCredits\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useMemo } from 'react'\nimport { 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 onClose: () => void\n isSubscribeSuccess?: boolean\n isActivateSuccess?: boolean\n isProfileCompleteSuccess?: boolean\n onSubscribeSuccess?: () => void\n onActivateSuccess?: () => void\n onProfileCompleteSuccess?: () => void\n}\n\nfunction EarnCredits({\n copy,\n onClose,\n isSubscribeSuccess = false,\n isActivateSuccess = false,\n isProfileCompleteSuccess = false,\n onSubscribeSuccess,\n onActivateSuccess,\n onProfileCompleteSuccess,\n}: Props) {\n const { profile, openSignUpPopup, alpcConfig, creditInfo } = 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 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 pushView({\n type: MemberPopupPanelType.Activate,\n props: { onSuccess: onActivateSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.CompleteProfile]: {\n finished: profileCompleted,\n onClick: isLogin\n ? () =>\n pushView({\n type: MemberPopupPanelType.CompleteProfile,\n props: { onSuccess: onProfileCompleteSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Subscribe]: {\n finished: isSubscribed || isSubscribeSuccess,\n onClick: isLogin\n ? () =>\n pushView({\n type: MemberPopupPanelType.SubscribeEmail,\n props: { onSuccess: onSubscribeSuccess },\n })\n : openSignUpPopup,\n },\n [EarnCreditsTaskType.Shop]: {\n finished: false,\n link: copy.goShopLink,\n onClick: isLogin ? undefined : 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]', item.finished && 'opacity-60')}>\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 ? (\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 >\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 )}\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
6
  "names": ["EarnCredits_exports", "__export", "EarnCredits_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_lib", "import_provider", "import_viewStack", "import_useSubscribed", "import_type", "import_icons", "import_utils", "import_constants", "TaskIcon", "id", "className", "EarnCredits", "copy", "onClose", "isSubscribeSuccess", "isActivateSuccess", "isProfileCompleteSuccess", "onSubscribeSuccess", "onActivateSuccess", "onProfileCompleteSuccess", "profile", "openSignUpPopup", "alpcConfig", "creditInfo", "pushView", "locale", "brand", "rounded", "isLogin", "isSubscribed", "profileCompleted", "taskStates", "list", "item", "state", "buttonLabel", "getNotFinishedLabel", "cn", "idx"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},L=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of b(t))!w.call(e,l)&&l!==o&&d(e,l,{get:()=>t[l],enumerable:!(r=N(t,l))||r.enumerable});return e};var T=e=>L(d({},"__esModule",{value:!0}),e);var M={};C(M,{default:()=>D});module.exports=T(M);var a=require("react/jsx-runtime"),m=require("@anker-in/headless-ui"),n=require("@anker-in/lib"),g=require("../../context/provider"),u=require("./hooks/useReferralOverview"),x=require("../../../credits/context/utils"),h=require("../../../../constants");function P({copy:e,onClose:t}){const{profile:o,alpcConfig:r}=(0,g.useMemberPopupContext)(),l=!!o,{brand:v,currencyCode:f="USD"}=(0,n.useHeadlessContext)(),i=h.ROUNDED_BRANDS.includes(v),{data:s}=(0,u.useReferralOverview)(),c=s?.data?.data?.available??0,p=s?.data?.data?.pending??0;return console.log("cashAvailable",c),console.log("cashPending",p),console.log("data",s),console.log("data.data",s?.data),(0,a.jsxs)("div",{className:"flex flex-col gap-[12px]",children:[e.title&&(0,a.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),l&&(0,a.jsxs)("div",{className:(0,n.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",i?"rounded-[8px]":"rounded-none"),children:[(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashAvailableLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:c,currencyCode:f,locale:r.locale})})]}),(0,a.jsx)("div",{className:"h-full w-px self-stretch bg-[#dadce0]"}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashPendingLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:p,currencyCode:f,locale:r.locale})})]})]}),(e.howToTitle||e.howToDescription)&&(0,a.jsxs)("div",{className:"flex flex-col gap-[8px]",children:[e.howToTitle&&(0,a.jsx)("h3",{className:"text-[20px] font-[700] leading-[1.2] text-[#080a0f]",children:e.howToTitle}),e.howToDescription&&(0,a.jsx)("p",{className:"text-[14px] leading-[1.5] text-[#1e2024]",children:e.howToDescription}),e.learnMoreLabel&&e.learnMoreUrl&&(0,a.jsxs)("a",{href:e.learnMoreUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline",children:[e.learnMoreLabel,(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,a.jsx)("path",{d:"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z",fill:"#080A0F"})})]})]}),e.image?.url&&(0,a.jsx)(m.Picture,{source:e.image.url,alt:e.image.alt??"",className:(0,n.classNames)("h-[100px] w-full object-cover",i?"rounded-[8px]":"rounded-none")}),e.ctaButton&&(0,a.jsx)("a",{href:e.ctaUrl??"#",target:"_blank",rel:"noopener noreferrer",className:(0,n.classNames)("block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white",i?"rounded-[4px]":"rounded-none"),children:e.ctaButton})]})}var D=P;
1
+ "use strict";var d=Object.defineProperty;var N=Object.getOwnPropertyDescriptor;var b=Object.getOwnPropertyNames;var w=Object.prototype.hasOwnProperty;var C=(e,t)=>{for(var o in t)d(e,o,{get:t[o],enumerable:!0})},L=(e,t,o,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let l of b(t))!w.call(e,l)&&l!==o&&d(e,l,{get:()=>t[l],enumerable:!(r=N(t,l))||r.enumerable});return e};var T=e=>L(d({},"__esModule",{value:!0}),e);var M={};C(M,{default:()=>D});module.exports=T(M);var a=require("react/jsx-runtime"),m=require("@anker-in/headless-ui"),n=require("@anker-in/lib"),g=require("../../context/provider"),u=require("./hooks/useReferralOverview"),x=require("../../../credits/context/utils"),h=require("../../../../constants");function P({copy:e,onClose:t}){const{profile:o,alpcConfig:r}=(0,g.useMemberPopupContext)(),l=!!o,{brand:v,currencyCode:f="USD"}=(0,n.useHeadlessContext)(),i=h.ROUNDED_BRANDS.includes(v),{data:s}=(0,u.useReferralOverview)(),c=s?.data?.data?.available??0,p=s?.data?.data?.pending??0;return console.log("cashAvailable",c),console.log("cashPending",p),console.log("data",s),console.log("data.data",s?.data),(0,a.jsxs)("div",{className:"flex flex-col gap-[12px]",children:[e.title&&(0,a.jsx)("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),l&&(0,a.jsxs)("div",{className:(0,n.classNames)("flex items-center gap-[12px] bg-[#f5f6f7] p-[16px]",i?"rounded-[8px]":"rounded-none"),children:[(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashAvailableLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:c,currencyCode:f,locale:r.locale})})]}),(0,a.jsx)("div",{className:"h-full w-px self-stretch bg-[#dadce0]"}),(0,a.jsxs)("div",{className:"flex flex-1 flex-col gap-[4px]",children:[(0,a.jsx)("div",{className:"text-[14px] font-[700] text-[#1e2024]",children:e.cashPendingLabel}),(0,a.jsx)("span",{className:"text-[24px] font-[700] leading-[1.2] text-[#1e2024]",children:(0,x.formatPrice)({amount:p,currencyCode:f,locale:r.locale})})]})]}),(e.howToTitle||e.howToDescription)&&(0,a.jsxs)("div",{className:"flex flex-col gap-[8px]",children:[e.howToTitle&&(0,a.jsx)("h3",{className:"text-[20px] font-[700] leading-[1.2] text-[#080a0f]",children:e.howToTitle}),e.howToDescription&&(0,a.jsx)("p",{className:"text-[14px] leading-[1.5] text-[#1e2024]",children:e.howToDescription}),e.learnMoreLabel&&e.learnMoreUrl&&(0,a.jsxs)("a",{href:e.learnMoreUrl,target:"_blank",rel:"noopener noreferrer",className:"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline",children:[e.learnMoreLabel,(0,a.jsx)("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",children:(0,a.jsx)("path",{d:"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z",fill:"#080A0F"})})]})]}),e.image?.url&&(0,a.jsx)(m.Picture,{source:e.image.url,alt:e.image.alt??"",className:(0,n.classNames)("mt-[8px] h-[100px] w-full object-cover",i?"rounded-[8px]":"rounded-none")}),e.ctaButton&&(0,a.jsx)("a",{href:e.ctaUrl??"#",target:"_blank",rel:"noopener noreferrer",className:(0,n.classNames)("block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white",i?"rounded-[4px]":"rounded-none"),children:e.ctaButton})]})}var D=P;
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/memberPopup/panels/Referral/index.tsx"],
4
- "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useReferralOverview } from './hooks/useReferralOverview'\nimport { formatPrice } from '../../../credits/context/utils'\n\nimport type { ReferralCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: ReferralCopy\n onClose: () => void\n}\n\nfunction Referral({ copy, onClose }: Props) {\n const { profile, alpcConfig } = useMemberPopupContext()\n const isLogin = !!profile\n const { brand, currencyCode = 'USD' as string } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const { data } = useReferralOverview()\n\n const cashAvailable = data?.data?.data?.available ?? 0\n const cashPending = data?.data?.data?.pending ?? 0\n\n console.log('cashAvailable', cashAvailable)\n console.log('cashPending', cashPending)\n console.log('data', data)\n console.log('data.data', data?.data)\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\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.cashAvailableLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashAvailable, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n <div className=\"h-full w-px self-stretch bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.cashPendingLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashPending, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n </div>\n )}\n\n {(copy.howToTitle || copy.howToDescription) && (\n <div className=\"flex flex-col gap-[8px]\">\n {copy.howToTitle && (\n <h3 className=\"text-[20px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.howToTitle}</h3>\n )}\n {copy.howToDescription && <p className=\"text-[14px] leading-[1.5] text-[#1e2024]\">{copy.howToDescription}</p>}\n {copy.learnMoreLabel && copy.learnMoreUrl && (\n <a\n href={copy.learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline\"\n >\n {copy.learnMoreLabel}\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z\"\n fill=\"#080A0F\"\n />\n </svg>\n </a>\n )}\n </div>\n )}\n\n {copy.image?.url && (\n <Picture\n source={copy.image.url}\n alt={copy.image.alt ?? ''}\n className={cn('h-[100px] w-full object-cover', rounded ? 'rounded-[8px]' : 'rounded-none')}\n />\n )}\n\n {copy.ctaButton && (\n <a\n href={copy.ctaUrl ?? '#'}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n >\n {copy.ctaButton}\n </a>\n )}\n </div>\n )\n}\n\nexport default Referral\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgCqB,IAAAI,EAAA,6BAhCrBC,EAAwB,iCACxBC,EAAqD,yBACrDC,EAAsC,kCACtCC,EAAoC,uCACpCC,EAA4B,0CAG5BC,EAA+B,iCAO/B,SAASC,EAAS,CAAE,KAAAC,EAAM,QAAAC,CAAQ,EAAU,CAC1C,KAAM,CAAE,QAAAC,EAAS,WAAAC,CAAW,KAAI,yBAAsB,EAChDC,EAAU,CAAC,CAACF,EACZ,CAAE,MAAAG,EAAO,aAAAC,EAAe,KAAgB,KAAI,sBAAmB,EAC/DC,EAAU,iBAAe,SAASF,CAAK,EAEvC,CAAE,KAAAG,CAAK,KAAI,uBAAoB,EAE/BC,EAAgBD,GAAM,MAAM,MAAM,WAAa,EAC/CE,EAAcF,GAAM,MAAM,MAAM,SAAW,EAEjD,eAAQ,IAAI,gBAAiBC,CAAa,EAC1C,QAAQ,IAAI,cAAeC,CAAW,EACtC,QAAQ,IAAI,OAAQF,CAAI,EACxB,QAAQ,IAAI,YAAaA,GAAM,IAAI,KAGjC,QAAC,OAAI,UAAU,2BACZ,UAAAR,EAAK,UAAS,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,MAAM,EAE9FI,MACC,QAAC,OACC,aAAW,EAAAO,YACT,qDACAJ,EAAU,gBAAkB,cAC9B,EAEA,qBAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAP,EAAK,mBAAmB,KAChF,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQS,EAAe,aAAAH,EAAc,OAAQH,EAAW,MAAO,CAAC,EACjF,GACF,KACA,OAAC,OAAI,UAAU,wCAAwC,KACvD,QAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAH,EAAK,iBAAiB,KAC9E,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQU,EAAa,aAAAJ,EAAc,OAAQH,EAAW,MAAO,CAAC,EAC/E,GACF,GACF,GAGAH,EAAK,YAAcA,EAAK,sBACxB,QAAC,OAAI,UAAU,0BACZ,UAAAA,EAAK,eACJ,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,WAAW,EAEtFA,EAAK,qBAAoB,OAAC,KAAE,UAAU,2CAA4C,SAAAA,EAAK,iBAAiB,EACxGA,EAAK,gBAAkBA,EAAK,iBAC3B,QAAC,KACC,KAAMA,EAAK,aACX,OAAO,SACP,IAAI,sBACJ,UAAU,8EAET,UAAAA,EAAK,kBACN,OAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,mBAAC,QACC,EAAE,kUACF,KAAK,UACP,EACF,GACF,GAEJ,EAGDA,EAAK,OAAO,QACX,OAAC,WACC,OAAQA,EAAK,MAAM,IACnB,IAAKA,EAAK,MAAM,KAAO,GACvB,aAAW,EAAAW,YAAG,gCAAiCJ,EAAU,gBAAkB,cAAc,EAC3F,EAGDP,EAAK,cACJ,OAAC,KACC,KAAMA,EAAK,QAAU,IACrB,OAAO,SACP,IAAI,sBACJ,aAAW,EAAAW,YACT,mGACAJ,EAAU,gBAAkB,cAC9B,EAEC,SAAAP,EAAK,UACR,GAEJ,CAEJ,CAEA,IAAOV,EAAQS",
4
+ "sourcesContent": ["import { Picture } from '@anker-in/headless-ui'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { useMemberPopupContext } from '../../context/provider'\nimport { useReferralOverview } from './hooks/useReferralOverview'\nimport { formatPrice } from '../../../credits/context/utils'\n\nimport type { ReferralCopy } from '../../type'\nimport { ROUNDED_BRANDS } from '../../../../constants'\n\ntype Props = {\n copy: ReferralCopy\n onClose: () => void\n}\n\nfunction Referral({ copy, onClose }: Props) {\n const { profile, alpcConfig } = useMemberPopupContext()\n const isLogin = !!profile\n const { brand, currencyCode = 'USD' as string } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const { data } = useReferralOverview()\n\n const cashAvailable = data?.data?.data?.available ?? 0\n const cashPending = data?.data?.data?.pending ?? 0\n\n console.log('cashAvailable', cashAvailable)\n console.log('cashPending', cashPending)\n console.log('data', data)\n console.log('data.data', data?.data)\n\n return (\n <div className=\"flex flex-col gap-[12px]\">\n {copy.title && <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>}\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.cashAvailableLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashAvailable, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n <div className=\"h-full w-px self-stretch bg-[#dadce0]\" />\n <div className=\"flex flex-1 flex-col gap-[4px]\">\n <div className=\"text-[14px] font-[700] text-[#1e2024]\">{copy.cashPendingLabel}</div>\n <span className=\"text-[24px] font-[700] leading-[1.2] text-[#1e2024]\">\n {formatPrice({ amount: cashPending, currencyCode, locale: alpcConfig.locale })}\n </span>\n </div>\n </div>\n )}\n\n {(copy.howToTitle || copy.howToDescription) && (\n <div className=\"flex flex-col gap-[8px]\">\n {copy.howToTitle && (\n <h3 className=\"text-[20px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.howToTitle}</h3>\n )}\n {copy.howToDescription && <p className=\"text-[14px] leading-[1.5] text-[#1e2024]\">{copy.howToDescription}</p>}\n {copy.learnMoreLabel && copy.learnMoreUrl && (\n <a\n href={copy.learnMoreUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"flex items-center gap-[4px] text-[14px] font-[700] text-[#080a0f] underline\"\n >\n {copy.learnMoreLabel}\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\n <path\n d=\"M5.52827 3.52876C5.78862 3.26841 6.21063 3.26841 6.47098 3.52876L10.471 7.52876C10.7313 7.78911 10.7313 8.21112 10.471 8.47147L6.47098 12.4715C6.21063 12.7318 5.78862 12.7318 5.52827 12.4715C5.26792 12.2111 5.26792 11.7891 5.52827 11.5288L9.05692 8.00011L5.52827 4.47147C5.26792 4.21112 5.26792 3.78911 5.52827 3.52876Z\"\n fill=\"#080A0F\"\n />\n </svg>\n </a>\n )}\n </div>\n )}\n\n {copy.image?.url && (\n <Picture\n source={copy.image.url}\n alt={copy.image.alt ?? ''}\n className={cn('mt-[8px] h-[100px] w-full object-cover', rounded ? 'rounded-[8px]' : 'rounded-none')}\n />\n )}\n\n {copy.ctaButton && (\n <a\n href={copy.ctaUrl ?? '#'}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={cn(\n 'block w-full cursor-pointer bg-[#080a0f] py-[14px] text-center text-[14px] font-[700] text-white',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n >\n {copy.ctaButton}\n </a>\n )}\n </div>\n )\n}\n\nexport default Referral\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgCqB,IAAAI,EAAA,6BAhCrBC,EAAwB,iCACxBC,EAAqD,yBACrDC,EAAsC,kCACtCC,EAAoC,uCACpCC,EAA4B,0CAG5BC,EAA+B,iCAO/B,SAASC,EAAS,CAAE,KAAAC,EAAM,QAAAC,CAAQ,EAAU,CAC1C,KAAM,CAAE,QAAAC,EAAS,WAAAC,CAAW,KAAI,yBAAsB,EAChDC,EAAU,CAAC,CAACF,EACZ,CAAE,MAAAG,EAAO,aAAAC,EAAe,KAAgB,KAAI,sBAAmB,EAC/DC,EAAU,iBAAe,SAASF,CAAK,EAEvC,CAAE,KAAAG,CAAK,KAAI,uBAAoB,EAE/BC,EAAgBD,GAAM,MAAM,MAAM,WAAa,EAC/CE,EAAcF,GAAM,MAAM,MAAM,SAAW,EAEjD,eAAQ,IAAI,gBAAiBC,CAAa,EAC1C,QAAQ,IAAI,cAAeC,CAAW,EACtC,QAAQ,IAAI,OAAQF,CAAI,EACxB,QAAQ,IAAI,YAAaA,GAAM,IAAI,KAGjC,QAAC,OAAI,UAAU,2BACZ,UAAAR,EAAK,UAAS,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,MAAM,EAE9FI,MACC,QAAC,OACC,aAAW,EAAAO,YACT,qDACAJ,EAAU,gBAAkB,cAC9B,EAEA,qBAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAP,EAAK,mBAAmB,KAChF,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQS,EAAe,aAAAH,EAAc,OAAQH,EAAW,MAAO,CAAC,EACjF,GACF,KACA,OAAC,OAAI,UAAU,wCAAwC,KACvD,QAAC,OAAI,UAAU,iCACb,oBAAC,OAAI,UAAU,wCAAyC,SAAAH,EAAK,iBAAiB,KAC9E,OAAC,QAAK,UAAU,sDACb,2BAAY,CAAE,OAAQU,EAAa,aAAAJ,EAAc,OAAQH,EAAW,MAAO,CAAC,EAC/E,GACF,GACF,GAGAH,EAAK,YAAcA,EAAK,sBACxB,QAAC,OAAI,UAAU,0BACZ,UAAAA,EAAK,eACJ,OAAC,MAAG,UAAU,sDAAuD,SAAAA,EAAK,WAAW,EAEtFA,EAAK,qBAAoB,OAAC,KAAE,UAAU,2CAA4C,SAAAA,EAAK,iBAAiB,EACxGA,EAAK,gBAAkBA,EAAK,iBAC3B,QAAC,KACC,KAAMA,EAAK,aACX,OAAO,SACP,IAAI,sBACJ,UAAU,8EAET,UAAAA,EAAK,kBACN,OAAC,OAAI,MAAM,KAAK,OAAO,KAAK,QAAQ,YAAY,KAAK,OACnD,mBAAC,QACC,EAAE,kUACF,KAAK,UACP,EACF,GACF,GAEJ,EAGDA,EAAK,OAAO,QACX,OAAC,WACC,OAAQA,EAAK,MAAM,IACnB,IAAKA,EAAK,MAAM,KAAO,GACvB,aAAW,EAAAW,YAAG,yCAA0CJ,EAAU,gBAAkB,cAAc,EACpG,EAGDP,EAAK,cACJ,OAAC,KACC,KAAMA,EAAK,QAAU,IACrB,OAAO,SACP,IAAI,sBACJ,aAAW,EAAAW,YACT,mGACAJ,EAAU,gBAAkB,cAC9B,EAEC,SAAAP,EAAK,UACR,GAEJ,CAEJ,CAEA,IAAOV,EAAQS",
6
6
  "names": ["Referral_exports", "__export", "Referral_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_lib", "import_provider", "import_useReferralOverview", "import_utils", "import_constants", "Referral", "copy", "onClose", "profile", "alpcConfig", "isLogin", "brand", "currencyCode", "rounded", "data", "cashAvailable", "cashPending", "cn"]
7
7
  }
@@ -27,7 +27,9 @@ export declare enum EarnCreditsTaskType {
27
27
  }
28
28
  export declare enum ConsumeCreditsItemType {
29
29
  Coupon = "COUPON",
30
- RedeemAndBuy = "REDEEM_AND_BUY"
30
+ RedeemAndBuy = "REDEEM_AND_BUY",
31
+ GiftCard = "GIFT_CARD",
32
+ Product = "PRODUCT"
31
33
  }
32
34
  export type MemberPopupLink = {
33
35
  type: MemberPopupActionType;
@@ -67,7 +69,7 @@ export type MemberPopupCopy = {
67
69
  shopLabel: string;
68
70
  shopUrl?: string;
69
71
  };
70
- subscribe?: SubscribeModalCopy;
72
+ activitiesSubscribe?: SubscribeModalCopy;
71
73
  earnCredits?: EarnCreditsCopy;
72
74
  consumeCredits?: ConsumeCreditsopy;
73
75
  referral?: ReferralCopy;
@@ -122,6 +124,16 @@ export type SubscribeModalCopy = {
122
124
  single_brand_subscribe?: boolean;
123
125
  genre?: string;
124
126
  sub_brand_type?: string;
127
+ promo?: {
128
+ title?: string;
129
+ description?: string;
130
+ learnMoreLabel?: string;
131
+ learnMoreUrl?: string;
132
+ image?: {
133
+ url: string;
134
+ alt?: string;
135
+ };
136
+ };
125
137
  };
126
138
  export type ConsumeCreditsopy = {
127
139
  title?: string;
@@ -1,2 +1,2 @@
1
- "use strict";var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var m=(r,i)=>{for(var s in i)g(r,s,{get:i[s],enumerable:!0})},E=(r,i,s,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of u(i))!b.call(r,t)&&t!==s&&g(r,t,{get:()=>i[t],enumerable:!(n=C(i,t))||n.enumerable});return r};var f=r=>E(g({},"__esModule",{value:!0}),r);var L={};m(L,{ConsumeCreditsItemType:()=>c,EarnCreditsTaskType:()=>a,MemberPopupActionType:()=>p,MemberPopupPageScope:()=>d,MemberPopupPanelType:()=>l});module.exports=f(L);var l=(e=>(e.EarnCredits="EARN_CREDITS",e.ConsumeCredits="CONSUME_CREDITS",e.Referral="REFERRAL",e.CompleteProfile="COMPLETE_PROFILE",e.Subscribe="SUBSCRIBE",e.SubscribeEmail="SUBSCRIBE_EMAIL",e.RedeemCoupon="REDEEM_COUPON",e.Activate="ACTIVATE",e))(l||{}),p=(o=>(o.ExternalLink="EXTERNAL_LINK",o.OpenEarnCredits="OPEN_EARN_CREDITS",o.OpenConsumeCredits="OPEN_CONSUME_CREDITS",o.OpenReferral="OPEN_REFERRAL",o.OpenSubscribe="OPEN_SUBSCRIBE",o))(p||{}),a=(t=>(t.Activate="activate",t.CompleteProfile="completeProfile",t.Subscribe="subscribe",t.Shop="shop",t))(a||{}),c=(s=>(s.Coupon="COUPON",s.RedeemAndBuy="REDEEM_AND_BUY",s))(c||{}),d=(n=>(n.Global="GLOBAL",n.Include="INCLUDE",n.Exclude="EXCLUDE",n))(d||{});
1
+ "use strict";var g=Object.defineProperty;var C=Object.getOwnPropertyDescriptor;var u=Object.getOwnPropertyNames;var b=Object.prototype.hasOwnProperty;var m=(e,i)=>{for(var o in i)g(e,o,{get:i[o],enumerable:!0})},E=(e,i,o,n)=>{if(i&&typeof i=="object"||typeof i=="function")for(let t of u(i))!b.call(e,t)&&t!==o&&g(e,t,{get:()=>i[t],enumerable:!(n=C(i,t))||n.enumerable});return e};var f=e=>E(g({},"__esModule",{value:!0}),e);var L={};m(L,{ConsumeCreditsItemType:()=>c,EarnCreditsTaskType:()=>p,MemberPopupActionType:()=>a,MemberPopupPageScope:()=>d,MemberPopupPanelType:()=>l});module.exports=f(L);var l=(r=>(r.EarnCredits="EARN_CREDITS",r.ConsumeCredits="CONSUME_CREDITS",r.Referral="REFERRAL",r.CompleteProfile="COMPLETE_PROFILE",r.Subscribe="SUBSCRIBE",r.SubscribeEmail="SUBSCRIBE_EMAIL",r.RedeemCoupon="REDEEM_COUPON",r.Activate="ACTIVATE",r))(l||{}),a=(s=>(s.ExternalLink="EXTERNAL_LINK",s.OpenEarnCredits="OPEN_EARN_CREDITS",s.OpenConsumeCredits="OPEN_CONSUME_CREDITS",s.OpenReferral="OPEN_REFERRAL",s.OpenSubscribe="OPEN_SUBSCRIBE",s))(a||{}),p=(t=>(t.Activate="activate",t.CompleteProfile="completeProfile",t.Subscribe="subscribe",t.Shop="shop",t))(p||{}),c=(t=>(t.Coupon="COUPON",t.RedeemAndBuy="REDEEM_AND_BUY",t.GiftCard="GIFT_CARD",t.Product="PRODUCT",t))(c||{}),d=(n=>(n.Global="GLOBAL",n.Include="INCLUDE",n.Exclude="EXCLUDE",n))(d||{});
2
2
  //# sourceMappingURL=type.js.map
@@ -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}\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 subscribe?: 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 successTips?: string\n dealsType?: string\n buttonLabel?: string\n single_brand_subscribe?: boolean\n genre?: string\n sub_brand_type?: string\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 pointUnit?: 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 }\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 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}\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,wBAAAC,EAAA,0BAAAC,EAAA,yBAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAP,GAOO,IAAKM,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,IAYAF,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,oBAClBA,EAAA,mBAAqB,uBACrBA,EAAA,aAAe,gBACfA,EAAA,cAAgB,iBALNA,OAAA,IASAD,OACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,kBAClBA,EAAA,UAAY,YACZA,EAAA,KAAO,OAJGA,OAAA,IAQAD,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,iBAFLA,OAAA,IAoBAG,OAEVA,EAAA,OAAS,SAETA,EAAA,QAAU,UAEVA,EAAA,QAAU,UANAA,OAAA",
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 successTips?: 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 pointUnit?: 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 }\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 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}\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,4BAAAE,EAAA,wBAAAC,EAAA,0BAAAC,EAAA,yBAAAC,EAAA,yBAAAC,IAAA,eAAAC,EAAAP,GAOO,IAAKM,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,IAYAF,OACVA,EAAA,aAAe,gBACfA,EAAA,gBAAkB,oBAClBA,EAAA,mBAAqB,uBACrBA,EAAA,aAAe,gBACfA,EAAA,cAAgB,iBALNA,OAAA,IASAD,OACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,kBAClBA,EAAA,UAAY,YACZA,EAAA,KAAO,OAJGA,OAAA,IAQAD,OACVA,EAAA,OAAS,SACTA,EAAA,aAAe,iBACfA,EAAA,SAAW,YACXA,EAAA,QAAU,UAJAA,OAAA,IAsBAG,OAEVA,EAAA,OAAS,SAETA,EAAA,QAAU,UAEVA,EAAA,QAAU,UANAA,OAAA",
6
6
  "names": ["type_exports", "__export", "ConsumeCreditsItemType", "EarnCreditsTaskType", "MemberPopupActionType", "MemberPopupPageScope", "MemberPopupPanelType", "__toCommonJS"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{useEffect as f,useState as i}from"react";import{useHeadlessContext as l}from"@anker-in/lib";function h({shopifyStoreDomain:m}){const{locale:t=""}=l(),[a,o]=i(!1),[c,s]=i([]);return f(()=>{(async()=>{o(!0);try{const r=await(await fetch("/api/multipass/account/countries",{headers:{"current-language":t}})).json();let e=r?.data||r||[];e=e.sort((u,p)=>u.name.localeCompare(p.name)),console.log("fetch shipsToCountries",e),s(e)}catch(n){s([]),console.error(n)}finally{o(!1)}})()},[t]),{isLoading:a,countries:c}}var S=h;export{S as default};
1
+ import{useEffect as p,useState as r}from"react";import{useHeadlessContext as f}from"@anker-in/lib";function l({shopifyStoreDomain:h}){const{locale:t=""}=f(),[i,o]=r(!1),[a,s]=r([]);return p(()=>{(async()=>{o(!0);try{let e=(await(await fetch("/api/multipass/account/countries",{headers:{"current-language":t}})).json())?.data?.data||[];e=e.sort((c,u)=>c.name.localeCompare(u.name)),console.log("fetch shipsToCountries",e),s(e)}catch(n){s([]),console.error(n)}finally{o(!1)}})()},[t]),{isLoading:i,countries:a}}var S=l;export{S as default};
2
2
  //# sourceMappingURL=useCountries.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useCountries.ts"],
4
- "sourcesContent": ["import { useEffect, useState } from 'react'\n\nimport { useHeadlessContext } from '@anker-in/lib'\nimport { type ShippingCountry } from '../../type'\n\nfunction useCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {\n const { locale = '' } = useHeadlessContext()\n\n const [isLoading, setLoading] = useState(false)\n const [countries, setCountries] = useState<ShippingCountry[]>([])\n\n useEffect(() => {\n const fetchCountries = async () => {\n setLoading(true)\n try {\n const response = await fetch('/api/multipass/account/countries', {\n headers: {\n 'current-language': locale,\n },\n })\n const res: any = await response.json()\n\n // \u65B0\u63A5\u53E3\u76F4\u63A5\u8FD4\u56DE\u56FD\u5BB6\u6570\u7EC4 [{ id, name, code }]\n let shipsToCountries: ShippingCountry[] = res?.data || res || []\n\n // \u5B57\u6BCD\u987A\u5E8F\u6392\u5E8F\n shipsToCountries = shipsToCountries.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n console.log('fetch shipsToCountries', shipsToCountries)\n setCountries(shipsToCountries)\n } catch (e) {\n setCountries([])\n console.error(e)\n } finally {\n setLoading(false)\n }\n }\n\n fetchCountries()\n }, [locale])\n\n return {\n isLoading,\n countries,\n }\n}\n\nexport default useCountries\n"],
5
- "mappings": "AAAA,OAAS,aAAAA,EAAW,YAAAC,MAAgB,QAEpC,OAAS,sBAAAC,MAA0B,gBAGnC,SAASC,EAAa,CAAE,mBAAAC,CAAmB,EAAmC,CAC5E,KAAM,CAAE,OAAAC,EAAS,EAAG,EAAIH,EAAmB,EAErC,CAACI,EAAWC,CAAU,EAAIN,EAAS,EAAK,EACxC,CAACO,EAAWC,CAAY,EAAIR,EAA4B,CAAC,CAAC,EAEhE,OAAAD,EAAU,IAAM,EACS,SAAY,CACjCO,EAAW,EAAI,EACf,GAAI,CAMF,MAAMG,EAAW,MALA,MAAM,MAAM,mCAAoC,CAC/D,QAAS,CACP,mBAAoBL,CACtB,CACF,CAAC,GAC+B,KAAK,EAGrC,IAAIM,EAAsCD,GAAK,MAAQA,GAAO,CAAC,EAG/DC,EAAmBA,EAAiB,KAAK,CAACC,EAAGC,IACpCD,EAAE,KAAK,cAAcC,EAAE,IAAI,CACnC,EAED,QAAQ,IAAI,yBAA0BF,CAAgB,EACtDF,EAAaE,CAAgB,CAC/B,OAASG,EAAG,CACVL,EAAa,CAAC,CAAC,EACf,QAAQ,MAAMK,CAAC,CACjB,QAAE,CACAP,EAAW,EAAK,CAClB,CACF,GAEe,CACjB,EAAG,CAACF,CAAM,CAAC,EAEJ,CACL,UAAAC,EACA,UAAAE,CACF,CACF,CAEA,IAAOO,EAAQZ",
6
- "names": ["useEffect", "useState", "useHeadlessContext", "useCountries", "shopifyStoreDomain", "locale", "isLoading", "setLoading", "countries", "setCountries", "res", "shipsToCountries", "a", "b", "e", "useCountries_default"]
4
+ "sourcesContent": ["import { useEffect, useState } from 'react'\n\nimport { useHeadlessContext } from '@anker-in/lib'\nimport { type ShippingCountry } from '../../type'\n\nfunction useCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {\n const { locale = '' } = useHeadlessContext()\n\n const [isLoading, setLoading] = useState(false)\n const [countries, setCountries] = useState<ShippingCountry[]>([])\n\n useEffect(() => {\n const fetchCountries = async () => {\n setLoading(true)\n try {\n const response = await fetch('/api/multipass/account/countries', {\n headers: {\n 'current-language': locale,\n },\n })\n const res: any = await response.json()\n\n let shipsToCountries: ShippingCountry[] = res?.data?.data || []\n\n // \u5B57\u6BCD\u987A\u5E8F\u6392\u5E8F\n shipsToCountries = shipsToCountries.sort((a, b) => {\n return a.name.localeCompare(b.name)\n })\n\n console.log('fetch shipsToCountries', shipsToCountries)\n setCountries(shipsToCountries)\n } catch (e) {\n setCountries([])\n console.error(e)\n } finally {\n setLoading(false)\n }\n }\n\n fetchCountries()\n }, [locale])\n\n return {\n isLoading,\n countries,\n }\n}\n\nexport default useCountries\n"],
5
+ "mappings": "AAAA,OAAS,aAAAA,EAAW,YAAAC,MAAgB,QAEpC,OAAS,sBAAAC,MAA0B,gBAGnC,SAASC,EAAa,CAAE,mBAAAC,CAAmB,EAAmC,CAC5E,KAAM,CAAE,OAAAC,EAAS,EAAG,EAAIH,EAAmB,EAErC,CAACI,EAAWC,CAAU,EAAIN,EAAS,EAAK,EACxC,CAACO,EAAWC,CAAY,EAAIR,EAA4B,CAAC,CAAC,EAEhE,OAAAD,EAAU,IAAM,EACS,SAAY,CACjCO,EAAW,EAAI,EACf,GAAI,CAQF,IAAIG,GAFa,MALA,MAAM,MAAM,mCAAoC,CAC/D,QAAS,CACP,mBAAoBL,CACtB,CACF,CAAC,GAC+B,KAAK,IAEU,MAAM,MAAQ,CAAC,EAG9DK,EAAmBA,EAAiB,KAAK,CAACC,EAAGC,IACpCD,EAAE,KAAK,cAAcC,EAAE,IAAI,CACnC,EAED,QAAQ,IAAI,yBAA0BF,CAAgB,EACtDD,EAAaC,CAAgB,CAC/B,OAASG,EAAG,CACVJ,EAAa,CAAC,CAAC,EACf,QAAQ,MAAMI,CAAC,CACjB,QAAE,CACAN,EAAW,EAAK,CAClB,CACF,GAEe,CACjB,EAAG,CAACF,CAAM,CAAC,EAEJ,CACL,UAAAC,EACA,UAAAE,CACF,CACF,CAEA,IAAOM,EAAQX",
6
+ "names": ["useEffect", "useState", "useHeadlessContext", "useCountries", "shopifyStoreDomain", "locale", "isLoading", "setLoading", "countries", "setCountries", "shipsToCountries", "a", "b", "e", "useCountries_default"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use client";import{Fragment as ae,jsx as t,jsxs as r}from"react/jsx-runtime";import{lazy as l,Suspense as j,useState as f,useCallback as k,useMemo as _}from"react";import{Picture as D}from"@anker-in/headless-ui";import{useHeadlessContext as L,classNames as P}from"@anker-in/lib";import{MemberPopupActionType as a,MemberPopupPageScope as M,MemberPopupPanelType as n}from"./type";import{MemberPopupProvider as U}from"./context/provider";import{useMemberPopupContext as B}from"./context/provider";import{ViewStackContext as W}from"./context/viewStack";import{IconClose as q,IconArrow as F,IconCredit as G,IconBag as J,IconReferral as K,IconSwitch as Q,IconSubscription as X}from"./icons";import{ROUNDED_BRANDS as Y}from"../../constants";const Z=l(()=>import("./panels/EarnCredits")),$=l(()=>import("./panels/ConsumeCredits")),ee=l(()=>import("./panels/Referral")),te=l(()=>import("./panels/EarnCredits/CompleteProfilePanel")),se=l(()=>import("./panels/EarnCredits/SubscribePanel")),oe=l(()=>import("./panels/EarnCredits/SubscribeEmailPanel")),re=l(()=>import("./panels/EarnCredits/ActivatePanel")),ne=l(()=>import("./panels/ConsumeCredits/RedeemCouponPanel"));function ve({copy:e,bottomOffset:m="24px",...c}){return t(U,{...c,earnCreditsCopy:e.earnCredits,children:t(ie,{copy:e,bottomOffset:m})})}function ie({copy:e,bottomOffset:m}){const{profile:c,openSignInPopup:C,openSignUpPopup:u}=B(),{brand:b,storeDomain:x}=L(),g=Y.includes(b),O=!!c,[S,N]=f(!1),[w,v]=f([]),[A,V]=f(!1),[R,z]=f(!1),[E,H]=f(!1),s=w[w.length-1]??null;if(!_(()=>{const o=e.pageConfig;if(!o)return!0;const p=typeof window<"u"?window.location.pathname:"",y=o.pages.some(I=>p===I||p.startsWith(I+"/"));switch(o.scope){case M.Include:return y;case M.Exclude:return!y;default:return!0}},[e.pageConfig]))return null;const d=k(o=>{v(p=>[...p,o])},[]),i=k(()=>{v(o=>o.slice(0,-1))},[]);function T(o,p){switch(o){case a.ExternalLink:p&&window.open(p,"_blank","noopener,noreferrer");break;case a.OpenEarnCredits:d({type:n.EarnCredits});break;case a.OpenConsumeCredits:d({type:n.ConsumeCredits});break;case a.OpenReferral:d({type:n.Referral});break;case a.OpenSubscribe:d({type:n.Subscribe});break}}function h(){N(!1),v([])}return r(W.Provider,{value:{pushView:d,popView:i},children:[S&&t("div",{className:"fixed inset-0 z-[998]",onClick:h}),r("div",{className:"fixed right-0 z-[999] flex flex-col items-end pr-[16px]",style:{bottom:m},children:[S&&r("div",{className:P("relative mb-[8px] flex w-[420px] max-w-[calc(100vw-32px)] min-h-[600px] flex-col overflow-hidden bg-white shadow-[0_8px_32px_rgba(0,0,0,0.16)] cmp-md:w-[358px] cmp-sm:w-[258px]",g?"rounded-[12px]":"rounded-none"),onClick:o=>o.stopPropagation(),children:[t("div",{className:"absolute right-[-8px] top-[24px] size-0 border-y-8 border-l-8 border-y-transparent border-l-white"}),r("div",{className:"flex items-center justify-end pl-[10px] pr-[16px] pb-[8px] pt-[16px]",children:[s!==null&&t("button",{className:"mr-auto flex size-[24px] cursor-pointer items-center justify-center",onClick:i,"aria-label":"Back",children:t(Q,{})}),t("button",{className:"flex size-[24px] cursor-pointer items-center justify-center",onClick:h,"aria-label":"Close",children:t(q,{})})]}),r("div",{className:"flex flex-1 flex-col gap-[12px] overflow-y-auto p-[16px]",style:{maxHeight:"min(calc(80vh - 118px), 606px)"},children:[s===null&&r(ae,{children:[(e.title||e.subtitle)&&r("div",{className:"flex flex-col gap-[4px]",children:[e.title&&t("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),e.subtitle&&t("p",{className:"text-[16px] font-[700] leading-snug text-[#4a4c56]",children:e.subtitle})]}),e.list.map((o,p)=>t(pe,{item:o,onAction:T,rounded:g},p))]}),s!==null&&r(j,{fallback:t("div",{className:"flex items-center justify-center py-[32px]",children:t("div",{className:"size-[32px] animate-spin rounded-full border-[3px] border-[#080a0f] border-t-transparent"})}),children:[s.type===n.EarnCredits&&e.earnCredits&&t(Z,{copy:e.earnCredits,onClose:i,isSubscribeSuccess:A,isActivateSuccess:R,isProfileCompleteSuccess:E,onSubscribeSuccess:()=>V(!0),onActivateSuccess:()=>z(!0),onProfileCompleteSuccess:()=>H(!0)}),s.type===n.ConsumeCredits&&e.consumeCredits&&t($,{copy:e.consumeCredits,onClose:i}),s.type===n.Referral&&e.referral&&t(ee,{copy:e.referral,onClose:i}),s.type===n.CompleteProfile&&e.earnCredits&&t(te,{copy:e.earnCredits.completeProfile,shopifyStoreDomain:x,onClose:i,onSuccess:s.props?.onSuccess}),s.type===n.Subscribe&&e.subscribe&&t(se,{copy:e.subscribe,email:c?.email,onClose:i,onSuccess:s.props?.onSuccess}),s.type===n.SubscribeEmail&&e.earnCredits&&t(oe,{copy:e.earnCredits.subscribe,email:c?.email,onClose:i,onSuccess:s.props?.onSuccess}),s.type===n.Activate&&e.earnCredits&&t(re,{copy:e.earnCredits.authCodeActivate,onClose:i,onSuccess:s.props?.onSuccess}),s.type===n.RedeemCoupon&&s.props&&e.consumeCredits&&t(ne,{itemTitle:s.props.itemTitle,itemCredits:s.props.itemCredits,itemImage:s.props.itemImage,itemValue:s.props.itemValue,itemOff:s.props.itemOff,redeemId:s.props.redeemId,userId:s.props.userId,alpcConfig:s.props.alpcConfig,copy:e.consumeCredits.redeemModal,pointUnit:e.consumeCredits.pointUnit,onClose:i})]})]}),e.footer&&!O&&t("div",{className:"border-t border-[#dadce0] p-[16px]",children:r("div",{className:"flex items-center justify-between gap-[16px]",children:[r("div",{className:"flex items-center gap-[4px]",children:[t("span",{className:"text-[14px] font-[700] text-[#080a0f]",children:e.footer.loginHint}),t("button",{className:"cursor-pointer text-[14px] font-[700] text-[#080a0f] underline",onClick:C,children:e.footer.loginLabel})]}),t("div",{className:"flex shrink-0 items-center gap-[8px]",children:t("button",{className:P("cursor-pointer border-[1.6px] border-[#080a0f] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-[#080a0f]",g?"rounded-[4px]":"rounded-none"),onClick:u,children:e.footer.joinLabel})})]})})]}),t("button",{className:"flex cursor-pointer items-center justify-center rounded-full bg-white shadow-lg",onClick:()=>N(o=>!o),"aria-label":e.triggerImg.alt??"Open member popup",children:t(D,{source:e.triggerImg.url,alt:e.triggerImg.alt??"",className:"size-[58px]"})})]})]})}function pe({item:e,onAction:m,rounded:c}){const C={[a.OpenEarnCredits]:G,[a.OpenConsumeCredits]:J,[a.OpenReferral]:K,[a.OpenSubscribe]:X};return r("div",{className:P("flex flex-col gap-[16px] bg-[#f5f6f7] p-[16px]",c?"rounded-[8px]":"rounded-none"),children:[r("div",{className:"flex flex-col gap-[4px]",children:[t("h3",{className:"text-[20px] font-[700] leading-[1.2] text-[#1e2024]",children:e.title}),e.description&&t("p",{className:"text-[14px] font-[700] leading-[1.43] text-[#1e2024]",children:e.description})]}),t("div",{className:"flex flex-col gap-[16px]",children:e.links.map((u,b)=>{const x=C[u.type];return r("div",{children:[b>0&&t("div",{className:"mb-[16px] h-px bg-[#dadce0]"}),r("button",{className:"flex w-full cursor-pointer items-center gap-[12px]",onClick:()=>m(u.type,u.url),children:[x&&t(x,{className:"size-[24px] shrink-0"}),t("span",{className:"flex-1 text-left text-[14px] font-[700] text-[#1e2024]",children:u.label}),t(F,{className:"size-[16px] shrink-0"})]})]},b)})})]})}export{ve as MemberPopup};
1
+ "use client";import{Fragment as ce,jsx as t,jsxs as r}from"react/jsx-runtime";import{lazy as l,Suspense as D,useState as d,useCallback as M,useMemo as F}from"react";import{Picture as L}from"@anker-in/headless-ui";import{useHeadlessContext as U,classNames as P}from"@anker-in/lib";import{MemberPopupActionType as a,MemberPopupPageScope as O,MemberPopupPanelType as i}from"./type";import{MemberPopupProvider as B}from"./context/provider";import{useMemberPopupContext as W}from"./context/provider";import{ViewStackContext as q}from"./context/viewStack";import{IconClose as G,IconArrow as J,IconCredit as K,IconBag as Q,IconReferral as X,IconSwitch as Y,IconSubscription as Z}from"./icons";import{ROUNDED_BRANDS as $}from"../../constants";const ee=l(()=>import("./panels/EarnCredits")),te=l(()=>import("./panels/ConsumeCredits")),se=l(()=>import("./panels/Referral")),oe=l(()=>import("./panels/EarnCredits/CompleteProfilePanel")),re=l(()=>import("./panels/ActivitiesSubscribePanel")),ie=l(()=>import("./panels/EarnCredits/SubscribeEmailPanel")),ne=l(()=>import("./panels/EarnCredits/ActivatePanel")),pe=l(()=>import("./panels/ConsumeCredits/RedeemCouponPanel"));function Se({copy:e,bottomOffset:u="24px",...c}){return t(B,{...c,earnCreditsCopy:e.earnCredits,children:t(ae,{copy:e,bottomOffset:u})})}function ae({copy:e,bottomOffset:u}){const{profile:c,openSignInPopup:C,openSignUpPopup:m}=W(),{brand:b,storeDomain:x}=U(),g=$.includes(b),A=!!c,[S,w]=d(!1),[h,v]=d([]),[V,H]=d(!1),[R,z]=d(!1),[E,T]=d(!1),[j,N]=d(!1),s=h[h.length-1]??null;if(!F(()=>{const o=e.pageConfig;if(!o)return!0;const p=typeof window<"u"?window.location.pathname:"",I=o.pages.some(k=>p===k||p.startsWith(k+"/"));switch(o.scope){case O.Include:return I;case O.Exclude:return!I;default:return!0}},[e.pageConfig]))return null;const f=M(o=>{v(p=>[...p,o])},[]),n=M(()=>{v(o=>o.slice(0,-1))},[]);function _(o,p){switch(o){case a.ExternalLink:p&&window.open(p,"_blank","noopener,noreferrer");break;case a.OpenEarnCredits:f({type:i.EarnCredits});break;case a.OpenConsumeCredits:f({type:i.ConsumeCredits});break;case a.OpenReferral:f({type:i.Referral});break;case a.OpenSubscribe:f({type:i.Subscribe});break}}function y(){w(!1),v([]),N(!1)}return r(q.Provider,{value:{pushView:f,popView:n},children:[S&&t("div",{className:"fixed inset-0 z-[998]",onClick:y}),r("div",{className:"fixed right-0 z-[999] flex flex-row items-end pr-[16px] md:flex-col md:items-end md:right-0 md:w-screen md:pr-0 md:pl-0",style:{bottom:u},children:[S&&r("div",{className:P("relative mr-[8px] flex w-[420px] max-w-[calc(100vw-32px)] min-h-[500px] flex-col overflow-hidden bg-white shadow-[0_8px_32px_rgba(0,0,0,0.16)] md:mr-0 md:mb-[8px] md:mx-[16px] md:w-[calc(100vw-32px)] md:max-w-[400px]",g?"rounded-[12px]":"rounded-none"),style:{maxHeight:"min(80vh, 606px)"},onClick:o=>o.stopPropagation(),children:[t("div",{className:"absolute right-[-8px] top-[24px] size-0 border-y-8 border-l-8 border-y-transparent border-l-white md:bottom-[-8px] md:left-auto md:right-[29px] md:top-auto md:border-x-8 md:border-b-transparent md:border-t-white"}),r("div",{className:"flex items-center justify-end pl-[10px] pr-[16px] pb-[8px] pt-[16px]",children:[s!==null&&t("button",{className:"mr-auto flex size-[24px] cursor-pointer items-center justify-center",onClick:n,"aria-label":"Back",children:t(Y,{})}),t("button",{className:"flex size-[24px] cursor-pointer items-center justify-center",onClick:y,"aria-label":"Close",children:t(G,{})})]}),r("div",{className:"flex flex-1 flex-col gap-[12px] overflow-y-auto p-[16px]",children:[s===null&&r(ce,{children:[(e.title||e.subtitle)&&r("div",{className:"flex flex-col gap-[4px]",children:[e.title&&t("h2",{className:"text-[24px] font-[700] leading-[1.2] text-[#080a0f]",children:e.title}),e.subtitle&&t("p",{className:"text-[16px] font-[700] leading-snug text-[#4a4c56]",children:e.subtitle})]}),e.list.map((o,p)=>t(le,{item:o,onAction:_,rounded:g},p))]}),s!==null&&r(D,{fallback:t("div",{className:"flex items-center justify-center py-[32px]",children:t("div",{className:"size-[32px] animate-spin rounded-full border-[3px] border-[#080a0f] border-t-transparent"})}),children:[s.type===i.EarnCredits&&e.earnCredits&&t(ee,{copy:e.earnCredits,onClose:n,isSubscribeSuccess:V,isActivateSuccess:R,isProfileCompleteSuccess:E,onSubscribeSuccess:()=>H(!0),onActivateSuccess:()=>z(!0),onProfileCompleteSuccess:()=>T(!0)}),s.type===i.ConsumeCredits&&e.consumeCredits&&t(te,{copy:e.consumeCredits,onClose:n}),s.type===i.Referral&&e.referral&&t(se,{copy:e.referral,onClose:n}),s.type===i.CompleteProfile&&e.earnCredits&&t(oe,{copy:e.earnCredits.completeProfile,shopifyStoreDomain:x,onClose:n,onSuccess:s.props?.onSuccess}),s.type===i.Subscribe&&e.activitiesSubscribe&&t(re,{copy:e.activitiesSubscribe,email:c?.email,onSuccess:s.props?.onSuccess,hideForm:j,onHideForm:()=>N(!0)}),s.type===i.SubscribeEmail&&e.earnCredits&&t(ie,{copy:e.earnCredits.subscribe,email:c?.email,onClose:n,onSuccess:s.props?.onSuccess}),s.type===i.Activate&&e.earnCredits&&t(ne,{copy:e.earnCredits.authCodeActivate,onClose:n,onSuccess:s.props?.onSuccess}),s.type===i.RedeemCoupon&&s.props&&e.consumeCredits&&t(pe,{itemTitle:s.props.itemTitle,itemCredits:s.props.itemCredits,itemImage:s.props.itemImage,itemValue:s.props.itemValue,itemOff:s.props.itemOff,redeemId:s.props.redeemId,userId:s.props.userId,alpcConfig:s.props.alpcConfig,copy:e.consumeCredits.redeemModal,pointUnit:e.consumeCredits.pointUnit,onClose:n})]})]}),e.footer&&!A&&t("div",{className:"border-t border-[#dadce0] p-[16px]",children:r("div",{className:"flex items-center justify-between gap-[16px]",children:[r("div",{className:"flex items-center gap-[4px]",children:[t("span",{className:"text-[14px] font-[700] text-[#080a0f]",children:e.footer.loginHint}),t("button",{className:"cursor-pointer text-[14px] font-[700] text-[#080a0f] underline",onClick:C,children:e.footer.loginLabel})]}),t("div",{className:"flex shrink-0 items-center gap-[8px]",children:t("button",{className:P("cursor-pointer border-[1.6px] border-[#080a0f] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-[#080a0f]",g?"rounded-[4px]":"rounded-none"),onClick:m,children:e.footer.joinLabel})})]})})]}),t("button",{className:"flex cursor-pointer items-center justify-center rounded-full bg-white shadow-lg md:ml-auto md:mr-[16px]",onClick:()=>w(o=>!o),"aria-label":e.triggerImg.alt??"Open member popup",children:t(L,{source:e.triggerImg.url,alt:e.triggerImg.alt??"",className:"size-[58px]"})})]})]})}function le({item:e,onAction:u,rounded:c}){const C={[a.OpenEarnCredits]:K,[a.OpenConsumeCredits]:Q,[a.OpenReferral]:X,[a.OpenSubscribe]:Z};return r("div",{className:P("flex flex-col gap-[16px] bg-[#f5f6f7] p-[16px]",c?"rounded-[8px]":"rounded-none"),children:[r("div",{className:"flex flex-col gap-[4px]",children:[t("h3",{className:"text-[20px] font-[700] leading-[1.2] text-[#1e2024]",children:e.title}),e.description&&t("p",{className:"text-[14px] font-[700] leading-[1.43] text-[#1e2024]",children:e.description})]}),t("div",{className:"flex flex-col gap-[16px]",children:e.links.map((m,b)=>{const x=C[m.type];return r("div",{children:[b>0&&t("div",{className:"mb-[16px] h-px bg-[#dadce0]"}),r("button",{className:"flex w-full cursor-pointer items-center gap-[12px]",onClick:()=>u(m.type,m.url),children:[x&&t(x,{className:"size-[24px] shrink-0"}),t("span",{className:"flex-1 text-left text-[14px] font-[700] text-[#1e2024]",children:m.label}),t(J,{className:"size-[16px] shrink-0"})]})]},b)})})]})}export{Se as MemberPopup};
2
2
  //# sourceMappingURL=MemberPopup.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/memberPopup/MemberPopup.tsx"],
4
- "sourcesContent": ["'use client'\n\nimport { lazy, Suspense, useState, useCallback, useMemo } from 'react'\nimport { Picture } from '@anker-in/headless-ui'\nimport { type HeadlessConfig, useHeadlessContext, classNames as cn } from '@anker-in/lib'\nimport {\n MemberPopupActionType,\n MemberPopupPageScope,\n MemberPopupPanelType,\n type MemberPopupCopy,\n type MemberPopupContextValue,\n type MemberPopupItem,\n} from './type'\nimport { MemberPopupProvider } from './context/provider'\nimport { useMemberPopupContext } from './context/provider'\nimport { ViewStackContext, type ViewPayload } from './context/viewStack'\nimport { IconClose, IconArrow, IconCredit, IconBag, IconReferral, IconSwitch, IconSubscription } from './icons'\nimport { ROUNDED_BRANDS } from '../../constants'\n\nconst EarnCredits = lazy(() => import('./panels/EarnCredits'))\nconst ConsumeCredits = lazy(() => import('./panels/ConsumeCredits'))\nconst Referral = lazy(() => import('./panels/Referral'))\nconst CompleteProfile = lazy(() => import('./panels/EarnCredits/CompleteProfilePanel'))\nconst Subscribe = lazy(() => import('./panels/EarnCredits/SubscribePanel'))\nconst SubscribeEmail = lazy(() => import('./panels/EarnCredits/SubscribeEmailPanel'))\nconst Activate = lazy(() => import('./panels/EarnCredits/ActivatePanel'))\nconst RedeemCoupon = lazy(() => import('./panels/ConsumeCredits/RedeemCouponPanel'))\n\ntype MemberPopupProps = MemberPopupContextValue & {\n headlessConfig: HeadlessConfig\n copy: MemberPopupCopy\n bottomOffset?: string\n}\n\nexport function MemberPopup({ copy, bottomOffset = '24px', ...providerProps }: MemberPopupProps) {\n return (\n <MemberPopupProvider {...providerProps} earnCreditsCopy={copy.earnCredits}>\n <MemberPopupContent copy={copy} bottomOffset={bottomOffset} />\n </MemberPopupProvider>\n )\n}\n\ntype MemberPopupContentProps = {\n copy: MemberPopupCopy\n bottomOffset: string\n}\n\nfunction MemberPopupContent({ copy, bottomOffset }: MemberPopupContentProps) {\n const { profile, openSignInPopup, openSignUpPopup } = useMemberPopupContext()\n const { brand, storeDomain } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const isLogin = !!profile\n const [isOpen, setIsOpen] = useState(false)\n const [viewStack, setViewStack] = useState<ViewPayload[]>([])\n const [isSubscribeSuccess, setIsSubscribeSuccess] = useState(false)\n const [isActivateSuccess, setIsActivateSuccess] = useState(false)\n const [isProfileCompleteSuccess, setIsProfileCompleteSuccess] = useState(false)\n\n const currentView = viewStack[viewStack.length - 1] ?? null\n\n const isVisible = useMemo(() => {\n const config = copy.pageConfig\n if (!config) return true\n const pathname = typeof window !== 'undefined' ? window.location.pathname : ''\n const matches = config.pages.some(page => pathname === page || pathname.startsWith(page + '/'))\n switch (config.scope) {\n case MemberPopupPageScope.Include:\n return matches\n case MemberPopupPageScope.Exclude:\n return !matches\n default:\n return true\n }\n }, [copy.pageConfig])\n\n if (!isVisible) return null\n\n const pushView = useCallback((view: ViewPayload) => {\n setViewStack(prev => [...prev, view])\n }, [])\n\n const popView = useCallback(() => {\n setViewStack(prev => prev.slice(0, -1))\n }, [])\n\n function handleAction(type: MemberPopupActionType, url?: string) {\n switch (type) {\n case MemberPopupActionType.ExternalLink:\n if (url) window.open(url, '_blank', 'noopener,noreferrer')\n break\n case MemberPopupActionType.OpenEarnCredits:\n pushView({ type: MemberPopupPanelType.EarnCredits })\n break\n case MemberPopupActionType.OpenConsumeCredits:\n pushView({ type: MemberPopupPanelType.ConsumeCredits })\n break\n case MemberPopupActionType.OpenReferral:\n pushView({ type: MemberPopupPanelType.Referral })\n break\n case MemberPopupActionType.OpenSubscribe:\n pushView({ type: MemberPopupPanelType.Subscribe })\n break\n }\n }\n\n function handleClose() {\n setIsOpen(false)\n setViewStack([])\n }\n\n return (\n <ViewStackContext.Provider value={{ pushView, popView }}>\n {isOpen && <div className=\"fixed inset-0 z-[998]\" onClick={handleClose} />}\n <div className=\"fixed right-0 z-[999] flex flex-col items-end pr-[16px]\" style={{ bottom: bottomOffset }}>\n {isOpen && (\n <div\n className={cn(\n 'relative mb-[8px] flex w-[420px] max-w-[calc(100vw-32px)] min-h-[600px] flex-col overflow-hidden bg-white shadow-[0_8px_32px_rgba(0,0,0,0.16)] cmp-md:w-[358px] cmp-sm:w-[258px]',\n rounded ? 'rounded-[12px]' : 'rounded-none'\n )}\n onClick={e => e.stopPropagation()}\n >\n <div className=\"absolute right-[-8px] top-[24px] size-0 border-y-8 border-l-8 border-y-transparent border-l-white\" />\n <div className=\"flex items-center justify-end pl-[10px] pr-[16px] pb-[8px] pt-[16px]\">\n {currentView !== null && (\n <button\n className=\"mr-auto flex size-[24px] cursor-pointer items-center justify-center\"\n onClick={popView}\n aria-label=\"Back\"\n >\n <IconSwitch />\n </button>\n )}\n <button\n className=\"flex size-[24px] cursor-pointer items-center justify-center\"\n onClick={handleClose}\n aria-label=\"Close\"\n >\n <IconClose />\n </button>\n </div>\n\n <div\n className=\"flex flex-1 flex-col gap-[12px] overflow-y-auto p-[16px]\"\n style={{ maxHeight: 'min(calc(80vh - 118px), 606px)' }}\n >\n {currentView === null && (\n <>\n {(copy.title || copy.subtitle) && (\n <div className=\"flex flex-col gap-[4px]\">\n {copy.title && (\n <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>\n )}\n {copy.subtitle && (\n <p className=\"text-[16px] font-[700] leading-snug text-[#4a4c56]\">{copy.subtitle}</p>\n )}\n </div>\n )}\n {copy.list.map((item, i) => (\n <HomeCard key={i} item={item} onAction={handleAction} rounded={rounded} />\n ))}\n </>\n )}\n\n {currentView !== null && (\n <Suspense\n fallback={\n <div className=\"flex items-center justify-center py-[32px]\">\n <div className=\"size-[32px] animate-spin rounded-full border-[3px] border-[#080a0f] border-t-transparent\" />\n </div>\n }\n >\n {currentView.type === MemberPopupPanelType.EarnCredits && copy.earnCredits && (\n <EarnCredits\n copy={copy.earnCredits}\n onClose={popView}\n isSubscribeSuccess={isSubscribeSuccess}\n isActivateSuccess={isActivateSuccess}\n isProfileCompleteSuccess={isProfileCompleteSuccess}\n onSubscribeSuccess={() => setIsSubscribeSuccess(true)}\n onActivateSuccess={() => setIsActivateSuccess(true)}\n onProfileCompleteSuccess={() => setIsProfileCompleteSuccess(true)}\n />\n )}\n {currentView.type === MemberPopupPanelType.ConsumeCredits && copy.consumeCredits && (\n <ConsumeCredits copy={copy.consumeCredits} onClose={popView} />\n )}\n {currentView.type === MemberPopupPanelType.Referral && copy.referral && (\n <Referral copy={copy.referral} onClose={popView} />\n )}\n {currentView.type === MemberPopupPanelType.CompleteProfile && copy.earnCredits && (\n <CompleteProfile\n copy={copy.earnCredits.completeProfile}\n shopifyStoreDomain={storeDomain}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.Subscribe && copy.subscribe && (\n <Subscribe\n copy={copy.subscribe}\n email={profile?.email}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.SubscribeEmail && copy.earnCredits && (\n <SubscribeEmail\n copy={copy.earnCredits.subscribe}\n email={profile?.email}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.Activate && copy.earnCredits && (\n <Activate\n copy={copy.earnCredits.authCodeActivate}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.RedeemCoupon &&\n currentView.props &&\n copy.consumeCredits && (\n <RedeemCoupon\n itemTitle={currentView.props.itemTitle}\n itemCredits={currentView.props.itemCredits}\n itemImage={currentView.props.itemImage}\n itemValue={currentView.props.itemValue}\n itemOff={currentView.props.itemOff}\n redeemId={currentView.props.redeemId}\n userId={currentView.props.userId}\n alpcConfig={currentView.props.alpcConfig}\n copy={copy.consumeCredits.redeemModal}\n pointUnit={copy.consumeCredits.pointUnit}\n onClose={popView}\n />\n )}\n </Suspense>\n )}\n </div>\n\n {copy.footer && !isLogin && (\n <div className=\"border-t border-[#dadce0] p-[16px]\">\n <div className=\"flex items-center justify-between gap-[16px]\">\n <div className=\"flex items-center gap-[4px]\">\n <span className=\"text-[14px] font-[700] text-[#080a0f]\">{copy.footer.loginHint}</span>\n <button\n className=\"cursor-pointer text-[14px] font-[700] text-[#080a0f] underline\"\n onClick={openSignInPopup}\n >\n {copy.footer.loginLabel}\n </button>\n </div>\n <div className=\"flex shrink-0 items-center gap-[8px]\">\n <button\n className={cn(\n 'cursor-pointer border-[1.6px] border-[#080a0f] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-[#080a0f]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n onClick={openSignUpPopup}\n >\n {copy.footer.joinLabel}\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n\n <button\n className=\"flex cursor-pointer items-center justify-center rounded-full bg-white shadow-lg\"\n onClick={() => setIsOpen(prev => !prev)}\n aria-label={copy.triggerImg.alt ?? 'Open member popup'}\n >\n <Picture source={copy.triggerImg.url} alt={copy.triggerImg.alt ?? ''} className=\"size-[58px]\" />\n </button>\n </div>\n </ViewStackContext.Provider>\n )\n}\n\ntype HomeCardProps = {\n item: MemberPopupItem\n onAction: (type: MemberPopupActionType, url?: string) => void\n rounded: boolean\n}\n\nfunction HomeCard({ item, onAction, rounded }: HomeCardProps) {\n const ACTION_ICON: Partial<Record<MemberPopupActionType, typeof IconCredit>> = {\n [MemberPopupActionType.OpenEarnCredits]: IconCredit,\n [MemberPopupActionType.OpenConsumeCredits]: IconBag,\n [MemberPopupActionType.OpenReferral]: IconReferral,\n [MemberPopupActionType.OpenSubscribe]: IconSubscription,\n }\n\n return (\n <div className={cn('flex flex-col gap-[16px] bg-[#f5f6f7] p-[16px]', rounded ? 'rounded-[8px]' : 'rounded-none')}>\n <div className=\"flex flex-col gap-[4px]\">\n <h3 className=\"text-[20px] font-[700] leading-[1.2] text-[#1e2024]\">{item.title}</h3>\n {item.description && <p className=\"text-[14px] font-[700] leading-[1.43] text-[#1e2024]\">{item.description}</p>}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n {item.links.map((link, i) => {\n const IconComponent = ACTION_ICON[link.type]\n return (\n <div key={i}>\n {i > 0 && <div className=\"mb-[16px] h-px bg-[#dadce0]\" />}\n <button\n className=\"flex w-full cursor-pointer items-center gap-[12px]\"\n onClick={() => onAction(link.type, link.url)}\n >\n {IconComponent && <IconComponent className=\"size-[24px] shrink-0\" />}\n <span className=\"flex-1 text-left text-[14px] font-[700] text-[#1e2024]\">{link.label}</span>\n <IconArrow className=\"size-[16px] shrink-0\" />\n </button>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n"],
5
- "mappings": "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",
6
- "names": ["Fragment", "jsx", "jsxs", "lazy", "Suspense", "useState", "useCallback", "useMemo", "Picture", "useHeadlessContext", "cn", "MemberPopupActionType", "MemberPopupPageScope", "MemberPopupPanelType", "MemberPopupProvider", "useMemberPopupContext", "ViewStackContext", "IconClose", "IconArrow", "IconCredit", "IconBag", "IconReferral", "IconSwitch", "IconSubscription", "ROUNDED_BRANDS", "EarnCredits", "ConsumeCredits", "Referral", "CompleteProfile", "Subscribe", "SubscribeEmail", "Activate", "RedeemCoupon", "MemberPopup", "copy", "bottomOffset", "providerProps", "MemberPopupContent", "profile", "openSignInPopup", "openSignUpPopup", "brand", "storeDomain", "rounded", "isLogin", "isOpen", "setIsOpen", "viewStack", "setViewStack", "isSubscribeSuccess", "setIsSubscribeSuccess", "isActivateSuccess", "setIsActivateSuccess", "isProfileCompleteSuccess", "setIsProfileCompleteSuccess", "currentView", "config", "pathname", "matches", "page", "pushView", "view", "prev", "popView", "handleAction", "type", "url", "handleClose", "e", "item", "i", "HomeCard", "onAction", "ACTION_ICON", "link", "IconComponent"]
4
+ "sourcesContent": ["'use client'\n\nimport { lazy, Suspense, useState, useCallback, useMemo } from 'react'\nimport { Picture } from '@anker-in/headless-ui'\nimport { type HeadlessConfig, useHeadlessContext, classNames as cn } from '@anker-in/lib'\nimport {\n MemberPopupActionType,\n MemberPopupPageScope,\n MemberPopupPanelType,\n type MemberPopupCopy,\n type MemberPopupContextValue,\n type MemberPopupItem,\n} from './type'\nimport { MemberPopupProvider } from './context/provider'\nimport { useMemberPopupContext } from './context/provider'\nimport { ViewStackContext, type ViewPayload } from './context/viewStack'\nimport { IconClose, IconArrow, IconCredit, IconBag, IconReferral, IconSwitch, IconSubscription } from './icons'\nimport { ROUNDED_BRANDS } from '../../constants'\n\nconst EarnCredits = lazy(() => import('./panels/EarnCredits'))\nconst ConsumeCredits = lazy(() => import('./panels/ConsumeCredits'))\nconst Referral = lazy(() => import('./panels/Referral'))\nconst CompleteProfile = lazy(() => import('./panels/EarnCredits/CompleteProfilePanel'))\nconst ActivitiesSubscribe = lazy(() => import('./panels/ActivitiesSubscribePanel'))\nconst SubscribeEmail = lazy(() => import('./panels/EarnCredits/SubscribeEmailPanel'))\nconst Activate = lazy(() => import('./panels/EarnCredits/ActivatePanel'))\nconst RedeemCoupon = lazy(() => import('./panels/ConsumeCredits/RedeemCouponPanel'))\n\ntype MemberPopupProps = MemberPopupContextValue & {\n headlessConfig: HeadlessConfig\n copy: MemberPopupCopy\n bottomOffset?: string\n}\n\nexport function MemberPopup({ copy, bottomOffset = '24px', ...providerProps }: MemberPopupProps) {\n return (\n <MemberPopupProvider {...providerProps} earnCreditsCopy={copy.earnCredits}>\n <MemberPopupContent copy={copy} bottomOffset={bottomOffset} />\n </MemberPopupProvider>\n )\n}\n\ntype MemberPopupContentProps = {\n copy: MemberPopupCopy\n bottomOffset: string\n}\n\nfunction MemberPopupContent({ copy, bottomOffset }: MemberPopupContentProps) {\n const { profile, openSignInPopup, openSignUpPopup } = useMemberPopupContext()\n const { brand, storeDomain } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n const isLogin = !!profile\n const [isOpen, setIsOpen] = useState(false)\n const [viewStack, setViewStack] = useState<ViewPayload[]>([])\n const [isSubscribeSuccess, setIsSubscribeSuccess] = useState(false)\n const [isActivateSuccess, setIsActivateSuccess] = useState(false)\n const [isProfileCompleteSuccess, setIsProfileCompleteSuccess] = useState(false)\n const [isSubscribeFormHidden, setIsSubscribeFormHidden] = useState(false)\n\n const currentView = viewStack[viewStack.length - 1] ?? null\n\n const isVisible = useMemo(() => {\n const config = copy.pageConfig\n if (!config) return true\n const pathname = typeof window !== 'undefined' ? window.location.pathname : ''\n const matches = config.pages.some(page => pathname === page || pathname.startsWith(page + '/'))\n switch (config.scope) {\n case MemberPopupPageScope.Include:\n return matches\n case MemberPopupPageScope.Exclude:\n return !matches\n default:\n return true\n }\n }, [copy.pageConfig])\n\n if (!isVisible) return null\n\n const pushView = useCallback((view: ViewPayload) => {\n setViewStack(prev => [...prev, view])\n }, [])\n\n const popView = useCallback(() => {\n setViewStack(prev => prev.slice(0, -1))\n }, [])\n\n function handleAction(type: MemberPopupActionType, url?: string) {\n switch (type) {\n case MemberPopupActionType.ExternalLink:\n if (url) window.open(url, '_blank', 'noopener,noreferrer')\n break\n case MemberPopupActionType.OpenEarnCredits:\n pushView({ type: MemberPopupPanelType.EarnCredits })\n break\n case MemberPopupActionType.OpenConsumeCredits:\n pushView({ type: MemberPopupPanelType.ConsumeCredits })\n break\n case MemberPopupActionType.OpenReferral:\n pushView({ type: MemberPopupPanelType.Referral })\n break\n case MemberPopupActionType.OpenSubscribe:\n pushView({ type: MemberPopupPanelType.Subscribe })\n break\n }\n }\n\n function handleClose() {\n setIsOpen(false)\n setViewStack([])\n setIsSubscribeFormHidden(false)\n }\n\n return (\n <ViewStackContext.Provider value={{ pushView, popView }}>\n {isOpen && <div className=\"fixed inset-0 z-[998]\" onClick={handleClose} />}\n <div\n className=\"fixed right-0 z-[999] flex flex-row items-end pr-[16px] md:flex-col md:items-end md:right-0 md:w-screen md:pr-0 md:pl-0\"\n style={{ bottom: bottomOffset }}\n >\n {isOpen && (\n <div\n className={cn(\n 'relative mr-[8px] flex w-[420px] max-w-[calc(100vw-32px)] min-h-[500px] flex-col overflow-hidden bg-white shadow-[0_8px_32px_rgba(0,0,0,0.16)] md:mr-0 md:mb-[8px] md:mx-[16px] md:w-[calc(100vw-32px)] md:max-w-[400px]',\n rounded ? 'rounded-[12px]' : 'rounded-none'\n )}\n style={{ maxHeight: 'min(80vh, 606px)' }}\n onClick={e => e.stopPropagation()}\n >\n <div className=\"absolute right-[-8px] top-[24px] size-0 border-y-8 border-l-8 border-y-transparent border-l-white md:bottom-[-8px] md:left-auto md:right-[29px] md:top-auto md:border-x-8 md:border-b-transparent md:border-t-white\" />\n <div className=\"flex items-center justify-end pl-[10px] pr-[16px] pb-[8px] pt-[16px]\">\n {currentView !== null && (\n <button\n className=\"mr-auto flex size-[24px] cursor-pointer items-center justify-center\"\n onClick={popView}\n aria-label=\"Back\"\n >\n <IconSwitch />\n </button>\n )}\n <button\n className=\"flex size-[24px] cursor-pointer items-center justify-center\"\n onClick={handleClose}\n aria-label=\"Close\"\n >\n <IconClose />\n </button>\n </div>\n\n <div className=\"flex flex-1 flex-col gap-[12px] overflow-y-auto p-[16px]\">\n {currentView === null && (\n <>\n {(copy.title || copy.subtitle) && (\n <div className=\"flex flex-col gap-[4px]\">\n {copy.title && (\n <h2 className=\"text-[24px] font-[700] leading-[1.2] text-[#080a0f]\">{copy.title}</h2>\n )}\n {copy.subtitle && (\n <p className=\"text-[16px] font-[700] leading-snug text-[#4a4c56]\">{copy.subtitle}</p>\n )}\n </div>\n )}\n {copy.list.map((item, i) => (\n <HomeCard key={i} item={item} onAction={handleAction} rounded={rounded} />\n ))}\n </>\n )}\n\n {currentView !== null && (\n <Suspense\n fallback={\n <div className=\"flex items-center justify-center py-[32px]\">\n <div className=\"size-[32px] animate-spin rounded-full border-[3px] border-[#080a0f] border-t-transparent\" />\n </div>\n }\n >\n {currentView.type === MemberPopupPanelType.EarnCredits && copy.earnCredits && (\n <EarnCredits\n copy={copy.earnCredits}\n onClose={popView}\n isSubscribeSuccess={isSubscribeSuccess}\n isActivateSuccess={isActivateSuccess}\n isProfileCompleteSuccess={isProfileCompleteSuccess}\n onSubscribeSuccess={() => setIsSubscribeSuccess(true)}\n onActivateSuccess={() => setIsActivateSuccess(true)}\n onProfileCompleteSuccess={() => setIsProfileCompleteSuccess(true)}\n />\n )}\n {currentView.type === MemberPopupPanelType.ConsumeCredits && copy.consumeCredits && (\n <ConsumeCredits copy={copy.consumeCredits} onClose={popView} />\n )}\n {currentView.type === MemberPopupPanelType.Referral && copy.referral && (\n <Referral copy={copy.referral} onClose={popView} />\n )}\n {currentView.type === MemberPopupPanelType.CompleteProfile && copy.earnCredits && (\n <CompleteProfile\n copy={copy.earnCredits.completeProfile}\n shopifyStoreDomain={storeDomain}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.Subscribe && copy.activitiesSubscribe && (\n <ActivitiesSubscribe\n copy={copy.activitiesSubscribe}\n email={profile?.email}\n onSuccess={currentView.props?.onSuccess}\n hideForm={isSubscribeFormHidden}\n onHideForm={() => setIsSubscribeFormHidden(true)}\n />\n )}\n {currentView.type === MemberPopupPanelType.SubscribeEmail && copy.earnCredits && (\n <SubscribeEmail\n copy={copy.earnCredits.subscribe}\n email={profile?.email}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.Activate && copy.earnCredits && (\n <Activate\n copy={copy.earnCredits.authCodeActivate}\n onClose={popView}\n onSuccess={currentView.props?.onSuccess}\n />\n )}\n {currentView.type === MemberPopupPanelType.RedeemCoupon &&\n currentView.props &&\n copy.consumeCredits && (\n <RedeemCoupon\n itemTitle={currentView.props.itemTitle}\n itemCredits={currentView.props.itemCredits}\n itemImage={currentView.props.itemImage}\n itemValue={currentView.props.itemValue}\n itemOff={currentView.props.itemOff}\n redeemId={currentView.props.redeemId}\n userId={currentView.props.userId}\n alpcConfig={currentView.props.alpcConfig}\n copy={copy.consumeCredits.redeemModal}\n pointUnit={copy.consumeCredits.pointUnit}\n onClose={popView}\n />\n )}\n </Suspense>\n )}\n </div>\n\n {copy.footer && !isLogin && (\n <div className=\"border-t border-[#dadce0] p-[16px]\">\n <div className=\"flex items-center justify-between gap-[16px]\">\n <div className=\"flex items-center gap-[4px]\">\n <span className=\"text-[14px] font-[700] text-[#080a0f]\">{copy.footer.loginHint}</span>\n <button\n className=\"cursor-pointer text-[14px] font-[700] text-[#080a0f] underline\"\n onClick={openSignInPopup}\n >\n {copy.footer.loginLabel}\n </button>\n </div>\n <div className=\"flex shrink-0 items-center gap-[8px]\">\n <button\n className={cn(\n 'cursor-pointer border-[1.6px] border-[#080a0f] px-[20px] pb-[10px] pt-[11px] text-[14px] font-[700] leading-[1.2] text-[#080a0f]',\n rounded ? 'rounded-[4px]' : 'rounded-none'\n )}\n onClick={openSignUpPopup}\n >\n {copy.footer.joinLabel}\n </button>\n </div>\n </div>\n </div>\n )}\n </div>\n )}\n\n <button\n className=\"flex cursor-pointer items-center justify-center rounded-full bg-white shadow-lg md:ml-auto md:mr-[16px]\"\n onClick={() => setIsOpen(prev => !prev)}\n aria-label={copy.triggerImg.alt ?? 'Open member popup'}\n >\n <Picture source={copy.triggerImg.url} alt={copy.triggerImg.alt ?? ''} className=\"size-[58px]\" />\n </button>\n </div>\n </ViewStackContext.Provider>\n )\n}\n\ntype HomeCardProps = {\n item: MemberPopupItem\n onAction: (type: MemberPopupActionType, url?: string) => void\n rounded: boolean\n}\n\nfunction HomeCard({ item, onAction, rounded }: HomeCardProps) {\n const ACTION_ICON: Partial<Record<MemberPopupActionType, typeof IconCredit>> = {\n [MemberPopupActionType.OpenEarnCredits]: IconCredit,\n [MemberPopupActionType.OpenConsumeCredits]: IconBag,\n [MemberPopupActionType.OpenReferral]: IconReferral,\n [MemberPopupActionType.OpenSubscribe]: IconSubscription,\n }\n\n return (\n <div className={cn('flex flex-col gap-[16px] bg-[#f5f6f7] p-[16px]', rounded ? 'rounded-[8px]' : 'rounded-none')}>\n <div className=\"flex flex-col gap-[4px]\">\n <h3 className=\"text-[20px] font-[700] leading-[1.2] text-[#1e2024]\">{item.title}</h3>\n {item.description && <p className=\"text-[14px] font-[700] leading-[1.43] text-[#1e2024]\">{item.description}</p>}\n </div>\n\n <div className=\"flex flex-col gap-[16px]\">\n {item.links.map((link, i) => {\n const IconComponent = ACTION_ICON[link.type]\n return (\n <div key={i}>\n {i > 0 && <div className=\"mb-[16px] h-px bg-[#dadce0]\" />}\n <button\n className=\"flex w-full cursor-pointer items-center gap-[12px]\"\n onClick={() => onAction(link.type, link.url)}\n >\n {IconComponent && <IconComponent className=\"size-[24px] shrink-0\" />}\n <span className=\"flex-1 text-left text-[14px] font-[700] text-[#1e2024]\">{link.label}</span>\n <IconArrow className=\"size-[16px] shrink-0\" />\n </button>\n </div>\n )\n })}\n </div>\n </div>\n )\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["Fragment", "jsx", "jsxs", "lazy", "Suspense", "useState", "useCallback", "useMemo", "Picture", "useHeadlessContext", "cn", "MemberPopupActionType", "MemberPopupPageScope", "MemberPopupPanelType", "MemberPopupProvider", "useMemberPopupContext", "ViewStackContext", "IconClose", "IconArrow", "IconCredit", "IconBag", "IconReferral", "IconSwitch", "IconSubscription", "ROUNDED_BRANDS", "EarnCredits", "ConsumeCredits", "Referral", "CompleteProfile", "ActivitiesSubscribe", "SubscribeEmail", "Activate", "RedeemCoupon", "MemberPopup", "copy", "bottomOffset", "providerProps", "MemberPopupContent", "profile", "openSignInPopup", "openSignUpPopup", "brand", "storeDomain", "rounded", "isLogin", "isOpen", "setIsOpen", "viewStack", "setViewStack", "isSubscribeSuccess", "setIsSubscribeSuccess", "isActivateSuccess", "setIsActivateSuccess", "isProfileCompleteSuccess", "setIsProfileCompleteSuccess", "isSubscribeFormHidden", "setIsSubscribeFormHidden", "currentView", "config", "pathname", "matches", "page", "pushView", "view", "prev", "popView", "handleAction", "type", "url", "handleClose", "e", "item", "i", "HomeCard", "onAction", "ACTION_ICON", "link", "IconComponent"]
7
7
  }
@@ -0,0 +1,10 @@
1
+ import type { SubscribeModalCopy } from '../type';
2
+ type Props = {
3
+ onSuccess?: () => void;
4
+ copy: SubscribeModalCopy;
5
+ email?: string;
6
+ hideForm: boolean;
7
+ onHideForm: () => void;
8
+ };
9
+ export default function ActivitiesSubscribeModal({ onSuccess, copy, email: initialEmail, hideForm, onHideForm, }: Props): import("react/jsx-runtime").JSX.Element;
10
+ export {};