@anker-in/campaign-ui 0.5.20 → 0.5.22

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 (100) hide show
  1. package/dist/cjs/components/credits/context/hooks/useCountries.d.ts +2 -1
  2. package/dist/cjs/components/credits/context/hooks/useCountries.js +1 -1
  3. package/dist/cjs/components/credits/context/hooks/useCountries.js.map +3 -3
  4. package/dist/cjs/components/credits/context/hooks/useShippingCountries.d.ts +2 -1
  5. package/dist/cjs/components/credits/context/hooks/useShippingCountries.js +1 -1
  6. package/dist/cjs/components/credits/context/hooks/useShippingCountries.js.map +3 -3
  7. package/dist/cjs/components/credits/context/hooks/useUploadReceipt.js +1 -1
  8. package/dist/cjs/components/credits/context/hooks/useUploadReceipt.js.map +2 -2
  9. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  10. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  11. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  12. package/dist/cjs/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
  13. package/dist/cjs/components/memberPopup/context/provider.js +1 -1
  14. package/dist/cjs/components/memberPopup/context/provider.js.map +2 -2
  15. package/dist/cjs/components/memberPopup/panels/ActivitiesSubscribePanel.js +1 -1
  16. package/dist/cjs/components/memberPopup/panels/ActivitiesSubscribePanel.js.map +3 -3
  17. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js +1 -1
  18. package/dist/cjs/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +3 -3
  19. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +1 -1
  20. package/dist/cjs/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +2 -2
  21. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +2 -1
  22. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +1 -1
  23. package/dist/cjs/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +3 -3
  24. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +1 -1
  25. package/dist/cjs/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +2 -2
  26. package/dist/cjs/components/registration/authCodeActivate/index.js +1 -1
  27. package/dist/cjs/components/registration/authCodeActivate/index.js.map +3 -3
  28. package/dist/cjs/components/registration/context/provider.d.ts +3 -1
  29. package/dist/cjs/components/registration/context/provider.js +1 -1
  30. package/dist/cjs/components/registration/context/provider.js.map +3 -3
  31. package/dist/cjs/lib/registration/hooks/useEmailValidation.d.ts +1 -1
  32. package/dist/cjs/lib/registration/hooks/useEmailValidation.js +1 -1
  33. package/dist/cjs/lib/registration/hooks/useEmailValidation.js.map +3 -3
  34. package/dist/cjs/lib/registration/hooks/useSendEmailValidation.d.ts +1 -1
  35. package/dist/cjs/lib/registration/hooks/useSendEmailValidation.js +1 -1
  36. package/dist/cjs/lib/registration/hooks/useSendEmailValidation.js.map +3 -3
  37. package/dist/cjs/lib/utils/fetcher/fetcher.d.ts +1 -1
  38. package/dist/cjs/lib/utils/fetcher/fetcher.js +1 -1
  39. package/dist/cjs/lib/utils/fetcher/fetcher.js.map +3 -3
  40. package/dist/cjs/templates/Credits.js +1 -1
  41. package/dist/cjs/templates/Credits.js.map +2 -2
  42. package/dist/esm/components/credits/context/hooks/useCountries.d.ts +2 -1
  43. package/dist/esm/components/credits/context/hooks/useCountries.js +1 -1
  44. package/dist/esm/components/credits/context/hooks/useCountries.js.map +3 -3
  45. package/dist/esm/components/credits/context/hooks/useShippingCountries.d.ts +2 -1
  46. package/dist/esm/components/credits/context/hooks/useShippingCountries.js +1 -1
  47. package/dist/esm/components/credits/context/hooks/useShippingCountries.js.map +3 -3
  48. package/dist/esm/components/credits/context/hooks/useUploadReceipt.js +1 -1
  49. package/dist/esm/components/credits/context/hooks/useUploadReceipt.js.map +2 -2
  50. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js +1 -1
  51. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/Address.js.map +3 -3
  52. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js +1 -1
  53. package/dist/esm/components/credits/creditsRedeemList/RedeemProductModal/index.js.map +3 -3
  54. package/dist/esm/components/memberPopup/context/provider.js +1 -1
  55. package/dist/esm/components/memberPopup/context/provider.js.map +2 -2
  56. package/dist/esm/components/memberPopup/panels/ActivitiesSubscribePanel.js +1 -1
  57. package/dist/esm/components/memberPopup/panels/ActivitiesSubscribePanel.js.map +3 -3
  58. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js +1 -1
  59. package/dist/esm/components/memberPopup/panels/EarnCredits/ActivatePanel.js.map +3 -3
  60. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js +1 -1
  61. package/dist/esm/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.js.map +2 -2
  62. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.d.ts +2 -1
  63. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js +1 -1
  64. package/dist/esm/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.js.map +3 -3
  65. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js +1 -1
  66. package/dist/esm/components/memberPopup/panels/Referral/hooks/useReferralOverview.js.map +2 -2
  67. package/dist/esm/components/registration/authCodeActivate/index.js +1 -1
  68. package/dist/esm/components/registration/authCodeActivate/index.js.map +3 -3
  69. package/dist/esm/components/registration/context/provider.d.ts +3 -1
  70. package/dist/esm/components/registration/context/provider.js +1 -1
  71. package/dist/esm/components/registration/context/provider.js.map +3 -3
  72. package/dist/esm/lib/registration/hooks/useEmailValidation.d.ts +1 -1
  73. package/dist/esm/lib/registration/hooks/useEmailValidation.js +1 -1
  74. package/dist/esm/lib/registration/hooks/useEmailValidation.js.map +3 -3
  75. package/dist/esm/lib/registration/hooks/useSendEmailValidation.d.ts +1 -1
  76. package/dist/esm/lib/registration/hooks/useSendEmailValidation.js +1 -1
  77. package/dist/esm/lib/registration/hooks/useSendEmailValidation.js.map +3 -3
  78. package/dist/esm/lib/utils/fetcher/fetcher.d.ts +1 -1
  79. package/dist/esm/lib/utils/fetcher/fetcher.js +1 -1
  80. package/dist/esm/lib/utils/fetcher/fetcher.js.map +3 -3
  81. package/dist/esm/templates/Credits.js +1 -1
  82. package/dist/esm/templates/Credits.js.map +2 -2
  83. package/package.json +1 -1
  84. package/src/components/credits/context/hooks/useCountries.ts +3 -3
  85. package/src/components/credits/context/hooks/useShippingCountries.ts +17 -8
  86. package/src/components/credits/context/hooks/useUploadReceipt.tsx +2 -3
  87. package/src/components/credits/creditsRedeemList/RedeemProductModal/Address.tsx +3 -1
  88. package/src/components/credits/creditsRedeemList/RedeemProductModal/index.tsx +2 -2
  89. package/src/components/memberPopup/context/provider.tsx +1 -0
  90. package/src/components/memberPopup/panels/ActivitiesSubscribePanel.tsx +3 -3
  91. package/src/components/memberPopup/panels/EarnCredits/ActivatePanel.tsx +3 -3
  92. package/src/components/memberPopup/panels/EarnCredits/CompleteProfilePanel.tsx +2 -2
  93. package/src/components/memberPopup/panels/EarnCredits/hooks/useUpdateProfile.ts +4 -3
  94. package/src/components/memberPopup/panels/Referral/hooks/useReferralOverview.ts +1 -1
  95. package/src/components/registration/authCodeActivate/index.tsx +3 -3
  96. package/src/components/registration/context/provider.tsx +8 -1
  97. package/src/lib/registration/hooks/useEmailValidation.ts +3 -1
  98. package/src/lib/registration/hooks/useSendEmailValidation.ts +2 -1
  99. package/src/lib/utils/fetcher/fetcher.ts +2 -1
  100. package/src/templates/Credits.tsx +5 -1
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/lib/utils/fetcher/fetcher.ts"],
4
- "sourcesContent": ["import { handleFetchResponse } from './fetchResponse'\n\nexport const fetcher = async ({\n locale = 'en',\n url,\n method = 'POST',\n headers = {},\n repeatKey,\n body,\n type,\n timeout = 90000,\n}: any) => {\n // \u6DFB\u52A0\u8C37\u6B4C\u9A8C\u8BC1\n let bodyData = ''\n if (type === 'uploadFile') {\n bodyData = body\n } else {\n bodyData = body ? JSON.stringify(body) : ''\n }\n\n const controller = new AbortController()\n if (timeout) {\n // \u8D85\u65F6\u62A5\u9519\n setTimeout(() => controller.abort(), timeout)\n }\n\n const data = await fetch(url, {\n method,\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n ...(timeout && { signal: controller.signal }),\n ...(method !== 'GET' && { body: bodyData }),\n })\n return handleFetchResponse(data)\n}\n"],
5
- "mappings": "AAAA,OAAS,uBAAAA,MAA2B,kBAE7B,MAAMC,EAAU,MAAO,CAC5B,OAAAC,EAAS,KACT,IAAAC,EACA,OAAAC,EAAS,OACT,QAAAC,EAAU,CAAC,EACX,UAAAC,EACA,KAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACZ,IAAW,CAET,IAAIC,EAAW,GACXF,IAAS,aACXE,EAAWH,EAEXG,EAAWH,EAAO,KAAK,UAAUA,CAAI,EAAI,GAG3C,MAAMI,EAAa,IAAI,gBACnBF,GAEF,WAAW,IAAME,EAAW,MAAM,EAAGF,CAAO,EAG9C,MAAMG,EAAO,MAAM,MAAMT,EAAK,CAC5B,OAAAC,EACA,KAAM,OACN,YAAa,UACb,QAAS,CACP,mBAAoBF,EACpB,GAAGG,CACL,EACA,GAAII,GAAW,CAAE,OAAQE,EAAW,MAAO,EAC3C,GAAIP,IAAW,OAAS,CAAE,KAAMM,CAAS,CAC3C,CAAC,EACD,OAAOV,EAAoBY,CAAI,CACjC",
6
- "names": ["handleFetchResponse", "fetcher", "locale", "url", "method", "headers", "repeatKey", "body", "type", "timeout", "bodyData", "controller", "data"]
4
+ "sourcesContent": ["import { handleFetchResponse } from './fetchResponse'\n\nexport const fetcher = async ({\n locale = 'en',\n url,\n baseUrl,\n method = 'POST',\n headers = {},\n repeatKey,\n body,\n type,\n timeout = 90000,\n}: any) => {\n // \u6DFB\u52A0\u8C37\u6B4C\u9A8C\u8BC1\n let bodyData = ''\n if (type === 'uploadFile') {\n bodyData = body\n } else {\n bodyData = body ? JSON.stringify(body) : ''\n }\n\n const controller = new AbortController()\n if (timeout) {\n // \u8D85\u65F6\u62A5\u9519\n setTimeout(() => controller.abort(), timeout)\n }\n\n const data = await fetch(`${baseUrl || ''}${url}`, {\n method,\n mode: 'cors',\n credentials: 'include',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n ...(timeout && { signal: controller.signal }),\n ...(method !== 'GET' && { body: bodyData }),\n })\n return handleFetchResponse(data)\n}\n"],
5
+ "mappings": "AAAA,OAAS,uBAAAA,MAA2B,kBAE7B,MAAMC,EAAU,MAAO,CAC5B,OAAAC,EAAS,KACT,IAAAC,EACA,QAAAC,EACA,OAAAC,EAAS,OACT,QAAAC,EAAU,CAAC,EACX,UAAAC,EACA,KAAAC,EACA,KAAAC,EACA,QAAAC,EAAU,GACZ,IAAW,CAET,IAAIC,EAAW,GACXF,IAAS,aACXE,EAAWH,EAEXG,EAAWH,EAAO,KAAK,UAAUA,CAAI,EAAI,GAG3C,MAAMI,EAAa,IAAI,gBACnBF,GAEF,WAAW,IAAME,EAAW,MAAM,EAAGF,CAAO,EAG9C,MAAMG,EAAO,MAAM,MAAM,GAAGT,GAAW,EAAE,GAAGD,CAAG,GAAI,CACjD,OAAAE,EACA,KAAM,OACN,YAAa,UACb,QAAS,CACP,mBAAoBH,EACpB,GAAGI,CACL,EACA,GAAII,GAAW,CAAE,OAAQE,EAAW,MAAO,EAC3C,GAAIP,IAAW,OAAS,CAAE,KAAMM,CAAS,CAC3C,CAAC,EACD,OAAOX,EAAoBa,CAAI,CACjC",
6
+ "names": ["handleFetchResponse", "fetcher", "locale", "url", "baseUrl", "method", "headers", "repeatKey", "body", "type", "timeout", "bodyData", "controller", "data"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Fragment as g,jsx as o,jsxs as u}from"react/jsx-runtime";import{classNames as M,HeadlessProvider as h}from"../lib";import{useEffect as T,useRef as w}from"react";import{RegistrationProvider as B}from"../components/registration/context/provider";import{CreditsProvider as b,useCreditsContext as I}from"../components/credits/context/provider";import{CreditsBanner as G}from"../components/credits/creditsBanner";import{CreditsInfoCard as R}from"../components/credits/creditsInfoCard";import{CreditsBenefits as L}from"../components/credits/creditsBenefits";import{CreditsWaysToGetCredits as N}from"../components/credits/creditsWaysToGetCredits";import{CreditsAnkersolixTask as A}from"../components/credits/creditsAnkersolixTask";import{CreditsRedeemList as S}from"../components/credits/creditsRedeemList";import{CreditsGoGift as D}from"../components/credits/creditsGoGift";import{CreditsCash as F}from"../components/credits/creditsCash";import{CreditsMemberPrice as q}from"../components/credits/creditsMemberPrice";import{CreditsFaq as x}from"../components/credits/creditsFaq";import{CreditsNavigation as O}from"../components/credits/creditsNavigation";import U from"../components/credits/modal/ActivitiesModal";import W from"../components/credits/modal/RewardsModal";import{ComponentKey as t}from"./Credits.types";const E=({headlessConfig:d,pageConfig:s,userContext:p})=>{const{openMyRewardsModal:i,setOpenMyRewardsModal:n,openActivitiesModal:m,setOpenActivitiesModal:C,pageCommon:a}=I(),c=w(!1);return T(()=>{if(c.current||typeof window>"u")return;const r=new URLSearchParams(window.location.search).get("section");if(!r)return;const P=56,l=(f=0)=>{const y=document.getElementById(r);if(y){c.current=!0;const v=y.getBoundingClientRect().top+window.pageYOffset-P;window.scrollTo({top:v,behavior:"smooth"})}else f<10&&setTimeout(()=>l(f+1),300)};l()},[]),u(g,{children:[s.components[t.Navigation]&&o(O,{copy:s.components[t.Navigation]}),o("div",{className:M("bg-[#f5f5f7] leading-[1.2]"),children:s.order.map(e=>{if(e===t.Navigation)return null;const r=s.components?.[e];return r?u(g,{children:[e===t.Banner&&o(G,{copy:r,id:e}),e===t.InfoCard&&p?.profile&&o(R,{copy:r,id:e}),e===t.Benefits&&o(L,{copy:r,id:e}),e===t.WaysToGetCredits&&o(N,{copy:r,id:e,classNames:d.brand==="anker"?{subtitle:"text-white",equalCreditsText:"bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent"}:{subtitle:"text-[#D1D1D1]",equalCreditsText:"text-[#F6EAD0]"}}),e===t.AnkersolixTask&&o(A,{copy:r,id:e}),e===t.RedeemList&&o(S,{copy:r,id:e}),e===t.GoGift&&o(D,{copy:r,id:e}),e===t.SpendCreditsLikeCash&&o(F,{copy:r,id:e}),e===t.MemberPrice&&o(q,{copy:r,id:e}),e===t.Faqs&&o(x,{copy:r,id:e}),e!==t.Banner&&o("div",{className:"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16"})]}):null})}),a?.activitiesModal&&o(U,{isOpen:m,data:a.activitiesModal,onClose:()=>C(!1)}),a?.rewardsModal&&o(W,{isOpen:i,data:a.rewardsModal,onClose:()=>n(!1)})]})},se=({headlessConfig:d,siteConfig:s,creditsConfig:p,userContext:i,pageConfig:n,registrationContext:m,gtm:C,cartConfig:a})=>o(h,{headlessConfig:d,children:o(B,{copy:s.registrationsSettings,email:i?.profile?.email,children:o(b,{profile:i?.profile,removeProfile:i?.removeProfile,isLoadingProfile:i?.isLoadingProfile,openSignInPopup:m.openSignInPopup,openSignUpPopup:m.openSignUpPopup,creditInfo:i?.creditInfo,taskIdToTypeMapping:s.taskIdToTypeMapping,taskNameMapping:s.taskNameMapping,customer:i?.customer,fetchCreditInfo:i?.fetchCreditInfo,customerLoading:i?.customerLoading,gtm:C,pageCommon:n.common,memberPriceDiscount:s.memberPriceDiscount,alpcBrand:p?.alpcBrand,alpcCountry:p?.alpcCountry,cartConfig:a,apiBaseUrl:i?.apiBaseUrl,children:o(E,{headlessConfig:d,pageConfig:n,userContext:i})})})});export{se as CreditsTemplate};
1
+ import{Fragment as g,jsx as o,jsxs as u}from"react/jsx-runtime";import{classNames as M,HeadlessProvider as h}from"../lib";import{useEffect as T,useRef as B}from"react";import{RegistrationProvider as w}from"../components/registration/context/provider";import{CreditsProvider as b,useCreditsContext as I}from"../components/credits/context/provider";import{CreditsBanner as G}from"../components/credits/creditsBanner";import{CreditsInfoCard as R}from"../components/credits/creditsInfoCard";import{CreditsBenefits as L}from"../components/credits/creditsBenefits";import{CreditsWaysToGetCredits as N}from"../components/credits/creditsWaysToGetCredits";import{CreditsAnkersolixTask as A}from"../components/credits/creditsAnkersolixTask";import{CreditsRedeemList as S}from"../components/credits/creditsRedeemList";import{CreditsGoGift as D}from"../components/credits/creditsGoGift";import{CreditsCash as F}from"../components/credits/creditsCash";import{CreditsMemberPrice as U}from"../components/credits/creditsMemberPrice";import{CreditsFaq as q}from"../components/credits/creditsFaq";import{CreditsNavigation as O}from"../components/credits/creditsNavigation";import x from"../components/credits/modal/ActivitiesModal";import W from"../components/credits/modal/RewardsModal";import{ComponentKey as i}from"./Credits.types";const E=({headlessConfig:d,pageConfig:s,userContext:p})=>{const{openMyRewardsModal:t,setOpenMyRewardsModal:n,openActivitiesModal:m,setOpenActivitiesModal:C,pageCommon:a}=I(),l=B(!1);return T(()=>{if(l.current||typeof window>"u")return;const r=new URLSearchParams(window.location.search).get("section");if(!r)return;const P=56,c=(f=0)=>{const y=document.getElementById(r);if(y){l.current=!0;const v=y.getBoundingClientRect().top+window.pageYOffset-P;window.scrollTo({top:v,behavior:"smooth"})}else f<10&&setTimeout(()=>c(f+1),300)};c()},[]),u(g,{children:[s.components[i.Navigation]&&o(O,{copy:s.components[i.Navigation]}),o("div",{className:M("bg-[#f5f5f7] leading-[1.2]"),children:s.order.map(e=>{if(e===i.Navigation)return null;const r=s.components?.[e];return r?u(g,{children:[e===i.Banner&&o(G,{copy:r,id:e}),e===i.InfoCard&&p?.profile&&o(R,{copy:r,id:e}),e===i.Benefits&&o(L,{copy:r,id:e}),e===i.WaysToGetCredits&&o(N,{copy:r,id:e,classNames:d.brand==="anker"?{subtitle:"text-white",equalCreditsText:"bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent"}:{subtitle:"text-[#D1D1D1]",equalCreditsText:"text-[#F6EAD0]"}}),e===i.AnkersolixTask&&o(A,{copy:r,id:e}),e===i.RedeemList&&o(S,{copy:r,id:e}),e===i.GoGift&&o(D,{copy:r,id:e}),e===i.SpendCreditsLikeCash&&o(F,{copy:r,id:e}),e===i.MemberPrice&&o(U,{copy:r,id:e}),e===i.Faqs&&o(q,{copy:r,id:e}),e!==i.Banner&&o("div",{className:"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16"})]}):null})}),a?.activitiesModal&&o(x,{isOpen:m,data:a.activitiesModal,onClose:()=>C(!1)}),a?.rewardsModal&&o(W,{isOpen:t,data:a.rewardsModal,onClose:()=>n(!1)})]})},se=({headlessConfig:d,siteConfig:s,creditsConfig:p,userContext:t,pageConfig:n,registrationContext:m,gtm:C,cartConfig:a})=>o(h,{headlessConfig:d,children:o(w,{copy:s.registrationsSettings,email:t?.profile?.email,apiBaseUrl:t?.apiBaseUrl,children:o(b,{profile:t?.profile,removeProfile:t?.removeProfile,isLoadingProfile:t?.isLoadingProfile,openSignInPopup:m.openSignInPopup,openSignUpPopup:m.openSignUpPopup,creditInfo:t?.creditInfo,taskIdToTypeMapping:s.taskIdToTypeMapping,taskNameMapping:s.taskNameMapping,customer:t?.customer,fetchCreditInfo:t?.fetchCreditInfo,customerLoading:t?.customerLoading,gtm:C,pageCommon:n.common,memberPriceDiscount:s.memberPriceDiscount,alpcBrand:p?.alpcBrand,alpcCountry:p?.alpcCountry,cartConfig:a,apiBaseUrl:t?.apiBaseUrl,children:o(E,{headlessConfig:d,pageConfig:n,userContext:t})})})});export{se as CreditsTemplate};
2
2
  //# sourceMappingURL=Credits.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/templates/Credits.tsx"],
4
- "sourcesContent": ["import { classNames, HeadlessProvider } from '../lib'\nimport { useEffect, useRef } from 'react'\nimport { RegistrationProvider } from '../components/registration/context/provider'\nimport { CreditsProvider, useCreditsContext } from '../components/credits/context/provider'\nimport { CreditsBanner } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsAnkersolixTask } from '../components/credits/creditsAnkersolixTask'\nimport { CreditsRedeemList } from '../components/credits/creditsRedeemList'\nimport { CreditsGoGift } from '../components/credits/creditsGoGift'\nimport { CreditsCash } from '../components/credits/creditsCash'\nimport { CreditsMemberPrice } from '../components/credits/creditsMemberPrice'\nimport { CreditsFaq } from '../components/credits/creditsFaq'\nimport { CreditsNavigation } from '../components/credits/creditsNavigation'\nimport ActivitiesModal from '../components/credits/modal/ActivitiesModal'\nimport RewardsModal from '../components/credits/modal/RewardsModal'\nimport { ComponentKey } from './Credits.types'\nimport type {\n CreditsTemplateProps,\n CreditsContentProps,\n CreditsBannerCopy,\n CreditsInfoCardCopy,\n CreditsBenefitsCopy,\n CreditsWaysToGetCreditsCopy,\n CreditsAnkersolixTaskCopy,\n CreditsRedeemListCopy,\n CreditsGoGiftCopy,\n CreditsCashCopy,\n CreditsMemberPriceCopy,\n CreditsFaqCopy,\n} from './Credits.types'\n\nconst CreditsContent = ({ headlessConfig, pageConfig, userContext }: CreditsContentProps) => {\n const { openMyRewardsModal, setOpenMyRewardsModal, openActivitiesModal, setOpenActivitiesModal, pageCommon } = useCreditsContext()\n const hasScrolled = useRef(false)\n\n useEffect(() => {\n if (hasScrolled.current || typeof window === 'undefined') return\n\n const params = new URLSearchParams(window.location.search)\n const section = params.get('section')\n if (!section) return\n\n const navHeight = 56\n\n const tryScroll = (attempts = 0) => {\n const el = document.getElementById(section)\n if (el) {\n hasScrolled.current = true\n const top = el.getBoundingClientRect().top + window.pageYOffset - navHeight\n window.scrollTo({ top, behavior: 'smooth' })\n } else if (attempts < 10) {\n setTimeout(() => tryScroll(attempts + 1), 300)\n }\n }\n\n tryScroll()\n }, [])\n\n return (\n <>\n {/* \u5BFC\u822A\u7EC4\u4EF6 - \u56FA\u5B9A\u4F4D\u7F6E\uFF0C\u4E0D\u53C2\u4E0E order \u6392\u5E8F */}\n {pageConfig.components[ComponentKey.Navigation] && (\n <CreditsNavigation copy={pageConfig.components[ComponentKey.Navigation]} />\n )}\n <div className={classNames('bg-[#f5f5f7] leading-[1.2]')}>\n {pageConfig.order.map(key => {\n // \u8DF3\u8FC7\u5BFC\u822A\u7EC4\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u7ECF\u56FA\u5B9A\u6E32\u67D3\u5728\u4E0A\u65B9\n if (key === ComponentKey.Navigation) return null\n const componentCopy = pageConfig.components?.[key]\n if (!componentCopy) return null\n return (\n <>\n {key === ComponentKey.Banner && <CreditsBanner copy={componentCopy as CreditsBannerCopy} id={key} />}\n {key === ComponentKey.InfoCard && userContext?.profile && (\n <CreditsInfoCard copy={componentCopy as CreditsInfoCardCopy} id={key} />\n )}\n {key === ComponentKey.Benefits && (\n <CreditsBenefits copy={componentCopy as CreditsBenefitsCopy} id={key} />\n )}\n {key === ComponentKey.WaysToGetCredits && (\n <CreditsWaysToGetCredits\n copy={componentCopy as CreditsWaysToGetCreditsCopy}\n id={key}\n classNames={\n headlessConfig.brand === 'anker'\n ? {\n subtitle: 'text-white',\n equalCreditsText:\n 'bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent',\n }\n : {\n subtitle: 'text-[#D1D1D1]',\n equalCreditsText: 'text-[#F6EAD0]',\n }\n }\n />\n )}\n {key === ComponentKey.AnkersolixTask && (\n <CreditsAnkersolixTask copy={componentCopy as CreditsAnkersolixTaskCopy} id={key} />\n )}\n {key === ComponentKey.RedeemList && (\n <CreditsRedeemList copy={componentCopy as CreditsRedeemListCopy} id={key} />\n )}\n {key === ComponentKey.GoGift && <CreditsGoGift copy={componentCopy as CreditsGoGiftCopy} id={key} />}\n {key === ComponentKey.SpendCreditsLikeCash && (\n <CreditsCash copy={componentCopy as CreditsCashCopy} id={key} />\n )}\n {key === ComponentKey.MemberPrice && (\n <CreditsMemberPrice copy={componentCopy as CreditsMemberPriceCopy} id={key} />\n )}\n {key === ComponentKey.Faqs && <CreditsFaq copy={componentCopy as CreditsFaqCopy} id={key} />}\n {key !== ComponentKey.Banner && (\n <div className=\"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16\" />\n )}\n </>\n )\n })}\n </div>\n\n {/* Global Modals */}\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivitiesModal}\n data={pageCommon.activitiesModal}\n onClose={() => setOpenActivitiesModal(false)}\n />\n )}\n {pageCommon?.rewardsModal && (\n <RewardsModal\n isOpen={openMyRewardsModal}\n data={pageCommon.rewardsModal}\n onClose={() => setOpenMyRewardsModal(false)}\n />\n )}\n </>\n )\n}\n\nexport const CreditsTemplate = ({\n headlessConfig,\n siteConfig,\n creditsConfig,\n userContext,\n pageConfig,\n registrationContext,\n gtm,\n cartConfig,\n}: CreditsTemplateProps) => {\n return (\n <HeadlessProvider headlessConfig={headlessConfig}>\n <RegistrationProvider copy={siteConfig.registrationsSettings} email={userContext?.profile?.email}>\n <CreditsProvider\n profile={userContext?.profile}\n removeProfile={userContext?.removeProfile}\n isLoadingProfile={userContext?.isLoadingProfile}\n openSignInPopup={registrationContext.openSignInPopup}\n openSignUpPopup={registrationContext.openSignUpPopup}\n creditInfo={userContext?.creditInfo}\n taskIdToTypeMapping={siteConfig.taskIdToTypeMapping}\n taskNameMapping={siteConfig.taskNameMapping}\n customer={userContext?.customer}\n fetchCreditInfo={userContext?.fetchCreditInfo}\n customerLoading={userContext?.customerLoading}\n gtm={gtm}\n pageCommon={pageConfig.common}\n memberPriceDiscount={siteConfig.memberPriceDiscount}\n alpcBrand={creditsConfig?.alpcBrand}\n alpcCountry={creditsConfig?.alpcCountry}\n cartConfig={cartConfig}\n apiBaseUrl={userContext?.apiBaseUrl}\n >\n <CreditsContent headlessConfig={headlessConfig} pageConfig={pageConfig} userContext={userContext} />\n </CreditsProvider>\n </RegistrationProvider>\n </HeadlessProvider>\n )\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { classNames, HeadlessProvider } from '../lib'\nimport { useEffect, useRef } from 'react'\nimport { RegistrationProvider } from '../components/registration/context/provider'\nimport { CreditsProvider, useCreditsContext } from '../components/credits/context/provider'\nimport { CreditsBanner } from '../components/credits/creditsBanner'\nimport { CreditsInfoCard } from '../components/credits/creditsInfoCard'\nimport { CreditsBenefits } from '../components/credits/creditsBenefits'\nimport { CreditsWaysToGetCredits } from '../components/credits/creditsWaysToGetCredits'\nimport { CreditsAnkersolixTask } from '../components/credits/creditsAnkersolixTask'\nimport { CreditsRedeemList } from '../components/credits/creditsRedeemList'\nimport { CreditsGoGift } from '../components/credits/creditsGoGift'\nimport { CreditsCash } from '../components/credits/creditsCash'\nimport { CreditsMemberPrice } from '../components/credits/creditsMemberPrice'\nimport { CreditsFaq } from '../components/credits/creditsFaq'\nimport { CreditsNavigation } from '../components/credits/creditsNavigation'\nimport ActivitiesModal from '../components/credits/modal/ActivitiesModal'\nimport RewardsModal from '../components/credits/modal/RewardsModal'\nimport { ComponentKey } from './Credits.types'\nimport type {\n CreditsTemplateProps,\n CreditsContentProps,\n CreditsBannerCopy,\n CreditsInfoCardCopy,\n CreditsBenefitsCopy,\n CreditsWaysToGetCreditsCopy,\n CreditsAnkersolixTaskCopy,\n CreditsRedeemListCopy,\n CreditsGoGiftCopy,\n CreditsCashCopy,\n CreditsMemberPriceCopy,\n CreditsFaqCopy,\n} from './Credits.types'\n\nconst CreditsContent = ({ headlessConfig, pageConfig, userContext }: CreditsContentProps) => {\n const { openMyRewardsModal, setOpenMyRewardsModal, openActivitiesModal, setOpenActivitiesModal, pageCommon } = useCreditsContext()\n const hasScrolled = useRef(false)\n\n useEffect(() => {\n if (hasScrolled.current || typeof window === 'undefined') return\n\n const params = new URLSearchParams(window.location.search)\n const section = params.get('section')\n if (!section) return\n\n const navHeight = 56\n\n const tryScroll = (attempts = 0) => {\n const el = document.getElementById(section)\n if (el) {\n hasScrolled.current = true\n const top = el.getBoundingClientRect().top + window.pageYOffset - navHeight\n window.scrollTo({ top, behavior: 'smooth' })\n } else if (attempts < 10) {\n setTimeout(() => tryScroll(attempts + 1), 300)\n }\n }\n\n tryScroll()\n }, [])\n\n return (\n <>\n {/* \u5BFC\u822A\u7EC4\u4EF6 - \u56FA\u5B9A\u4F4D\u7F6E\uFF0C\u4E0D\u53C2\u4E0E order \u6392\u5E8F */}\n {pageConfig.components[ComponentKey.Navigation] && (\n <CreditsNavigation copy={pageConfig.components[ComponentKey.Navigation]} />\n )}\n <div className={classNames('bg-[#f5f5f7] leading-[1.2]')}>\n {pageConfig.order.map(key => {\n // \u8DF3\u8FC7\u5BFC\u822A\u7EC4\u4EF6\uFF0C\u56E0\u4E3A\u5B83\u5DF2\u7ECF\u56FA\u5B9A\u6E32\u67D3\u5728\u4E0A\u65B9\n if (key === ComponentKey.Navigation) return null\n const componentCopy = pageConfig.components?.[key]\n if (!componentCopy) return null\n return (\n <>\n {key === ComponentKey.Banner && <CreditsBanner copy={componentCopy as CreditsBannerCopy} id={key} />}\n {key === ComponentKey.InfoCard && userContext?.profile && (\n <CreditsInfoCard copy={componentCopy as CreditsInfoCardCopy} id={key} />\n )}\n {key === ComponentKey.Benefits && (\n <CreditsBenefits copy={componentCopy as CreditsBenefitsCopy} id={key} />\n )}\n {key === ComponentKey.WaysToGetCredits && (\n <CreditsWaysToGetCredits\n copy={componentCopy as CreditsWaysToGetCreditsCopy}\n id={key}\n classNames={\n headlessConfig.brand === 'anker'\n ? {\n subtitle: 'text-white',\n equalCreditsText:\n 'bg-gradient-to-r from-[#3AD1FF] to-[#008CD6] bg-clip-text text-transparent',\n }\n : {\n subtitle: 'text-[#D1D1D1]',\n equalCreditsText: 'text-[#F6EAD0]',\n }\n }\n />\n )}\n {key === ComponentKey.AnkersolixTask && (\n <CreditsAnkersolixTask copy={componentCopy as CreditsAnkersolixTaskCopy} id={key} />\n )}\n {key === ComponentKey.RedeemList && (\n <CreditsRedeemList copy={componentCopy as CreditsRedeemListCopy} id={key} />\n )}\n {key === ComponentKey.GoGift && <CreditsGoGift copy={componentCopy as CreditsGoGiftCopy} id={key} />}\n {key === ComponentKey.SpendCreditsLikeCash && (\n <CreditsCash copy={componentCopy as CreditsCashCopy} id={key} />\n )}\n {key === ComponentKey.MemberPrice && (\n <CreditsMemberPrice copy={componentCopy as CreditsMemberPriceCopy} id={key} />\n )}\n {key === ComponentKey.Faqs && <CreditsFaq copy={componentCopy as CreditsFaqCopy} id={key} />}\n {key !== ComponentKey.Banner && (\n <div className=\"laptop:h-16 desktop:h-[96px] lg-desktop:h-[128px] tablet:h-16 h-16\" />\n )}\n </>\n )\n })}\n </div>\n\n {/* Global Modals */}\n {pageCommon?.activitiesModal && (\n <ActivitiesModal\n isOpen={openActivitiesModal}\n data={pageCommon.activitiesModal}\n onClose={() => setOpenActivitiesModal(false)}\n />\n )}\n {pageCommon?.rewardsModal && (\n <RewardsModal\n isOpen={openMyRewardsModal}\n data={pageCommon.rewardsModal}\n onClose={() => setOpenMyRewardsModal(false)}\n />\n )}\n </>\n )\n}\n\nexport const CreditsTemplate = ({\n headlessConfig,\n siteConfig,\n creditsConfig,\n userContext,\n pageConfig,\n registrationContext,\n gtm,\n cartConfig,\n}: CreditsTemplateProps) => {\n return (\n <HeadlessProvider headlessConfig={headlessConfig}>\n <RegistrationProvider\n copy={siteConfig.registrationsSettings}\n email={userContext?.profile?.email}\n apiBaseUrl={userContext?.apiBaseUrl}\n >\n <CreditsProvider\n profile={userContext?.profile}\n removeProfile={userContext?.removeProfile}\n isLoadingProfile={userContext?.isLoadingProfile}\n openSignInPopup={registrationContext.openSignInPopup}\n openSignUpPopup={registrationContext.openSignUpPopup}\n creditInfo={userContext?.creditInfo}\n taskIdToTypeMapping={siteConfig.taskIdToTypeMapping}\n taskNameMapping={siteConfig.taskNameMapping}\n customer={userContext?.customer}\n fetchCreditInfo={userContext?.fetchCreditInfo}\n customerLoading={userContext?.customerLoading}\n gtm={gtm}\n pageCommon={pageConfig.common}\n memberPriceDiscount={siteConfig.memberPriceDiscount}\n alpcBrand={creditsConfig?.alpcBrand}\n alpcCountry={creditsConfig?.alpcCountry}\n cartConfig={cartConfig}\n apiBaseUrl={userContext?.apiBaseUrl}\n >\n <CreditsContent headlessConfig={headlessConfig} pageConfig={pageConfig} userContext={userContext} />\n </CreditsProvider>\n </RegistrationProvider>\n </HeadlessProvider>\n )\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Fragment", "jsx", "jsxs", "classNames", "HeadlessProvider", "useEffect", "useRef", "RegistrationProvider", "CreditsProvider", "useCreditsContext", "CreditsBanner", "CreditsInfoCard", "CreditsBenefits", "CreditsWaysToGetCredits", "CreditsAnkersolixTask", "CreditsRedeemList", "CreditsGoGift", "CreditsCash", "CreditsMemberPrice", "CreditsFaq", "CreditsNavigation", "ActivitiesModal", "RewardsModal", "ComponentKey", "CreditsContent", "headlessConfig", "pageConfig", "userContext", "openMyRewardsModal", "setOpenMyRewardsModal", "openActivitiesModal", "setOpenActivitiesModal", "pageCommon", "hasScrolled", "section", "navHeight", "tryScroll", "attempts", "el", "top", "key", "componentCopy", "CreditsTemplate", "siteConfig", "creditsConfig", "registrationContext", "gtm", "cartConfig"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/campaign-ui",
3
- "version": "0.5.20",
3
+ "version": "0.5.22",
4
4
  "description": "Campaign UI components and utilities for Anker projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -3,7 +3,7 @@ import { useEffect, useState } from 'react'
3
3
  import { useHeadlessContext } from '../../../../lib'
4
4
  import { type ShippingCountry } from '../../type'
5
5
 
6
- function useCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {
6
+ function useCountries({ shopifyStoreDomain, apiBaseUrl }: { shopifyStoreDomain: string; apiBaseUrl?: string }) {
7
7
  const { locale = '' } = useHeadlessContext()
8
8
 
9
9
  const [isLoading, setLoading] = useState(false)
@@ -13,7 +13,7 @@ function useCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {
13
13
  const fetchCountries = async () => {
14
14
  setLoading(true)
15
15
  try {
16
- const response = await fetch('/api/multipass/account/countries', {
16
+ const response = await fetch(`${apiBaseUrl || ''}/api/multipass/account/countries`, {
17
17
  credentials: 'include',
18
18
  headers: {
19
19
  'current-language': locale,
@@ -39,7 +39,7 @@ function useCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {
39
39
  }
40
40
 
41
41
  fetchCountries()
42
- }, [locale])
42
+ }, [locale, apiBaseUrl])
43
43
 
44
44
  return {
45
45
  isLoading,
@@ -3,7 +3,13 @@ import { useEffect, useState } from 'react'
3
3
  import { useHeadlessContext } from '../../../../lib'
4
4
  import { type ShippingCountry, type ShippingZone } from '../../type'
5
5
 
6
- function useShippingCountries({ shopifyStoreDomain }: { shopifyStoreDomain: string }) {
6
+ function useShippingCountries({
7
+ shopifyStoreDomain,
8
+ apiBaseUrl,
9
+ }: {
10
+ shopifyStoreDomain: string
11
+ apiBaseUrl?: string
12
+ }) {
7
13
  const { locale = '' } = useHeadlessContext()
8
14
 
9
15
  const [isLoading, setLoading] = useState(false)
@@ -13,12 +19,15 @@ function useShippingCountries({ shopifyStoreDomain }: { shopifyStoreDomain: stri
13
19
  const fetchCountries = async () => {
14
20
  setLoading(true)
15
21
  try {
16
- const response = await fetch(`/api/multipass/rainbowbridge/uc/shop/shipping_zones?shop=${shopifyStoreDomain}`, {
17
- credentials: 'include',
18
- headers: {
19
- 'current-language': locale,
20
- },
21
- })
22
+ const response = await fetch(
23
+ `${apiBaseUrl || ''}/api/multipass/rainbowbridge/uc/shop/shipping_zones?shop=${shopifyStoreDomain}`,
24
+ {
25
+ credentials: 'include',
26
+ headers: {
27
+ 'current-language': locale,
28
+ },
29
+ }
30
+ )
22
31
  const res: any = await response.json()
23
32
 
24
33
  // 国家过滤
@@ -50,7 +59,7 @@ function useShippingCountries({ shopifyStoreDomain }: { shopifyStoreDomain: stri
50
59
  }
51
60
 
52
61
  fetchCountries()
53
- }, [locale])
62
+ }, [locale, apiBaseUrl, shopifyStoreDomain])
54
63
 
55
64
  return {
56
65
  isLoading,
@@ -5,11 +5,10 @@ import { useCreditsContext } from '../provider'
5
5
  const normalizeResponseData = (responseData: any) => {
6
6
  if (!responseData) return responseData
7
7
 
8
- if (typeof responseData.data === 'object' && !Array.isArray(responseData.data) && 'data' in responseData.data) {
8
+ // 兼容部分仓库的代码会对返回进行封装
9
+ if (responseData.data) {
9
10
  return responseData.data
10
11
  }
11
-
12
- // 一层结构,直接返回
13
12
  return responseData
14
13
  }
15
14
 
@@ -1,5 +1,6 @@
1
1
  import { Button, Text } from '@anker-in/headless-ui'
2
2
  import classNames from 'classnames'
3
+ import { useCreditsContext } from '../../context/provider'
3
4
  import { AddressForm } from '../AddressForm'
4
5
  import { useHeadlessContext } from '../../../../lib'
5
6
  import type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../../type'
@@ -35,8 +36,9 @@ export const Address = ({
35
36
  item,
36
37
  }: AddressProps) => {
37
38
  const { storeDomain, brand } = useHeadlessContext()
39
+ const { apiBaseUrl } = useCreditsContext()
38
40
  const rounded = ROUNDED_BRANDS.includes(brand)
39
- const { countries = [], isLoading: countriesLoading } = useShippingCountries({ shopifyStoreDomain: storeDomain })
41
+ const { countries = [], isLoading: countriesLoading } = useShippingCountries({ shopifyStoreDomain: storeDomain, apiBaseUrl })
40
42
 
41
43
  return (
42
44
  <div className="relative">
@@ -21,7 +21,7 @@ type RedeemProductModalProps = Omit<ModalContainerProps, 'isOpen'> & {
21
21
  }
22
22
 
23
23
  function RedeemProductModal({ item, copy, onError, ...props }: RedeemProductModalProps) {
24
- const { fetchCreditInfo, profile, pageCommon } = useCreditsContext()
24
+ const { fetchCreditInfo, profile, pageCommon, apiBaseUrl } = useCreditsContext()
25
25
  const { storeDomain } = useHeadlessContext()
26
26
 
27
27
  const { shippingAddress, shippingProduct } = copy.product
@@ -35,7 +35,7 @@ function RedeemProductModal({ item, copy, onError, ...props }: RedeemProductModa
35
35
  })
36
36
  const [disabled, setDisabled] = useState(false)
37
37
 
38
- const { countries = [], isLoading: countriesLoading } = useShippingCountries({ shopifyStoreDomain: storeDomain })
38
+ const { countries = [], isLoading: countriesLoading } = useShippingCountries({ shopifyStoreDomain: storeDomain, apiBaseUrl })
39
39
 
40
40
  const { isMutating: loading, trigger } = useRedeemProduct({
41
41
  onSuccess(responseData) {
@@ -44,6 +44,7 @@ export function MemberPopupProvider({
44
44
  <RegistrationProvider
45
45
  email={contextValue.profile?.email}
46
46
  copy={{ authCodeActivate: earnCreditsCopy?.authCodeActivate }}
47
+ apiBaseUrl={contextValue.alpcConfig?.apiBaseUrl}
47
48
  >
48
49
  <MemberPopupContext.Provider
49
50
  value={{
@@ -37,7 +37,7 @@ async function getRecaptchaToken(sitekey: string): Promise<string> {
37
37
 
38
38
  export default function ActivitiesSubscribeModal({ copy, email: initialEmail }: Props) {
39
39
  const { alpcConfig, setIsSubscribeSuccess, pageHandle } = useMemberPopupContext()
40
- const { locale } = alpcConfig
40
+ const { locale, apiBaseUrl } = alpcConfig
41
41
  const { brand: headlessBrand, storeDomain, recaptchaSitekey } = useHeadlessContext()
42
42
  const rounded = ROUNDED_BRANDS.includes(headlessBrand)
43
43
  const [policy, setPolicy] = useState(copy.policyDefaultChecked ?? false)
@@ -60,7 +60,7 @@ export default function ActivitiesSubscribeModal({ copy, email: initialEmail }:
60
60
  const { register_source } = getAdCookie()
61
61
  const recaptchaToken = await getRecaptchaToken(recaptchaSitekey || '')
62
62
  try {
63
- const response = await fetch('/api/multipass/rainbowbridge/activities', {
63
+ const response = await fetch(`${apiBaseUrl || ''}/api/multipass/rainbowbridge/activities`, {
64
64
  method: 'POST',
65
65
  credentials: 'include',
66
66
  headers: {
@@ -100,7 +100,7 @@ export default function ActivitiesSubscribeModal({ copy, email: initialEmail }:
100
100
  } finally {
101
101
  setLoading(false)
102
102
  }
103
- }, [email, policy, locale, storeDomain, copy, setIsSubscribeSuccess])
103
+ }, [email, policy, locale, storeDomain, copy, setIsSubscribeSuccess, apiBaseUrl])
104
104
 
105
105
  return (
106
106
  <div className="flex flex-col">
@@ -20,7 +20,7 @@ type Props = {
20
20
  }
21
21
 
22
22
  export default function ActivatePanel({ copy, onClose }: Props) {
23
- const { setIsActivateSuccess, fetchCreditInfo, profile } = useMemberPopupContext()
23
+ const { setIsActivateSuccess, fetchCreditInfo, profile, alpcConfig } = useMemberPopupContext()
24
24
  const { locale, brand } = useHeadlessContext()
25
25
  const { email } = useRegistration()
26
26
  const rounded = ROUNDED_BRANDS.includes(brand)
@@ -29,9 +29,9 @@ export default function ActivatePanel({ copy, onClose }: Props) {
29
29
  isMutating: isSendingEmail,
30
30
  trigger: triggerSendValidationEmail,
31
31
  data: sendEmailData,
32
- } = useSendEmailValidation()
32
+ } = useSendEmailValidation(alpcConfig.apiBaseUrl)
33
33
 
34
- const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()
34
+ const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation(undefined, alpcConfig.apiBaseUrl)
35
35
 
36
36
  const [messageText, setMessageText] = useState('')
37
37
  const [messageStatus, setMessageStatus] = useState('')
@@ -26,8 +26,8 @@ export default function CompleteProfilePanel({ copy, onClose }: Props) {
26
26
  const [firstNameError, setFirstNameError] = useState('')
27
27
  const [lastNameError, setLastNameError] = useState('')
28
28
 
29
- const { updateProfile, isLoading } = useUpdateProfile({ locale, appName: alpcConfig.appName })
30
- const { countries } = useCountries({ shopifyStoreDomain: storeDomain })
29
+ const { updateProfile, isLoading } = useUpdateProfile({ locale, appName: alpcConfig.appName, apiBaseUrl: alpcConfig.apiBaseUrl })
30
+ const { countries } = useCountries({ shopifyStoreDomain: storeDomain, apiBaseUrl: alpcConfig.apiBaseUrl })
31
31
 
32
32
  useEffect(() => {
33
33
  if (profile) {
@@ -3,6 +3,7 @@ import { useCallback, useState } from 'react'
3
3
  type UseUpdateProfileConfig = {
4
4
  locale?: string
5
5
  appName?: string
6
+ apiBaseUrl?: string
6
7
  }
7
8
 
8
9
  type ProfileData = {
@@ -13,7 +14,7 @@ type ProfileData = {
13
14
  dob?: string
14
15
  }
15
16
 
16
- export function useUpdateProfile({ locale = '', appName = '' }: UseUpdateProfileConfig = {}) {
17
+ export function useUpdateProfile({ locale = '', appName = '', apiBaseUrl = '' }: UseUpdateProfileConfig = {}) {
17
18
  const [isLoading, setIsLoading] = useState(false)
18
19
  const [error, setError] = useState<string | null>(null)
19
20
 
@@ -22,7 +23,7 @@ export function useUpdateProfile({ locale = '', appName = '' }: UseUpdateProfile
22
23
  setIsLoading(true)
23
24
  setError(null)
24
25
  try {
25
- const response = await fetch('/api/multipass/account/users/update_profile', {
26
+ const response = await fetch(`${apiBaseUrl}/api/multipass/account/users/update_profile`, {
26
27
  method: 'PUT',
27
28
  credentials: 'include',
28
29
  headers: {
@@ -44,7 +45,7 @@ export function useUpdateProfile({ locale = '', appName = '' }: UseUpdateProfile
44
45
  setIsLoading(false)
45
46
  }
46
47
  },
47
- [locale, appName]
48
+ [locale, appName, apiBaseUrl]
48
49
  )
49
50
 
50
51
  return { updateProfile, isLoading, error }
@@ -17,7 +17,7 @@ export function useReferralOverview(): {
17
17
  const { profile, alpcConfig } = useMemberPopupContext()
18
18
  const isLogin = !!profile
19
19
 
20
- const swrKey = isLogin ? `/api/multipass/mktsrv/v1/referral/reward/overview/cash` : null
20
+ const swrKey = isLogin ? `${alpcConfig.apiBaseUrl || ''}/api/multipass/mktsrv/v1/referral/reward/overview/cash` : null
21
21
 
22
22
  const swrFetcher = async (url: string) => {
23
23
  const response = await fetch(url, {
@@ -16,19 +16,19 @@ import { ROUNDED_BRANDS } from '../../../constants'
16
16
 
17
17
  export const AuthCodeActivate: React.FC<AuthCodeActivateProps> = ({ copy }) => {
18
18
  const { locale, brand } = useHeadlessContext()
19
- const { email, authCodeActivate } = useRegistration()
19
+ const { email, authCodeActivate, apiBaseUrl } = useRegistration()
20
20
  const rounded = ROUNDED_BRANDS.includes(brand)
21
21
 
22
22
  const { activeToken, setActiveToken, setIsSendingActivateEmail, setIsActivateSuccess, onAuthSuccess, autoSendEmail } =
23
23
  authCodeActivate
24
24
 
25
- const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation()
25
+ const { isMutating: emailValidationLoading, trigger: triggerEmailValidation } = useEmailValidation(undefined, apiBaseUrl)
26
26
 
27
27
  const {
28
28
  isMutating: isSendingEmail,
29
29
  trigger: triggerSendValidationEmail,
30
30
  data: sendEmailData,
31
- } = useSendEmailValidation()
31
+ } = useSendEmailValidation(apiBaseUrl)
32
32
 
33
33
  const [messageText, setMessageText] = useState('')
34
34
  const [messageStatus, setMessageStatus] = useState('')
@@ -4,6 +4,7 @@ import { AuthCodeActivate } from '../authCodeActivate'
4
4
  interface RegistrationContextType {
5
5
  email?: string
6
6
  copy?: any
7
+ apiBaseUrl?: string
7
8
  authCodeActivate: {
8
9
  isOpen: boolean
9
10
  open: () => void
@@ -49,7 +50,12 @@ export const useRegistration = () => {
49
50
  return context
50
51
  }
51
52
 
52
- export const RegistrationProvider = ({ children, email, copy }: PropsWithChildren<{ email?: string; copy?: any }>) => {
53
+ export const RegistrationProvider = ({
54
+ children,
55
+ email,
56
+ copy,
57
+ apiBaseUrl,
58
+ }: PropsWithChildren<{ email?: string; copy?: any; apiBaseUrl?: string }>) => {
53
59
  const [popAuthCode, setPopAuthCode] = useState(false)
54
60
  const [onAuthSuccess, setOnAuthSuccess] = useState<(() => void) | undefined>(undefined)
55
61
  const [isActivateSuccess, setIsActivateSuccess] = useState(false)
@@ -62,6 +68,7 @@ export const RegistrationProvider = ({ children, email, copy }: PropsWithChildre
62
68
  value={{
63
69
  email,
64
70
  copy,
71
+ apiBaseUrl,
65
72
  authCodeActivate: {
66
73
  activeToken,
67
74
  isOpen: popAuthCode,
@@ -8,7 +8,8 @@ export const useEmailValidation = (
8
8
  { type: 'responseError'; data: any; response: any },
9
9
  string,
10
10
  { token: string; code: string }
11
- >
11
+ >,
12
+ apiBaseUrl?: string
12
13
  ) => {
13
14
  const { locale } = useHeadlessContext()
14
15
  return useSWRMutation(
@@ -16,6 +17,7 @@ export const useEmailValidation = (
16
17
  (_, { arg: { token, code } }: { arg: { token: string; code: string } }) => {
17
18
  return fetcher({
18
19
  url: `/api/multipass/account/users/email_validation`,
20
+ baseUrl: apiBaseUrl,
19
21
  method: 'POST',
20
22
  body: { activation_code: token, verify_code: code },
21
23
  action: 'account',
@@ -5,13 +5,14 @@ import { fetcher } from '../../utils'
5
5
  // data 参数会被 stringify 后放入到邮件链接参数中
6
6
  export type RequestData = { email: string; data: any }
7
7
 
8
- export function useSendEmailValidation(): SWRMutationResponse<any, any, string, { email: string } & any> {
8
+ export function useSendEmailValidation(apiBaseUrl?: string): SWRMutationResponse<any, any, string, { email: string } & any> {
9
9
  const { appName, locale } = useHeadlessContext()
10
10
 
11
11
  return useSWRMutation('send-email-validation', (_, { arg: { email, ...rest } }: { arg: RequestData }) =>
12
12
  fetcher({
13
13
  locale,
14
14
  url: '/api/multipass/account/users/send_validation_email',
15
+ baseUrl: apiBaseUrl,
15
16
  method: 'POST',
16
17
  body: { email: email, app: appName, ...rest },
17
18
  needRecaptcha: true,
@@ -3,6 +3,7 @@ import { handleFetchResponse } from './fetchResponse'
3
3
  export const fetcher = async ({
4
4
  locale = 'en',
5
5
  url,
6
+ baseUrl,
6
7
  method = 'POST',
7
8
  headers = {},
8
9
  repeatKey,
@@ -24,7 +25,7 @@ export const fetcher = async ({
24
25
  setTimeout(() => controller.abort(), timeout)
25
26
  }
26
27
 
27
- const data = await fetch(url, {
28
+ const data = await fetch(`${baseUrl || ''}${url}`, {
28
29
  method,
29
30
  mode: 'cors',
30
31
  credentials: 'include',
@@ -150,7 +150,11 @@ export const CreditsTemplate = ({
150
150
  }: CreditsTemplateProps) => {
151
151
  return (
152
152
  <HeadlessProvider headlessConfig={headlessConfig}>
153
- <RegistrationProvider copy={siteConfig.registrationsSettings} email={userContext?.profile?.email}>
153
+ <RegistrationProvider
154
+ copy={siteConfig.registrationsSettings}
155
+ email={userContext?.profile?.email}
156
+ apiBaseUrl={userContext?.apiBaseUrl}
157
+ >
154
158
  <CreditsProvider
155
159
  profile={userContext?.profile}
156
160
  removeProfile={userContext?.removeProfile}