@anker-in/campaign-ui 0.4.5-beta.9 → 0.4.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 (36) hide show
  1. package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js +1 -1
  2. package/dist/cjs/components/credits/context/hooks/useAlpcFetch.js.map +2 -2
  3. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  4. package/dist/cjs/components/credits/context/hooks/useRedeemAndBuy.js.map +3 -3
  5. package/dist/cjs/components/credits/creditsCash/CreditsCash.js +1 -1
  6. package/dist/cjs/components/credits/creditsCash/CreditsCash.js.map +3 -3
  7. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  8. package/dist/cjs/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
  9. package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +1 -1
  10. package/dist/cjs/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +2 -2
  11. package/dist/cjs/components/credits/modal/ActivitiesModal.js +1 -1
  12. package/dist/cjs/components/credits/modal/ActivitiesModal.js.map +2 -2
  13. package/dist/cjs/components/credits/modal/RewardsModal.js +1 -1
  14. package/dist/cjs/components/credits/modal/RewardsModal.js.map +2 -2
  15. package/dist/esm/components/credits/context/hooks/useAlpcFetch.js +1 -1
  16. package/dist/esm/components/credits/context/hooks/useAlpcFetch.js.map +2 -2
  17. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js +1 -1
  18. package/dist/esm/components/credits/context/hooks/useRedeemAndBuy.js.map +3 -3
  19. package/dist/esm/components/credits/creditsCash/CreditsCash.js +1 -1
  20. package/dist/esm/components/credits/creditsCash/CreditsCash.js.map +3 -3
  21. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js +1 -1
  22. package/dist/esm/components/credits/creditsRedeemList/RedeemCouponModal.js.map +3 -3
  23. package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js +1 -1
  24. package/dist/esm/components/credits/creditsRedeemList/RedeemVirtualProductModal.js.map +2 -2
  25. package/dist/esm/components/credits/modal/ActivitiesModal.js +1 -1
  26. package/dist/esm/components/credits/modal/ActivitiesModal.js.map +2 -2
  27. package/dist/esm/components/credits/modal/RewardsModal.js +1 -1
  28. package/dist/esm/components/credits/modal/RewardsModal.js.map +2 -2
  29. package/package.json +1 -1
  30. package/src/components/credits/context/hooks/useAlpcFetch.ts +12 -5
  31. package/src/components/credits/context/hooks/useRedeemAndBuy.ts +2 -3
  32. package/src/components/credits/creditsCash/CreditsCash.tsx +12 -5
  33. package/src/components/credits/creditsRedeemList/RedeemCouponModal.tsx +2 -3
  34. package/src/components/credits/creditsRedeemList/RedeemVirtualProductModal.tsx +3 -3
  35. package/src/components/credits/modal/ActivitiesModal.tsx +53 -51
  36. package/src/components/credits/modal/RewardsModal.tsx +5 -5
@@ -1,2 +1,2 @@
1
- "use strict";var j=Object.create;var A=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var n in e)A(t,n,{get:e[n],enumerable:!0})},M=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of v(e))!$.call(t,r)&&r!==n&&A(t,r,{get:()=>e[r],enumerable:!(a=k(e,r))||a.enumerable});return t};var S=(t,e,n)=>(n=t!=null?j(I(t)):{},M(e||!t||!t.__esModule?A(n,"default",{value:t,enumerable:!0}):n,t)),W=t=>M(A({},"__esModule",{value:!0}),t);var H={};N(H,{useAlpcFetch:()=>J,useAlpcMutation:()=>K});module.exports=W(H);var D=S(require("js-cookie")),o=require("react"),P=S(require("swr")),B=require("@anker-in/lib"),O=require("../utils"),w=require("../provider");let b;const U=t=>t&&(t.data&&typeof t.data=="object"&&!Array.isArray(t.data)?t.data:t),x=t=>fetch((0,O.getAlpcPath)(t.locale,t.apiBaseUrl)+t.url,t.fetchOptions).then(async e=>{if(e.status<300){const n=await e.json();return U(n)}if(e.status===401&&t.onReAuth){b||(b=t.onReAuth());const n=await b;if(b=void 0,n)return fetch((0,O.getAlpcPath)(t.locale,t.apiBaseUrl)+t.url,t.fetchOptions).then(async a=>{if(a.status<300){const r=await a.json();return U(r)}if(a.status===401){t.onUnAuth&&t.onUnAuth();return}});t.onUnAuth&&t.onUnAuth();return}}),C=async(t,e,n,a)=>{let r=await fetch(`${(0,O.getAlpcPath)(t,a)}/cloud/login`,{method:"POST"}),i=await r.json(),s=U(i);if(r.status<300&&!e&&s?.code===27004){const c=D.default.get("alpcEU");if(Number(c)===1?D.default.set("alpcEU","0",{expires:30,domain:`.${n}.com`}):D.default.set("alpcEU","1",{expires:30,domain:`.${n}.com`}),r=await fetch(`${(0,O.getAlpcPath)(t,a)}/cloud/login`,{method:"POST"}),i=await r.json(),s=U(i),r.status>300)return!1}return!s?.code},z=(t,e,n={},a)=>{const r=(0,o.useRef)(!1),[i,s]=(0,o.useState)(),[c,d]=(0,o.useState)(!1),u=(0,o.useRef)(t),f=(0,o.useRef)(e),h=(0,o.useRef)(n),g=(0,o.useCallback)(async(y,T={})=>{if(console.log("[useAlpcMutation] trigger called with:",{url:u.current,fetchData:y,brand:a.current}),r.current){console.log("[useAlpcMutation] already mutating, skipping");return}if(!a.current){console.log("[useAlpcMutation] brand not available, skipping request");return}r.current=!0,d(!0);const p={...h.current,...T},{onSuccess:R,onError:m}=p||{};try{const l=await f.current(u.current,{arg:y});return s(l),d(!1),r.current=!1,R&&R(l),l}catch(l){d(!1),r.current=!1,m&&m(l)}},[]);return{isMutating:c,trigger:g,data:i}},J=(t,e)=>{const[n,a]=(0,o.useState)(!1),{removeProfile:r,alpcBrand:i,apiBaseUrl:s}=(0,w.useCreditsContext)(),{enable:c,...d}=e||{},{locale:u="",brand:f}=(0,B.useHeadlessContext)(),h=i||f,{queryKey:g=[],body:y={},headers:T,...p}=t,R=c??!0,[m,l]=g;return(0,P.default)([m,l],!R||!h?null:([F,q])=>x({url:F,locale:u,apiBaseUrl:s,fetchOptions:{method:"POST",headers:{"current-language":u,...T},body:JSON.stringify({...y,...q}),...p},onReAuth:async()=>await C(u,n,h,s)?(a(!0),!0):!1,onUnAuth(){r()}}),{revalidateOnFocus:!1,...d})},K=(t,e)=>{const[n,a]=(0,o.useState)(!1),{removeProfile:r,alpcBrand:i,apiBaseUrl:s}=(0,w.useCreditsContext)(),{locale:c="",brand:d}=(0,B.useHeadlessContext)(),u=i||d,f=(0,o.useRef)(u);f.current=u;const{url:h,initData:g,headers:y,...T}=t,p=(0,o.useRef)(g);return p.current=g,z(h,(m,l)=>f.current?x({url:m,locale:c,apiBaseUrl:s,fetchOptions:{method:"POST",headers:{"current-language":c,...y},...T,body:JSON.stringify({...p.current,...l.arg})},onReAuth:async()=>await C(c,n,f.current,s)?(a(!0),!0):!1,onUnAuth(){r()}}):Promise.resolve(void 0),e,f)};
1
+ "use strict";var j=Object.create;var A=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var I=Object.getPrototypeOf,$=Object.prototype.hasOwnProperty;var N=(t,e)=>{for(var n in e)A(t,n,{get:e[n],enumerable:!0})},M=(t,e,n,a)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of v(e))!$.call(t,r)&&r!==n&&A(t,r,{get:()=>e[r],enumerable:!(a=k(e,r))||a.enumerable});return t};var S=(t,e,n)=>(n=t!=null?j(I(t)):{},M(e||!t||!t.__esModule?A(n,"default",{value:t,enumerable:!0}):n,t)),W=t=>M(A({},"__esModule",{value:!0}),t);var H={};N(H,{useAlpcFetch:()=>J,useAlpcMutation:()=>K});module.exports=W(H);var D=S(require("js-cookie")),o=require("react"),P=S(require("swr")),B=require("@anker-in/lib"),O=require("../utils"),w=require("../provider");let b;const U=t=>t&&(t.data&&typeof t.data=="object"&&!Array.isArray(t.data)&&"data"in t.data?t.data:t),x=t=>fetch((0,O.getAlpcPath)(t.locale,t.apiBaseUrl)+t.url,t.fetchOptions).then(async e=>{if(e.status<300){const n=await e.json();return U(n)}if(e.status===401&&t.onReAuth){b||(b=t.onReAuth());const n=await b;if(b=void 0,n)return fetch((0,O.getAlpcPath)(t.locale,t.apiBaseUrl)+t.url,t.fetchOptions).then(async a=>{if(a.status<300){const r=await a.json();return U(r)}if(a.status===401){t.onUnAuth&&t.onUnAuth();return}});t.onUnAuth&&t.onUnAuth();return}}),C=async(t,e,n,a)=>{let r=await fetch(`${(0,O.getAlpcPath)(t,a)}/cloud/login`,{method:"POST"}),i=await r.json(),s=U(i);if(r.status<300&&!e&&s?.code===27004){const c=D.default.get("alpcEU");if(Number(c)===1?D.default.set("alpcEU","0",{expires:30,domain:`.${n}.com`}):D.default.set("alpcEU","1",{expires:30,domain:`.${n}.com`}),r=await fetch(`${(0,O.getAlpcPath)(t,a)}/cloud/login`,{method:"POST"}),i=await r.json(),s=U(i),r.status>300)return!1}return!s?.code},z=(t,e,n={},a)=>{const r=(0,o.useRef)(!1),[i,s]=(0,o.useState)(),[c,d]=(0,o.useState)(!1),u=(0,o.useRef)(t),f=(0,o.useRef)(e),h=(0,o.useRef)(n),g=(0,o.useCallback)(async(y,T={})=>{if(console.log("[useAlpcMutation] trigger called with:",{url:u.current,fetchData:y,brand:a.current}),r.current){console.log("[useAlpcMutation] already mutating, skipping");return}if(!a.current){console.log("[useAlpcMutation] brand not available, skipping request");return}r.current=!0,d(!0);const p={...h.current,...T},{onSuccess:R,onError:m}=p||{};try{const l=await f.current(u.current,{arg:y});return s(l),d(!1),r.current=!1,R&&R(l),l}catch(l){d(!1),r.current=!1,m&&m(l)}},[]);return{isMutating:c,trigger:g,data:i}},J=(t,e)=>{const[n,a]=(0,o.useState)(!1),{removeProfile:r,alpcBrand:i,apiBaseUrl:s}=(0,w.useCreditsContext)(),{enable:c,...d}=e||{},{locale:u="",brand:f}=(0,B.useHeadlessContext)(),h=i||f,{queryKey:g=[],body:y={},headers:T,...p}=t,R=c??!0,[m,l]=g;return(0,P.default)([m,l],!R||!h?null:([F,q])=>x({url:F,locale:u,apiBaseUrl:s,fetchOptions:{method:"POST",headers:{"current-language":u,...T},body:JSON.stringify({...y,...q}),...p},onReAuth:async()=>await C(u,n,h,s)?(a(!0),!0):!1,onUnAuth(){r()}}),{revalidateOnFocus:!1,...d})},K=(t,e)=>{const[n,a]=(0,o.useState)(!1),{removeProfile:r,alpcBrand:i,apiBaseUrl:s}=(0,w.useCreditsContext)(),{locale:c="",brand:d}=(0,B.useHeadlessContext)(),u=i||d,f=(0,o.useRef)(u);f.current=u;const{url:h,initData:g,headers:y,...T}=t,p=(0,o.useRef)(g);return p.current=g,z(h,(m,l)=>f.current?x({url:m,locale:c,apiBaseUrl:s,fetchOptions:{method:"POST",headers:{"current-language":c,...y},...T,body:JSON.stringify({...p.current,...l.arg})},onReAuth:async()=>await C(c,n,f.current,s)?(a(!0),!0):!1,onUnAuth(){r()}}):Promise.resolve(void 0),e,f)};
2
2
  //# sourceMappingURL=useAlpcFetch.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useAlpcFetch.ts"],
4
- "sourcesContent": ["import Cookies from 'js-cookie'\nimport { useCallback, useRef, useState } from 'react'\nimport useSWR, { type SWRConfiguration } from 'swr'\nimport { useHeadlessContext } from '@anker-in/lib'\n\nimport { getAlpcPath } from '../utils'\nimport { useCreditsContext } from '../provider'\n\ninterface UseAlpcFetchOptionsSwrOptions<TData, Error> extends SWRConfiguration<TData, Error> {\n enable?: boolean\n}\n\ninterface FetchOptions extends RequestInit {\n queryKey: [string, Record<string, any>]\n data?: Record<string, any>\n}\n\ninterface MutationOptions extends RequestInit {\n url: string\n initData: Record<string, any>\n}\n\ninterface FetcherOptions {\n url: string\n locale: string\n fetchOptions: RequestInit\n onReAuth: () => Promise<boolean>\n onUnAuth: () => void\n apiBaseUrl?: string\n}\n\nlet reAuthPromise: Promise<boolean> | undefined\n\ntype Fetcher<TData, TBody> = (url: string, data: { arg: TBody }) => Promise<TData>\n\n/**\n * \u7EDF\u4E00\u5904\u7406 ALPC \u63A5\u53E3\u8FD4\u56DE\u7684\u6570\u636E\u7ED3\u6784\n * \u517C\u5BB9\u4E00\u5C42 data \u548C\u4E24\u5C42 data \u7684\u573A\u666F\uFF1A\n * - \u4E24\u5C42 data: {data: {data: ..., code: 27004}}\n * - \u4E00\u5C42 data: {data: ..., code: 27004}\n */\nconst normalizeResponseData = (responseData: any) => {\n if (!responseData) return responseData\n\n // \u5982\u679C responseData.data \u5B58\u5728\u4E14\u662F\u4E00\u4E2A\u5BF9\u8C61\uFF08\u4E0D\u662F\u6570\u7EC4\uFF09\uFF0C\u8BF4\u660E\u662F\u4E24\u5C42 data \u7ED3\u6784\n if (responseData.data && typeof responseData.data === 'object' && !Array.isArray(responseData.data)) {\n return responseData.data\n }\n\n // \u4E00\u5C42 data \u7ED3\u6784\u6216\u5176\u4ED6\u60C5\u51B5\uFF0C\u76F4\u63A5\u8FD4\u56DE\n return responseData\n}\n\nconst fetcher = (options: FetcherOptions) => {\n return fetch(getAlpcPath(options.locale, options.apiBaseUrl) + options.url, options.fetchOptions).then(async response => {\n if (response.status < 300) {\n const responseData = await response.json()\n return normalizeResponseData(responseData)\n }\n\n // \u9519\u8BEF\u5904\u7406\n if (response.status === 401) {\n // \u91CD\u65B0\u767B\u5F55\u5C1D\u8BD5\n if (options.onReAuth) {\n if (!reAuthPromise) {\n reAuthPromise = options.onReAuth()\n }\n\n const result = await reAuthPromise\n\n reAuthPromise = undefined\n\n if (result) {\n // \u8DE8\u533A\u91CD\u65B0\u767B\u5F55\u540E\u9700\u8981\u66FF\u6362\u533A\u57DF\u6807\u5FD7\uFF0C\u6240\u4EE5\u4E0D\u80FD\u7528\u6700\u5F00\u59CB\u8BF7\u6C42\u7684\u90A3\u4E2A\u94FE\u63A5\n return fetch(getAlpcPath(options.locale, options.apiBaseUrl) + options.url, options.fetchOptions).then(async response => {\n if (response.status < 300) {\n const responseData = await response.json()\n return normalizeResponseData(responseData)\n }\n\n if (response.status === 401) {\n if (options.onUnAuth) {\n options.onUnAuth()\n }\n return\n }\n })\n } else {\n if (options.onUnAuth) {\n options.onUnAuth()\n }\n return\n }\n }\n }\n })\n}\n\nconst reAuth = async (locale: string, retry: boolean, brand: string, apiBaseUrl?: string) => {\n let reloginResponse = await fetch(`${getAlpcPath(locale, apiBaseUrl)}/cloud/login`, {\n method: 'POST',\n })\n let reloginResponseData = await reloginResponse.json()\n // \u517C\u5BB9\u4E24\u5C42 data \u7ED3\u6784\n let normalizedData = normalizeResponseData(reloginResponseData)\n\n if (reloginResponse!.status < 300 && !retry) {\n if (normalizedData?.code === 27004) {\n // \u8DE8\u533A\u767B\u5F55\u9519\u8BEF\n const alpcEUCookie = Cookies.get('alpcEU')\n\n if (Number(alpcEUCookie) === 1) {\n Cookies.set('alpcEU', '0', {\n expires: 30,\n domain: `.${brand}.com`,\n })\n } else {\n Cookies.set('alpcEU', '1', {\n expires: 30,\n domain: `.${brand}.com`,\n })\n }\n\n // \u91CD\u65B0\u5C1D\u8BD5\u6362\u533A\u767B\u5F55\n reloginResponse = await fetch(`${getAlpcPath(locale, apiBaseUrl)}/cloud/login`, {\n method: 'POST',\n })\n reloginResponseData = await reloginResponse.json()\n normalizedData = normalizeResponseData(reloginResponseData)\n\n if (reloginResponse.status > 300) {\n return false\n }\n }\n }\n if (!normalizedData?.code) {\n // \u91CD\u65B0\u767B\u5F55\u6210\u529F\n return true\n }\n\n return false\n}\n\nexport interface UseMutationConfig<TData> {\n onSuccess?: (response: TData) => any\n onError?: (error: Error) => any\n}\n\nconst useMutation = <TData, TBody>(\n url: string,\n fetcher: Fetcher<TData, TBody>,\n mutationConfig: UseMutationConfig<TData> = {},\n brandRef: React.MutableRefObject<string | undefined>\n) => {\n const innerMutating = useRef<boolean>(false)\n\n const [data, setData] = useState<TData>()\n const [isMutating, setIsMutating] = useState(false)\n\n const urlRef = useRef(url)\n const fetcherRef = useRef(fetcher)\n const configRef = useRef(mutationConfig)\n\n const trigger = useCallback(\n async (fetchData: TBody, opts: UseMutationConfig<TData> = {}) => {\n console.log('[useAlpcMutation] trigger called with:', { url: urlRef.current, fetchData, brand: brandRef.current })\n\n if (innerMutating.current) {\n console.log('[useAlpcMutation] already mutating, skipping')\n return\n }\n\n if (!brandRef.current) {\n console.log('[useAlpcMutation] brand not available, skipping request')\n return\n }\n\n innerMutating.current = true\n setIsMutating(true)\n\n const config = {\n ...configRef.current,\n ...opts,\n }\n\n const { onSuccess, onError } = config || {}\n\n try {\n const fetchResult = await fetcherRef.current(urlRef.current, {\n arg: fetchData,\n })\n setData(fetchResult)\n\n setIsMutating(false)\n innerMutating.current = false\n\n if (onSuccess) {\n onSuccess(fetchResult)\n }\n return fetchResult\n } catch (err: any) {\n setIsMutating(false)\n innerMutating.current = false\n\n if (onError) {\n onError(err)\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n )\n\n return {\n isMutating,\n trigger,\n data,\n }\n}\n\nexport const useAlpcFetch = <TData>(\n options: FetchOptions,\n swrOptions?: UseAlpcFetchOptionsSwrOptions<TData, Error>\n) => {\n const [retry, setRetry] = useState(false)\n const { removeProfile, alpcBrand, apiBaseUrl } = useCreditsContext()\n\n const { enable, ...otherSwrOptions } = swrOptions || {}\n\n const { locale = '', brand: headlessBrand } = useHeadlessContext()\n // \u4F18\u5148\u4F7F\u7528 creditsContext \u4E2D\u7684 alpcBrand\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u4F7F\u7528 headlessConfig \u4E2D\u7684 brand\n const brand = alpcBrand || headlessBrand\n\n const { queryKey = [], body: fetchBody = {}, headers, ...fetchOptions } = options\n const fetchEnable = enable ?? true\n\n const [url, requestBody] = queryKey\n\n const context = useSWR<TData>(\n [url, requestBody],\n !fetchEnable || !brand\n ? null\n : ([requestUrl, data]: [string, Record<string, any>]) =>\n fetcher({\n url: requestUrl,\n locale,\n apiBaseUrl,\n fetchOptions: {\n method: 'POST',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n body: JSON.stringify({\n ...fetchBody,\n ...data,\n }),\n ...fetchOptions,\n },\n onReAuth: async () => {\n const result = await reAuth(locale, retry, brand, apiBaseUrl)\n\n if (result) {\n setRetry(true)\n return true\n }\n\n return false\n },\n onUnAuth() {\n // \u5931\u8D25\u540E\u9000\u51FA\u767B\u5F55\n removeProfile()\n },\n }),\n {\n revalidateOnFocus: false,\n ...otherSwrOptions,\n }\n )\n\n return context\n}\n\nexport const useAlpcMutation = <TData, TBody>(options: MutationOptions, mutationOptions?: UseMutationConfig<TData>) => {\n const [retry, setRetry] = useState(false)\n const { removeProfile, alpcBrand, apiBaseUrl } = useCreditsContext()\n\n const { locale = '', brand: headlessBrand } = useHeadlessContext()\n // \u4F18\u5148\u4F7F\u7528 creditsContext \u4E2D\u7684 alpcBrand\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u4F7F\u7528 headlessConfig \u4E2D\u7684 brand\n const brand = alpcBrand || headlessBrand\n const brandRef = useRef(brand)\n brandRef.current = brand\n\n const { url, initData, headers, ...fetchOptions } = options\n const initDataRef = useRef(initData)\n initDataRef.current = initData\n\n const context = useMutation<TData, TBody>(\n url,\n (requestUrl, data: { arg: TBody }) => {\n // Prevent requests when brand is not available\n if (!brandRef.current) {\n return Promise.resolve(undefined as unknown as TData)\n }\n\n return fetcher({\n url: requestUrl,\n locale,\n apiBaseUrl,\n fetchOptions: {\n method: 'POST',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n ...fetchOptions,\n body: JSON.stringify({\n ...initDataRef.current,\n ...data.arg,\n }),\n },\n onReAuth: async () => {\n const result = await reAuth(locale, retry, brandRef.current!, apiBaseUrl)\n\n if (result) {\n setRetry(true)\n return true\n }\n\n return false\n },\n onUnAuth() {\n // \u5931\u8D25\u540E\u9000\u51FA\u767B\u5F55\n removeProfile()\n },\n })\n },\n mutationOptions,\n brandRef\n )\n\n return context\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import Cookies from 'js-cookie'\nimport { useCallback, useRef, useState } from 'react'\nimport useSWR, { type SWRConfiguration } from 'swr'\nimport { useHeadlessContext } from '@anker-in/lib'\n\nimport { getAlpcPath } from '../utils'\nimport { useCreditsContext } from '../provider'\n\ninterface UseAlpcFetchOptionsSwrOptions<TData, Error> extends SWRConfiguration<TData, Error> {\n enable?: boolean\n}\n\ninterface FetchOptions extends RequestInit {\n queryKey: [string, Record<string, any>]\n data?: Record<string, any>\n}\n\ninterface MutationOptions extends RequestInit {\n url: string\n initData: Record<string, any>\n}\n\ninterface FetcherOptions {\n url: string\n locale: string\n fetchOptions: RequestInit\n onReAuth: () => Promise<boolean>\n onUnAuth: () => void\n apiBaseUrl?: string\n}\n\nlet reAuthPromise: Promise<boolean> | undefined\n\ntype Fetcher<TData, TBody> = (url: string, data: { arg: TBody }) => Promise<TData>\n\n/**\n * \u7EDF\u4E00\u5904\u7406 ALPC \u63A5\u53E3\u8FD4\u56DE\u7684\u6570\u636E\u7ED3\u6784\n * \u517C\u5BB9\u4E00\u5C42 data \u548C\u4E24\u5C42 data \u7684\u573A\u666F\uFF1A\n * - \u4E24\u5C42 data: {data: {data: ..., code: 27004}} \u2192 \u5265\u6389\u5916\u5C42\uFF0C\u8FD4\u56DE\u5185\u5C42 {data: ..., code: 27004}\n * - \u4E00\u5C42 data: {data: ..., code: 27004} \u2192 \u76F4\u63A5\u8FD4\u56DE\uFF0C\u4E0D\u505A\u5904\u7406\n *\n * \u5224\u65AD\u4E24\u5C42\u7684\u4F9D\u636E\uFF1AresponseData.data.data \u5B58\u5728\uFF08\u5916\u5C42 data \u5185\u90E8\u8FD8\u6709\u4E00\u5C42 data\uFF09\n */\nconst normalizeResponseData = (responseData: any) => {\n if (!responseData) return responseData\n\n // \u4E24\u5C42\u7ED3\u6784\uFF1AresponseData.data \u662F\u5BF9\u8C61\uFF0C\u4E14\u5176\u5185\u90E8\u8FD8\u6709 data \u5B57\u6BB5\n if (\n responseData.data &&\n typeof responseData.data === 'object' &&\n !Array.isArray(responseData.data) &&\n 'data' in responseData.data\n ) {\n return responseData.data\n }\n\n // \u4E00\u5C42\u7ED3\u6784\uFF0C\u76F4\u63A5\u8FD4\u56DE\n return responseData\n}\n\nconst fetcher = (options: FetcherOptions) => {\n return fetch(getAlpcPath(options.locale, options.apiBaseUrl) + options.url, options.fetchOptions).then(async response => {\n if (response.status < 300) {\n const responseData = await response.json()\n return normalizeResponseData(responseData)\n }\n\n // \u9519\u8BEF\u5904\u7406\n if (response.status === 401) {\n // \u91CD\u65B0\u767B\u5F55\u5C1D\u8BD5\n if (options.onReAuth) {\n if (!reAuthPromise) {\n reAuthPromise = options.onReAuth()\n }\n\n const result = await reAuthPromise\n\n reAuthPromise = undefined\n\n if (result) {\n // \u8DE8\u533A\u91CD\u65B0\u767B\u5F55\u540E\u9700\u8981\u66FF\u6362\u533A\u57DF\u6807\u5FD7\uFF0C\u6240\u4EE5\u4E0D\u80FD\u7528\u6700\u5F00\u59CB\u8BF7\u6C42\u7684\u90A3\u4E2A\u94FE\u63A5\n return fetch(getAlpcPath(options.locale, options.apiBaseUrl) + options.url, options.fetchOptions).then(async response => {\n if (response.status < 300) {\n const responseData = await response.json()\n return normalizeResponseData(responseData)\n }\n\n if (response.status === 401) {\n if (options.onUnAuth) {\n options.onUnAuth()\n }\n return\n }\n })\n } else {\n if (options.onUnAuth) {\n options.onUnAuth()\n }\n return\n }\n }\n }\n })\n}\n\nconst reAuth = async (locale: string, retry: boolean, brand: string, apiBaseUrl?: string) => {\n let reloginResponse = await fetch(`${getAlpcPath(locale, apiBaseUrl)}/cloud/login`, {\n method: 'POST',\n })\n let reloginResponseData = await reloginResponse.json()\n // \u517C\u5BB9\u4E24\u5C42 data \u7ED3\u6784\n let normalizedData = normalizeResponseData(reloginResponseData)\n\n if (reloginResponse!.status < 300 && !retry) {\n if (normalizedData?.code === 27004) {\n // \u8DE8\u533A\u767B\u5F55\u9519\u8BEF\n const alpcEUCookie = Cookies.get('alpcEU')\n\n if (Number(alpcEUCookie) === 1) {\n Cookies.set('alpcEU', '0', {\n expires: 30,\n domain: `.${brand}.com`,\n })\n } else {\n Cookies.set('alpcEU', '1', {\n expires: 30,\n domain: `.${brand}.com`,\n })\n }\n\n // \u91CD\u65B0\u5C1D\u8BD5\u6362\u533A\u767B\u5F55\n reloginResponse = await fetch(`${getAlpcPath(locale, apiBaseUrl)}/cloud/login`, {\n method: 'POST',\n })\n reloginResponseData = await reloginResponse.json()\n normalizedData = normalizeResponseData(reloginResponseData)\n\n if (reloginResponse.status > 300) {\n return false\n }\n }\n }\n if (!normalizedData?.code) {\n // \u91CD\u65B0\u767B\u5F55\u6210\u529F\n return true\n }\n\n return false\n}\n\nexport interface UseMutationConfig<TData> {\n onSuccess?: (response: TData) => any\n onError?: (error: Error) => any\n}\n\nconst useMutation = <TData, TBody>(\n url: string,\n fetcher: Fetcher<TData, TBody>,\n mutationConfig: UseMutationConfig<TData> = {},\n brandRef: React.MutableRefObject<string | undefined>\n) => {\n const innerMutating = useRef<boolean>(false)\n\n const [data, setData] = useState<TData>()\n const [isMutating, setIsMutating] = useState(false)\n\n const urlRef = useRef(url)\n const fetcherRef = useRef(fetcher)\n const configRef = useRef(mutationConfig)\n\n const trigger = useCallback(\n async (fetchData: TBody, opts: UseMutationConfig<TData> = {}) => {\n console.log('[useAlpcMutation] trigger called with:', { url: urlRef.current, fetchData, brand: brandRef.current })\n\n if (innerMutating.current) {\n console.log('[useAlpcMutation] already mutating, skipping')\n return\n }\n\n if (!brandRef.current) {\n console.log('[useAlpcMutation] brand not available, skipping request')\n return\n }\n\n innerMutating.current = true\n setIsMutating(true)\n\n const config = {\n ...configRef.current,\n ...opts,\n }\n\n const { onSuccess, onError } = config || {}\n\n try {\n const fetchResult = await fetcherRef.current(urlRef.current, {\n arg: fetchData,\n })\n setData(fetchResult)\n\n setIsMutating(false)\n innerMutating.current = false\n\n if (onSuccess) {\n onSuccess(fetchResult)\n }\n return fetchResult\n } catch (err: any) {\n setIsMutating(false)\n innerMutating.current = false\n\n if (onError) {\n onError(err)\n }\n }\n },\n // eslint-disable-next-line react-hooks/exhaustive-deps\n []\n )\n\n return {\n isMutating,\n trigger,\n data,\n }\n}\n\nexport const useAlpcFetch = <TData>(\n options: FetchOptions,\n swrOptions?: UseAlpcFetchOptionsSwrOptions<TData, Error>\n) => {\n const [retry, setRetry] = useState(false)\n const { removeProfile, alpcBrand, apiBaseUrl } = useCreditsContext()\n\n const { enable, ...otherSwrOptions } = swrOptions || {}\n\n const { locale = '', brand: headlessBrand } = useHeadlessContext()\n // \u4F18\u5148\u4F7F\u7528 creditsContext \u4E2D\u7684 alpcBrand\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u4F7F\u7528 headlessConfig \u4E2D\u7684 brand\n const brand = alpcBrand || headlessBrand\n\n const { queryKey = [], body: fetchBody = {}, headers, ...fetchOptions } = options\n const fetchEnable = enable ?? true\n\n const [url, requestBody] = queryKey\n\n const context = useSWR<TData>(\n [url, requestBody],\n !fetchEnable || !brand\n ? null\n : ([requestUrl, data]: [string, Record<string, any>]) =>\n fetcher({\n url: requestUrl,\n locale,\n apiBaseUrl,\n fetchOptions: {\n method: 'POST',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n body: JSON.stringify({\n ...fetchBody,\n ...data,\n }),\n ...fetchOptions,\n },\n onReAuth: async () => {\n const result = await reAuth(locale, retry, brand, apiBaseUrl)\n\n if (result) {\n setRetry(true)\n return true\n }\n\n return false\n },\n onUnAuth() {\n // \u5931\u8D25\u540E\u9000\u51FA\u767B\u5F55\n removeProfile()\n },\n }),\n {\n revalidateOnFocus: false,\n ...otherSwrOptions,\n }\n )\n\n return context\n}\n\nexport const useAlpcMutation = <TData, TBody>(options: MutationOptions, mutationOptions?: UseMutationConfig<TData>) => {\n const [retry, setRetry] = useState(false)\n const { removeProfile, alpcBrand, apiBaseUrl } = useCreditsContext()\n\n const { locale = '', brand: headlessBrand } = useHeadlessContext()\n // \u4F18\u5148\u4F7F\u7528 creditsContext \u4E2D\u7684 alpcBrand\uFF0C\u5982\u679C\u6CA1\u6709\u5219\u4F7F\u7528 headlessConfig \u4E2D\u7684 brand\n const brand = alpcBrand || headlessBrand\n const brandRef = useRef(brand)\n brandRef.current = brand\n\n const { url, initData, headers, ...fetchOptions } = options\n const initDataRef = useRef(initData)\n initDataRef.current = initData\n\n const context = useMutation<TData, TBody>(\n url,\n (requestUrl, data: { arg: TBody }) => {\n // Prevent requests when brand is not available\n if (!brandRef.current) {\n return Promise.resolve(undefined as unknown as TData)\n }\n\n return fetcher({\n url: requestUrl,\n locale,\n apiBaseUrl,\n fetchOptions: {\n method: 'POST',\n headers: {\n 'current-language': locale,\n ...headers,\n },\n ...fetchOptions,\n body: JSON.stringify({\n ...initDataRef.current,\n ...data.arg,\n }),\n },\n onReAuth: async () => {\n const result = await reAuth(locale, retry, brandRef.current!, apiBaseUrl)\n\n if (result) {\n setRetry(true)\n return true\n }\n\n return false\n },\n onUnAuth() {\n // \u5931\u8D25\u540E\u9000\u51FA\u767B\u5F55\n removeProfile()\n },\n })\n },\n mutationOptions,\n brandRef\n )\n\n return context\n}\n"],
5
+ "mappings": "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",
6
6
  "names": ["useAlpcFetch_exports", "__export", "useAlpcFetch", "useAlpcMutation", "__toCommonJS", "import_js_cookie", "import_react", "import_swr", "import_lib", "import_utils", "import_provider", "reAuthPromise", "normalizeResponseData", "responseData", "fetcher", "options", "response", "result", "reAuth", "locale", "retry", "brand", "apiBaseUrl", "reloginResponse", "reloginResponseData", "normalizedData", "alpcEUCookie", "Cookies", "useMutation", "url", "mutationConfig", "brandRef", "innerMutating", "data", "setData", "isMutating", "setIsMutating", "urlRef", "fetcherRef", "configRef", "trigger", "fetchData", "opts", "config", "onSuccess", "onError", "fetchResult", "err", "swrOptions", "setRetry", "removeProfile", "alpcBrand", "enable", "otherSwrOptions", "headlessBrand", "queryKey", "fetchBody", "headers", "fetchOptions", "fetchEnable", "requestBody", "useSWR", "requestUrl", "mutationOptions", "initData", "initDataRef"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var y=Object.create;var u=Object.defineProperty;var g=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var _=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var b=(r,o)=>{for(var e in o)u(r,e,{get:o[e],enumerable:!0})},s=(r,o,e,n)=>{if(o&&typeof o=="object"||typeof o=="function")for(let t of l(o))!w.call(r,t)&&t!==e&&u(r,t,{get:()=>o[t],enumerable:!(n=g(o,t))||n.enumerable});return r};var C=(r,o,e)=>(e=r!=null?y(_(r)):{},s(o||!r||!r.__esModule?u(e,"default",{value:r,enumerable:!0}):e,r)),R=r=>s(u({},"__esModule",{value:!0}),r);var V={};b(V,{useRedeemAndBuy:()=>E});module.exports=R(V);var c=C(require("swr/mutation")),m=require("./useRedeemCoupon"),p=require("../provider"),f=require("@anker-in/lib");const E=(r,o)=>{const{trigger:e}=(0,m.useRedeemCoupon)(),{profile:n}=(0,p.useCreditsContext)(),{trigger:t}=(0,f.useBuyNow)({},{throwOnError:!0});return(0,c.default)("redeemAndBuy",async(h,{arg:a})=>{const i=await e({user_id:n?.user_id,rule_id:a.redeemId}),d=i?.data||i;if(i&&d?.coupon_code)t({discountCodes:[d.coupon_code],lineItems:[{variant:a.productVariant,quantity:a.quantity||1}]});else throw new Error(`Redeem failed: ${i?.msg}`)},o)};
1
+ "use strict";var f=Object.create;var u=Object.defineProperty;var y=Object.getOwnPropertyDescriptor;var g=Object.getOwnPropertyNames;var l=Object.getPrototypeOf,w=Object.prototype.hasOwnProperty;var _=(r,e)=>{for(var t in e)u(r,t,{get:e[t],enumerable:!0})},d=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of g(e))!w.call(r,o)&&o!==t&&u(r,o,{get:()=>e[o],enumerable:!(n=y(e,o))||n.enumerable});return r};var C=(r,e,t)=>(t=r!=null?f(l(r)):{},d(e||!r||!r.__esModule?u(t,"default",{value:r,enumerable:!0}):t,r)),R=r=>d(u({},"__esModule",{value:!0}),r);var E={};_(E,{useRedeemAndBuy:()=>b});module.exports=R(E);var s=C(require("swr/mutation")),m=require("./useRedeemCoupon"),c=require("../provider"),p=require("@anker-in/lib");const b=(r,e)=>{const{trigger:t}=(0,m.useRedeemCoupon)(),{profile:n}=(0,c.useCreditsContext)(),{trigger:o}=(0,p.useBuyNow)({},{throwOnError:!0});return(0,s.default)("redeemAndBuy",async(V,{arg:a})=>{const i=await t({user_id:n?.user_id,rule_id:a.redeemId});if(i&&i.data?.coupon_code)o({discountCodes:[i.data.coupon_code],lineItems:[{variant:a.productVariant,quantity:a.quantity||1}]});else throw new Error(`Redeem failed: ${i?.msg}`)},e)};
2
2
  //# sourceMappingURL=useRedeemAndBuy.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../../src/components/credits/context/hooks/useRedeemAndBuy.ts"],
4
- "sourcesContent": ["import useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { useRedeemCoupon } from './useRedeemCoupon'\nimport type { ProductVariant } from '@anker-in/lib'\nimport { useCreditsContext } from '../provider'\nimport { useBuyNow } from '@anker-in/lib'\n\nexport const useRedeemAndBuy = (\n _: any,\n swrOptions?: SWRMutationConfiguration<undefined, Error, string, any> & {\n throwOnError?: boolean\n }\n) => {\n const { trigger } = useRedeemCoupon()\n const { profile } = useCreditsContext()\n\n const { trigger: buyNow } = useBuyNow(\n {},\n {\n throwOnError: true,\n }\n )\n\n return useSWRMutation(\n 'redeemAndBuy',\n async (\n _,\n {\n arg,\n }: {\n arg: {\n productVariant: ProductVariant\n quantity?: number\n redeemId: number\n }\n }\n ) => {\n const res = await trigger({\n user_id: profile?.user_id,\n rule_id: arg.redeemId,\n })\n const data = (res?.data || res) as { success?: boolean; coupon_code?: string }\n if (res && data?.coupon_code) {\n buyNow({\n discountCodes: [data.coupon_code],\n lineItems: [\n {\n variant: arg.productVariant,\n quantity: arg.quantity || 1,\n },\n ],\n })\n } else {\n throw new Error(`Redeem failed: ${res?.msg}`)\n }\n },\n swrOptions\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyD,2BACzDC,EAAgC,6BAEhCC,EAAkC,uBAClCC,EAA0B,yBAEnB,MAAML,EAAkB,CAC7BM,EACAC,IAGG,CACH,KAAM,CAAE,QAAAC,CAAQ,KAAI,mBAAgB,EAC9B,CAAE,QAAAC,CAAQ,KAAI,qBAAkB,EAEhC,CAAE,QAASC,CAAO,KAAI,aAC1B,CAAC,EACD,CACE,aAAc,EAChB,CACF,EAEA,SAAO,EAAAC,SACL,eACA,MACEL,EACA,CACE,IAAAM,CACF,IAOG,CACH,MAAMC,EAAM,MAAML,EAAQ,CACxB,QAASC,GAAS,QAClB,QAASG,EAAI,QACf,CAAC,EACKE,EAAQD,GAAK,MAAQA,EAC3B,GAAIA,GAAOC,GAAM,YACfJ,EAAO,CACL,cAAe,CAACI,EAAK,WAAW,EAChC,UAAW,CACT,CACE,QAASF,EAAI,eACb,SAAUA,EAAI,UAAY,CAC5B,CACF,CACF,CAAC,MAED,OAAM,IAAI,MAAM,kBAAkBC,GAAK,GAAG,EAAE,CAEhD,EACAN,CACF,CACF",
6
- "names": ["useRedeemAndBuy_exports", "__export", "useRedeemAndBuy", "__toCommonJS", "import_mutation", "import_useRedeemCoupon", "import_provider", "import_lib", "_", "swrOptions", "trigger", "profile", "buyNow", "useSWRMutation", "arg", "res", "data"]
4
+ "sourcesContent": ["import useSWRMutation, { SWRMutationConfiguration } from 'swr/mutation'\nimport { useRedeemCoupon } from './useRedeemCoupon'\nimport type { ProductVariant } from '@anker-in/lib'\nimport { useCreditsContext } from '../provider'\nimport { useBuyNow } from '@anker-in/lib'\n\nexport const useRedeemAndBuy = (\n _: any,\n swrOptions?: SWRMutationConfiguration<undefined, Error, string, any> & {\n throwOnError?: boolean\n }\n) => {\n const { trigger } = useRedeemCoupon()\n const { profile } = useCreditsContext()\n\n const { trigger: buyNow } = useBuyNow(\n {},\n {\n throwOnError: true,\n }\n )\n\n return useSWRMutation(\n 'redeemAndBuy',\n async (\n _,\n {\n arg,\n }: {\n arg: {\n productVariant: ProductVariant\n quantity?: number\n redeemId: number\n }\n }\n ) => {\n const res = await trigger({\n user_id: profile?.user_id,\n rule_id: arg.redeemId,\n })\n if (res && res.data?.coupon_code) {\n buyNow({\n discountCodes: [res.data.coupon_code],\n lineItems: [\n {\n variant: arg.productVariant,\n quantity: arg.quantity || 1,\n },\n ],\n })\n } else {\n throw new Error(`Redeem failed: ${res?.msg}`)\n }\n },\n swrOptions\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,qBAAAE,IAAA,eAAAC,EAAAH,GAAA,IAAAI,EAAyD,2BACzDC,EAAgC,6BAEhCC,EAAkC,uBAClCC,EAA0B,yBAEnB,MAAML,EAAkB,CAC7BM,EACAC,IAGG,CACH,KAAM,CAAE,QAAAC,CAAQ,KAAI,mBAAgB,EAC9B,CAAE,QAAAC,CAAQ,KAAI,qBAAkB,EAEhC,CAAE,QAASC,CAAO,KAAI,aAC1B,CAAC,EACD,CACE,aAAc,EAChB,CACF,EAEA,SAAO,EAAAC,SACL,eACA,MACEL,EACA,CACE,IAAAM,CACF,IAOG,CACH,MAAMC,EAAM,MAAML,EAAQ,CACxB,QAASC,GAAS,QAClB,QAASG,EAAI,QACf,CAAC,EACD,GAAIC,GAAOA,EAAI,MAAM,YACnBH,EAAO,CACL,cAAe,CAACG,EAAI,KAAK,WAAW,EACpC,UAAW,CACT,CACE,QAASD,EAAI,eACb,SAAUA,EAAI,UAAY,CAC5B,CACF,CACF,CAAC,MAED,OAAM,IAAI,MAAM,kBAAkBC,GAAK,GAAG,EAAE,CAEhD,EACAN,CACF,CACF",
6
+ "names": ["useRedeemAndBuy_exports", "__export", "useRedeemAndBuy", "__toCommonJS", "import_mutation", "import_useRedeemCoupon", "import_provider", "import_lib", "_", "swrOptions", "trigger", "profile", "buyNow", "useSWRMutation", "arg", "res"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var B=Object.create;var l=Object.defineProperty;var F=Object.getOwnPropertyDescriptor;var H=Object.getOwnPropertyNames;var L=Object.getPrototypeOf,M=Object.prototype.hasOwnProperty;var P=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},b=(e,t,s,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of H(t))!M.call(e,r)&&r!==s&&l(e,r,{get:()=>t[r],enumerable:!(o=F(t,r))||o.enumerable});return e};var C=(e,t,s)=>(s=e!=null?B(L(e)):{},b(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),O=e=>b(l({},"__esModule",{value:!0}),e);var U={};P(U,{CreditsCash:()=>T});module.exports=O(U);var a=require("react/jsx-runtime"),c=require("@anker-in/headless-ui"),p=require("react"),h=C(require("./RedeemableItem")),y=C(require("../context/hooks/useRedeemableList")),v=C(require("../modal/RulesModal")),u=require("@anker-in/lib"),g=require("@anker-in/lib"),N=require("../context/provider"),R=require("../../../constants");const T=({copy:e,id:t})=>{const[s,o]=(0,p.useState)(),{redeemableList:r}=(0,y.default)(),{pageCommon:D}=(0,N.useCreditsContext)(),{brand:I}=(0,u.useHeadlessContext)(),S=R.ROUNDED_BRANDS.includes(I),_=[],{data:f}=(0,u.useProductsByHandles)({handles:e?.list?.map(n=>n.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:_}}),k=(0,p.useMemo)(()=>f?.map(n=>{const d=(e.list||[]).find(m=>m.products?.[0]?.handle===n.handle),i=r.find(m=>m.id?.toString()===d?.redeemId?.toString()),x=n.variants?.find(m=>m.sku===d?.products?.[0]?.sku)||n.variants?.[0];return!i||!x?null:{product:n,productVariant:x,alpcData:{id:i?.id,consumeCredits:i?.consume_credits,remainingInventory:i?.remaining_inventory,isLimited:i?.is_limited,consumeType:i?.consume_type,title:i?.name,desc:i?.note},config:d}}).filter(Boolean),[f,e.list,r]);return(0,a.jsxs)(c.Container,{id:t,className:(0,g.classNames)("bg-[#F5F5F5]"),children:[(0,a.jsx)(c.Heading,{as:"h2",size:"4",html:e.title}),(0,a.jsx)("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3",children:k?.map((n,d)=>(0,a.jsx)(h.default,{copy:e,itemData:n,setRules:o,currencyCode:f?.[0]?.price.currencyCode||"USD"},d))}),s&&(0,a.jsx)(v.default,{overlayClassName:"md:px-[16px] md:items-center",className:(0,g.classNames)("md:h-fit md:rounded-b-[16px]",!S&&"md:rounded-none"),isOpen:s.length>0,onClose:()=>o([]),titleClassName:"border-b-transparent h-[56px]",rules:s,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:D?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
1
+ "use strict";var H=Object.create;var l=Object.defineProperty;var L=Object.getOwnPropertyDescriptor;var M=Object.getOwnPropertyNames;var P=Object.getPrototypeOf,O=Object.prototype.hasOwnProperty;var T=(e,t)=>{for(var s in t)l(e,s,{get:t[s],enumerable:!0})},h=(e,t,s,d)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of M(t))!O.call(e,r)&&r!==s&&l(e,r,{get:()=>t[r],enumerable:!(d=L(t,r))||d.enumerable});return e};var g=(e,t,s)=>(s=e!=null?H(P(e)):{},h(t||!e||!e.__esModule?l(s,"default",{value:e,enumerable:!0}):s,e)),U=e=>h(l({},"__esModule",{value:!0}),e);var z={};T(z,{CreditsCash:()=>w});module.exports=U(z);var a=require("react/jsx-runtime"),u=require("@anker-in/headless-ui"),c=require("react"),y=g(require("./RedeemableItem")),v=g(require("../context/hooks/useRedeemableList")),N=g(require("../modal/RulesModal")),p=require("@anker-in/lib"),x=require("@anker-in/lib"),R=require("../context/provider"),D=require("../../../constants");const w=({copy:e,id:t})=>{const[s,d]=(0,c.useState)(),{redeemableList:r}=(0,v.default)(),{pageCommon:I}=(0,R.useCreditsContext)(),{brand:k}=(0,p.useHeadlessContext)(),S=D.ROUNDED_BRANDS.includes(k),_=[],{data:C}=(0,p.useProductsByHandles)({handles:e?.list?.map(n=>n.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:_}}),B=(0,c.useMemo)(()=>(e?.list||[]).map(n=>{const f=n?.products?.[0]?.handle,F=n?.products?.[0]?.sku,o=r.find(i=>i.id?.toString()===n?.redeemId?.toString()),m=C?.find(i=>i.handle===f);if(!m)return null;const b=m.variants?.find(i=>i.sku===F)||m.variants?.[0];return!o||!b?null:{product:m,productVariant:b,alpcData:{id:o?.id,consumeCredits:o?.consume_credits,remainingInventory:o?.remaining_inventory,isLimited:o?.is_limited,consumeType:o?.consume_type,title:o?.name,desc:o?.note},config:n}}).filter(Boolean),[C,e.list,r]);return(0,a.jsxs)(u.Container,{id:t,className:(0,x.classNames)("bg-[#F5F5F5]"),children:[(0,a.jsx)(u.Heading,{as:"h2",size:"4",html:e.title}),(0,a.jsx)("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3",children:B?.map((n,f)=>(0,a.jsx)(y.default,{copy:e,itemData:n,setRules:d,currencyCode:C?.[0]?.price.currencyCode||"USD"},f))}),s&&(0,a.jsx)(N.default,{overlayClassName:"md:px-[16px] md:items-center",className:(0,x.classNames)("md:h-fit md:rounded-b-[16px]",!S&&"md:rounded-none"),isOpen:s.length>0,onClose:()=>d([]),titleClassName:"border-b-transparent h-[56px]",rules:s,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:I?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};
2
2
  //# sourceMappingURL=CreditsCash.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsCash/CreditsCash.tsx"],
4
- "sourcesContent": ["import { Container, Heading, Text } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport RedeemableItem from './RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/RulesModal'\nimport { useProductsByHandles, useHeadlessContext } from '@anker-in/lib'\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }) => {\n const [rules, setRules] = useState<string | string[]>()\n const { redeemableList } = useRedeemableList()\n const { pageCommon } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const variantMetafieldIdentifiers: any[] = []\n\n const { data: productByHandles } = useProductsByHandles({\n handles: copy?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n const list = useMemo(() => {\n return productByHandles\n ?.map((product: Product) => {\n const config = (copy.list || []).find(item => item.products?.[0]?.handle === product.handle)\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n const productVariant =\n product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]\n if (!alpcData || !productVariant) return null\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [productByHandles, copy.list, redeemableList])\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n\n <div className=\"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3\">\n {list?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={copy}\n itemData={item}\n setRules={setRules}\n currencyCode={productByHandles?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
- "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GAwDI,IAAAI,EAAA,6BAxDJC,EAAyC,iCACzCC,EAAkC,iBAElCC,EAA2B,+BAC3BC,EAA8B,iDAC9BC,EAAuB,kCACvBC,EAAyD,yBAEzDA,EAA0C,yBAC1CC,EAAkC,+BAElCC,EAA+B,8BAExB,MAAMV,EAAc,CAAC,CAAE,KAAAW,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAA4B,EAChD,CAAE,eAAAC,CAAe,KAAI,EAAAC,SAAkB,EACvC,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EAEvCE,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,KAAI,wBAAqB,CACtD,QAASV,GAAM,MAAM,IAAIW,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,KAAO,WAAQ,IACZF,GACH,IAAKG,GAAqB,CAC1B,MAAMC,GAAUd,EAAK,MAAQ,CAAC,GAAG,KAAKW,GAAQA,EAAK,WAAW,CAAC,GAAG,SAAWE,EAAQ,MAAM,EACrFE,EAAWX,EAAe,KAAKO,GAAQA,EAAK,IAAI,SAAS,IAAMG,GAAQ,UAAU,SAAS,CAAC,EAC3FE,EACJH,EAAQ,UAAU,KAAMI,GAAiBA,EAAQ,MAAQH,GAAQ,WAAW,CAAC,GAAG,GAAG,GAAKD,EAAQ,WAAW,CAAC,EAC9G,MAAI,CAACE,GAAY,CAACC,EAAuB,KAClC,CACL,QAAAH,EACA,eAAAG,EACA,SAAU,CACR,GAAID,GAAU,GACd,eAAgBA,GAAU,gBAC1B,mBAAoBA,GAAU,oBAC9B,UAAWA,GAAU,WACrB,YAAaA,GAAU,aACvB,MAAOA,GAAU,KACjB,KAAMA,GAAU,IAClB,EACA,OAAAD,CACF,CACF,CAAC,EACA,OAAO,OAAO,EAChB,CAACJ,EAAkBV,EAAK,KAAMI,CAAc,CAAC,EAEhD,SACE,QAAC,aAAU,GAAIH,EAAI,aAAW,EAAAiB,YAAG,cAAc,EAC7C,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMlB,EAAK,MAAO,KAE5C,OAAC,OAAI,UAAU,+FACZ,SAAAY,GAAM,IAAI,CAACD,EAAMQ,OAChB,OAAC,EAAAC,QAAA,CAEC,KAAMpB,EACN,SAAUW,EACV,SAAUR,EACV,aAAcO,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDS,CAKP,CACD,EACH,EAECjB,MACC,OAAC,EAAAmB,QAAA,CACC,iBAAiB,+BACjB,aAAW,EAAAH,YAAG,+BAAgC,CAACV,GAAW,iBAAiB,EAC3E,OAAQN,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOI,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
- "names": ["CreditsCash_exports", "__export", "CreditsCash", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_RedeemableItem", "import_useRedeemableList", "import_RulesModal", "import_lib", "import_provider", "import_constants", "copy", "id", "rules", "setRules", "redeemableList", "useRedeemableList", "pageCommon", "brand", "rounded", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "product", "config", "alpcData", "productVariant", "variant", "cn", "index", "RedeemableItem", "RulesModal"]
4
+ "sourcesContent": ["import { Container, Heading, Text } from '@anker-in/headless-ui'\nimport { useMemo, useState } from 'react'\n\nimport RedeemableItem from './RedeemableItem'\nimport useRedeemableList from '../context/hooks/useRedeemableList'\nimport RulesModal from '../modal/RulesModal'\nimport { useProductsByHandles, useHeadlessContext } from '@anker-in/lib'\nimport { CreditsCashCopy, RedeemItem } from './type'\nimport { Product, classNames as cn } from '@anker-in/lib'\nimport { useCreditsContext } from '../context/provider'\nimport { numberFormat } from '../context/utils'\nimport { ROUNDED_BRANDS } from '../../../constants'\n\nexport const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }) => {\n const [rules, setRules] = useState<string | string[]>()\n const { redeemableList } = useRedeemableList()\n const { pageCommon } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const variantMetafieldIdentifiers: any[] = []\n\n const { data: productByHandles } = useProductsByHandles({\n handles: copy?.list?.map(item => item.products?.[0]?.handle) || [],\n metafieldIdentifiers: {\n variant: variantMetafieldIdentifiers,\n },\n })\n\n const list = useMemo(() => {\n return (copy?.list || [])\n .map(config => {\n const handle = config?.products?.[0]?.handle\n const sku = config?.products?.[0]?.sku\n const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())\n\n // \u4ECE productByHandles \u4E2D\u627E\u5230\u5BF9\u5E94 handle \u7684 product\n const product = productByHandles?.find((p: Product) => p.handle === handle)\n if (!product) return null\n\n // \u5728 product \u7684 variants \u4E2D\u627E\u5230\u5BF9\u5E94 sku \u7684 variant\n const productVariant = product.variants?.find((variant: any) => variant.sku === sku) || product.variants?.[0]\n if (!alpcData || !productVariant) return null\n\n return {\n product,\n productVariant,\n alpcData: {\n id: alpcData?.id,\n consumeCredits: alpcData?.consume_credits,\n remainingInventory: alpcData?.remaining_inventory,\n isLimited: alpcData?.is_limited,\n consumeType: alpcData?.consume_type,\n title: alpcData?.name,\n desc: alpcData?.note,\n },\n config,\n }\n })\n .filter(Boolean) as unknown as RedeemItem[]\n }, [productByHandles, copy.list, redeemableList])\n\n return (\n <Container id={id} className={cn('bg-[#F5F5F5]')}>\n <Heading as=\"h2\" size=\"4\" html={copy.title} />\n\n <div className=\"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3\">\n {list?.map((item, index: number) => (\n <RedeemableItem\n key={index}\n copy={copy}\n itemData={item}\n setRules={setRules}\n currencyCode={productByHandles?.[0]?.price.currencyCode || 'USD'}\n />\n ))}\n </div>\n\n {rules && (\n <RulesModal\n overlayClassName=\"md:px-[16px] md:items-center\"\n className={cn('md:h-fit md:rounded-b-[16px]', !rounded && 'md:rounded-none')}\n isOpen={rules.length > 0}\n onClose={() => setRules([])}\n titleClassName=\"border-b-transparent h-[56px]\"\n rules={rules}\n scrollClassName=\"md:mt-[8px] md:mb-[24px] md:pt-0\"\n title={pageCommon?.ruleLabel}\n ruleClassName=\"text-[#1d1d1f] font-bold\"\n />\n )}\n </Container>\n )\n}\n"],
5
+ "mappings": "0jBAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,iBAAAE,IAAA,eAAAC,EAAAH,GA+DI,IAAAI,EAAA,6BA/DJC,EAAyC,iCACzCC,EAAkC,iBAElCC,EAA2B,+BAC3BC,EAA8B,iDAC9BC,EAAuB,kCACvBC,EAAyD,yBAEzDA,EAA0C,yBAC1CC,EAAkC,+BAElCC,EAA+B,8BAExB,MAAMV,EAAc,CAAC,CAAE,KAAAW,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,KAAI,YAA4B,EAChD,CAAE,eAAAC,CAAe,KAAI,EAAAC,SAAkB,EACvC,CAAE,WAAAC,CAAW,KAAI,qBAAkB,EACnC,CAAE,MAAAC,CAAM,KAAI,sBAAmB,EAC/BC,EAAU,iBAAe,SAASD,CAAK,EAEvCE,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,KAAI,wBAAqB,CACtD,QAASV,GAAM,MAAM,IAAIW,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,KAAO,WAAQ,KACXZ,GAAM,MAAQ,CAAC,GACpB,IAAIa,GAAU,CACb,MAAMC,EAASD,GAAQ,WAAW,CAAC,GAAG,OAChCE,EAAMF,GAAQ,WAAW,CAAC,GAAG,IAC7BG,EAAWZ,EAAe,KAAKO,GAAQA,EAAK,IAAI,SAAS,IAAME,GAAQ,UAAU,SAAS,CAAC,EAG3FI,EAAUP,GAAkB,KAAMQ,GAAeA,EAAE,SAAWJ,CAAM,EAC1E,GAAI,CAACG,EAAS,OAAO,KAGrB,MAAME,EAAiBF,EAAQ,UAAU,KAAMG,GAAiBA,EAAQ,MAAQL,CAAG,GAAKE,EAAQ,WAAW,CAAC,EAC5G,MAAI,CAACD,GAAY,CAACG,EAAuB,KAElC,CACL,QAAAF,EACA,eAAAE,EACA,SAAU,CACR,GAAIH,GAAU,GACd,eAAgBA,GAAU,gBAC1B,mBAAoBA,GAAU,oBAC9B,UAAWA,GAAU,WACrB,YAAaA,GAAU,aACvB,MAAOA,GAAU,KACjB,KAAMA,GAAU,IAClB,EACA,OAAAH,CACF,CACF,CAAC,EACA,OAAO,OAAO,EAChB,CAACH,EAAkBV,EAAK,KAAMI,CAAc,CAAC,EAEhD,SACE,QAAC,aAAU,GAAIH,EAAI,aAAW,EAAAoB,YAAG,cAAc,EAC7C,oBAAC,WAAQ,GAAG,KAAK,KAAK,IAAI,KAAMrB,EAAK,MAAO,KAE5C,OAAC,OAAI,UAAU,+FACZ,SAAAY,GAAM,IAAI,CAACD,EAAMW,OAChB,OAAC,EAAAC,QAAA,CAEC,KAAMvB,EACN,SAAUW,EACV,SAAUR,EACV,aAAcO,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDY,CAKP,CACD,EACH,EAECpB,MACC,OAAC,EAAAsB,QAAA,CACC,iBAAiB,+BACjB,aAAW,EAAAH,YAAG,+BAAgC,CAACb,GAAW,iBAAiB,EAC3E,OAAQN,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOI,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
+ "names": ["CreditsCash_exports", "__export", "CreditsCash", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_RedeemableItem", "import_useRedeemableList", "import_RulesModal", "import_lib", "import_provider", "import_constants", "copy", "id", "rules", "setRules", "redeemableList", "useRedeemableList", "pageCommon", "brand", "rounded", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "config", "handle", "sku", "alpcData", "product", "p", "productVariant", "variant", "cn", "index", "RedeemableItem", "RulesModal"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var p=Object.defineProperty;var v=Object.getOwnPropertyDescriptor;var y=Object.getOwnPropertyNames;var L=Object.prototype.hasOwnProperty;var w=(o,e)=>{for(var i in e)p(o,i,{get:e[i],enumerable:!0})},O=(o,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of y(e))!L.call(o,t)&&t!==i&&p(o,t,{get:()=>e[t],enumerable:!(n=v(e,t))||n.enumerable});return o};var T=o=>O(p({},"__esModule",{value:!0}),o);var A={};w(A,{default:()=>k});module.exports=T(A);var m=require("react/jsx-runtime"),M=require("@anker-in/headless-ui"),d=require("react"),N=require("../context/provider"),R=require("../context/hooks/useRedeemCoupon"),a=require("../context/const"),I=require("../modal/ModalContainer"),F=require("./RedeemCouponModal/CouponInit"),S=require("./RedeemCouponModal/CouponSuccess");function P({item:o,copy:e,onError:i,...n}){const[t,C]=(0,d.useState)(),[f,s]=(0,d.useState)(),[x,l]=(0,d.useState)(!1),{profile:c,fetchCreditInfo:b}=(0,N.useCreditsContext)(),{isMutating:g,trigger:E}=(0,R.useRedeemCoupon)({onSuccess(r){if(!r){s(e.commonError);return}const h=r?.data||r;if(h?.success)C(h.coupon_code),b(c?.user_id);else{let u;r.code===a.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(u=e.redeemLimitError,l(!0)):r.code===a.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(u=e.inventoryNotEnough,l(!0)):r.code===a.AlpcErrorCode.CodeLpcNotEnoughCredits?(u=e.creditsNotEnough,l(!0),b(c?.user_id)):r.code===a.AlpcErrorCode.CodeCrossSiteError&&(u=e.crossSiteError,l(!0)),s(u||e.commonError||""),i&&i(r.code)}},onError(r){s(r.message||e.commonError)}}),_=(0,d.useCallback)(async()=>{s(""),E({user_id:c?.user_id,rule_id:Number(o.alpc?.id)})},[o,c,E]);return(0,d.useEffect)(()=>()=>{l(!1),s(""),C(void 0)},[]),(0,m.jsxs)(I.CreditsModalContainer,{...n,isOpen:!!o,className:"w-[540px] md:h-auto",scrollClassName:"mb-[40px] min-l:px-0 md:mb-[24px] px-0",titleClassName:"h-[56px] bg-[#F5F5F7]",children:[t&&!g?(0,m.jsx)(S.CouponSuccess,{item:o,copy:e,couponCode:t,disabled:x,onClose:n.onClose}):(0,m.jsx)(F.CouponInit,{item:o,copy:e,loading:g,disabled:x,onConfirm:_}),f&&(0,m.jsx)("div",{className:"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]",children:(0,m.jsx)(M.Text,{className:"text-[14px] font-semibold text-[#1F2021]",html:f})})]})}var k=P;
1
+ "use strict";var p=Object.defineProperty;var _=Object.getOwnPropertyDescriptor;var v=Object.getOwnPropertyNames;var y=Object.prototype.hasOwnProperty;var L=(o,e)=>{for(var i in e)p(o,i,{get:e[i],enumerable:!0})},w=(o,e,i,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let t of v(e))!y.call(o,t)&&t!==i&&p(o,t,{get:()=>e[t],enumerable:!(n=_(e,t))||n.enumerable});return o};var O=o=>w(p({},"__esModule",{value:!0}),o);var k={};L(k,{default:()=>P});module.exports=O(k);var m=require("react/jsx-runtime"),h=require("@anker-in/headless-ui"),d=require("react"),M=require("../context/provider"),N=require("../context/hooks/useRedeemCoupon"),a=require("../context/const"),R=require("../modal/ModalContainer"),I=require("./RedeemCouponModal/CouponInit"),F=require("./RedeemCouponModal/CouponSuccess");function T({item:o,copy:e,onError:i,...n}){const[t,C]=(0,d.useState)(),[f,s]=(0,d.useState)(),[x,l]=(0,d.useState)(!1),{profile:c,fetchCreditInfo:b}=(0,M.useCreditsContext)(),{isMutating:g,trigger:E}=(0,N.useRedeemCoupon)({onSuccess(r){if(!r){s(e.commonError);return}if(r.data?.success)C(r.data.coupon_code),b(c?.user_id);else{let u;r.code===a.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(u=e.redeemLimitError,l(!0)):r.code===a.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(u=e.inventoryNotEnough,l(!0)):r.code===a.AlpcErrorCode.CodeLpcNotEnoughCredits?(u=e.creditsNotEnough,l(!0),b(c?.user_id)):r.code===a.AlpcErrorCode.CodeCrossSiteError&&(u=e.crossSiteError,l(!0)),s(u||e.commonError||""),i&&i(r.code)}},onError(r){s(r.message||e.commonError)}}),S=(0,d.useCallback)(async()=>{s(""),E({user_id:c?.user_id,rule_id:Number(o.alpc?.id)})},[o,c,E]);return(0,d.useEffect)(()=>()=>{l(!1),s(""),C(void 0)},[]),(0,m.jsxs)(R.CreditsModalContainer,{...n,isOpen:!!o,className:"w-[540px] md:h-auto",scrollClassName:"mb-[40px] min-l:px-0 md:mb-[24px] px-0",titleClassName:"h-[56px] bg-[#F5F5F7]",children:[t&&!g?(0,m.jsx)(F.CouponSuccess,{item:o,copy:e,couponCode:t,disabled:x,onClose:n.onClose}):(0,m.jsx)(I.CouponInit,{item:o,copy:e,loading:g,disabled:x,onConfirm:S}),f&&(0,m.jsx)("div",{className:"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]",children:(0,m.jsx)(h.Text,{className:"text-[14px] font-semibold text-[#1F2021]",html:f})})]})}var P=T;
2
2
  //# sourceMappingURL=RedeemCouponModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsRedeemList/RedeemCouponModal.tsx"],
4
- "sourcesContent": ["import { Text } from '@anker-in/headless-ui'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { ModalContainerProps } from '../modal/ModalContainer'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemCoupon } from '../context/hooks/useRedeemCoupon'\nimport { AlpcErrorCode } from '../context/const'\nimport { CreditsModalContainer } from '../modal/ModalContainer'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../type'\nimport { CouponInit } from './RedeemCouponModal/CouponInit'\nimport { CouponSuccess } from './RedeemCouponModal/CouponSuccess'\n\nfunction RedeemCouponModal({\n item,\n copy,\n onError,\n ...props\n}: Omit<ModalContainerProps, 'isOpen'> & {\n item: RedeemableItemType\n copy: RedeemModalCommon\n onError: (code: number) => void\n}) {\n const [couponCode, setCouponCode] = useState<string>()\n const [errorInfo, setErrorInfo] = useState<string>()\n const [disabled, setDisabled] = useState(false)\n\n const { profile, fetchCreditInfo } = useCreditsContext()\n\n const { isMutating: loading, trigger } = useRedeemCoupon({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy.commonError)\n return\n }\n\n const data = responseData?.data || responseData\n if (data?.success) {\n setCouponCode(data.coupon_code)\n fetchCreditInfo(profile?.user_id)\n } else {\n let errorMsg\n if (responseData.code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy.redeemLimitError\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy.inventoryNotEnough\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (responseData.code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy.crossSiteError\n setDisabled(true)\n }\n\n setErrorInfo(errorMsg || copy.commonError || '')\n onError && onError(responseData.code)\n }\n },\n onError(error) {\n setErrorInfo(error.message || copy.commonError)\n },\n })\n\n const handleConfirm = useCallback(async () => {\n setErrorInfo('')\n trigger({\n user_id: profile?.user_id,\n rule_id: Number(item.alpc?.id),\n })\n }, [item, profile, trigger])\n\n useEffect(() => {\n return () => {\n setDisabled(false)\n setErrorInfo('')\n setCouponCode(undefined)\n }\n }, [])\n\n return (\n <CreditsModalContainer\n {...props}\n isOpen={!!item}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] min-l:px-0 md:mb-[24px] px-0\"\n titleClassName=\"h-[56px] bg-[#F5F5F7]\"\n >\n {couponCode && !loading ? (\n <CouponSuccess item={item} copy={copy} couponCode={couponCode} disabled={disabled} onClose={props.onClose} />\n ) : (\n <CouponInit item={item} copy={copy} loading={loading} disabled={disabled} onConfirm={handleConfirm} />\n )}\n {errorInfo && (\n <div className=\"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]\">\n <Text className=\"text-[14px] font-semibold text-[#1F2021]\" html={errorInfo} />\n </div>\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemCouponModal\n"],
5
- "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAiFI,IAAAI,EAAA,6BAjFJC,EAAqB,iCACrBC,EAAiD,iBAEjDC,EAAkC,+BAClCC,EAAgC,4CAChCC,EAA8B,4BAC9BC,EAAsC,mCAEtCC,EAA2B,0CAC3BC,EAA8B,6CAE9B,SAASC,EAAkB,CACzB,KAAAC,EACA,KAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAIG,CACD,KAAM,CAACC,EAAYC,CAAa,KAAI,YAAiB,EAC/C,CAACC,EAAWC,CAAY,KAAI,YAAiB,EAC7C,CAACC,EAAUC,CAAW,KAAI,YAAS,EAAK,EAExC,CAAE,QAAAC,EAAS,gBAAAC,CAAgB,KAAI,qBAAkB,EAEjD,CAAE,WAAYC,EAAS,QAAAC,CAAQ,KAAI,mBAAgB,CACvD,UAAUC,EAAc,CACtB,GAAI,CAACA,EAAc,CACjBP,EAAaN,EAAK,WAAW,EAC7B,MACF,CAEA,MAAMc,EAAOD,GAAc,MAAQA,EACnC,GAAIC,GAAM,QACRV,EAAcU,EAAK,WAAW,EAC9BJ,EAAgBD,GAAS,OAAO,MAC3B,CACL,IAAIM,EACAF,EAAa,OAAS,gBAAc,qCACtCE,EAAWf,EAAK,iBAChBQ,EAAY,EAAI,GACPK,EAAa,OAAS,gBAAc,+BAC7CE,EAAWf,EAAK,mBAChBQ,EAAY,EAAI,GACPK,EAAa,OAAS,gBAAc,yBAC7CE,EAAWf,EAAK,iBAChBQ,EAAY,EAAI,EAChBE,EAAgBD,GAAS,OAAO,GACvBI,EAAa,OAAS,gBAAc,qBAC7CE,EAAWf,EAAK,eAChBQ,EAAY,EAAI,GAGlBF,EAAaS,GAAYf,EAAK,aAAe,EAAE,EAC/CC,GAAWA,EAAQY,EAAa,IAAI,CACtC,CACF,EACA,QAAQG,EAAO,CACbV,EAAaU,EAAM,SAAWhB,EAAK,WAAW,CAChD,CACF,CAAC,EAEKiB,KAAgB,eAAY,SAAY,CAC5CX,EAAa,EAAE,EACfM,EAAQ,CACN,QAASH,GAAS,QAClB,QAAS,OAAOV,EAAK,MAAM,EAAE,CAC/B,CAAC,CACH,EAAG,CAACA,EAAMU,EAASG,CAAO,CAAC,EAE3B,sBAAU,IACD,IAAM,CACXJ,EAAY,EAAK,EACjBF,EAAa,EAAE,EACfF,EAAc,MAAS,CACzB,EACC,CAAC,CAAC,KAGH,QAAC,yBACE,GAAGF,EACJ,OAAQ,CAAC,CAACH,EACV,UAAU,sBACV,gBAAgB,yCAChB,eAAe,wBAEd,UAAAI,GAAc,CAACQ,KACd,OAAC,iBAAc,KAAMZ,EAAM,KAAMC,EAAM,WAAYG,EAAY,SAAUI,EAAU,QAASL,EAAM,QAAS,KAE3G,OAAC,cAAW,KAAMH,EAAM,KAAMC,EAAM,QAASW,EAAS,SAAUJ,EAAU,UAAWU,EAAe,EAErGZ,MACC,OAAC,OAAI,UAAU,0FACb,mBAAC,QAAK,UAAU,2CAA2C,KAAMA,EAAW,EAC9E,GAEJ,CAEJ,CAEA,IAAOlB,EAAQW",
6
- "names": ["RedeemCouponModal_exports", "__export", "RedeemCouponModal_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_useRedeemCoupon", "import_const", "import_ModalContainer", "import_CouponInit", "import_CouponSuccess", "RedeemCouponModal", "item", "copy", "onError", "props", "couponCode", "setCouponCode", "errorInfo", "setErrorInfo", "disabled", "setDisabled", "profile", "fetchCreditInfo", "loading", "trigger", "responseData", "data", "errorMsg", "error", "handleConfirm"]
4
+ "sourcesContent": ["import { Text } from '@anker-in/headless-ui'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { ModalContainerProps } from '../modal/ModalContainer'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemCoupon } from '../context/hooks/useRedeemCoupon'\nimport { AlpcErrorCode } from '../context/const'\nimport { CreditsModalContainer } from '../modal/ModalContainer'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../type'\nimport { CouponInit } from './RedeemCouponModal/CouponInit'\nimport { CouponSuccess } from './RedeemCouponModal/CouponSuccess'\n\nfunction RedeemCouponModal({\n item,\n copy,\n onError,\n ...props\n}: Omit<ModalContainerProps, 'isOpen'> & {\n item: RedeemableItemType\n copy: RedeemModalCommon\n onError: (code: number) => void\n}) {\n const [couponCode, setCouponCode] = useState<string>()\n const [errorInfo, setErrorInfo] = useState<string>()\n const [disabled, setDisabled] = useState(false)\n\n const { profile, fetchCreditInfo } = useCreditsContext()\n\n const { isMutating: loading, trigger } = useRedeemCoupon({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy.commonError)\n return\n }\n\n if (responseData.data?.success) {\n setCouponCode(responseData.data.coupon_code)\n fetchCreditInfo(profile?.user_id)\n } else {\n let errorMsg\n if (responseData.code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy.redeemLimitError\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy.inventoryNotEnough\n setDisabled(true)\n } else if (responseData.code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (responseData.code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy.crossSiteError\n setDisabled(true)\n }\n\n setErrorInfo(errorMsg || copy.commonError || '')\n onError && onError(responseData.code)\n }\n },\n onError(error) {\n setErrorInfo(error.message || copy.commonError)\n },\n })\n\n const handleConfirm = useCallback(async () => {\n setErrorInfo('')\n trigger({\n user_id: profile?.user_id,\n rule_id: Number(item.alpc?.id),\n })\n }, [item, profile, trigger])\n\n useEffect(() => {\n return () => {\n setDisabled(false)\n setErrorInfo('')\n setCouponCode(undefined)\n }\n }, [])\n\n return (\n <CreditsModalContainer\n {...props}\n isOpen={!!item}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] min-l:px-0 md:mb-[24px] px-0\"\n titleClassName=\"h-[56px] bg-[#F5F5F7]\"\n >\n {couponCode && !loading ? (\n <CouponSuccess item={item} copy={copy} couponCode={couponCode} disabled={disabled} onClose={props.onClose} />\n ) : (\n <CouponInit item={item} copy={copy} loading={loading} disabled={disabled} onConfirm={handleConfirm} />\n )}\n {errorInfo && (\n <div className=\"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]\">\n <Text className=\"text-[14px] font-semibold text-[#1F2021]\" html={errorInfo} />\n </div>\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemCouponModal\n"],
5
+ "mappings": "yaAAA,IAAAA,EAAA,GAAAC,EAAAD,EAAA,aAAAE,IAAA,eAAAC,EAAAH,GAgFI,IAAAI,EAAA,6BAhFJC,EAAqB,iCACrBC,EAAiD,iBAEjDC,EAAkC,+BAClCC,EAAgC,4CAChCC,EAA8B,4BAC9BC,EAAsC,mCAEtCC,EAA2B,0CAC3BC,EAA8B,6CAE9B,SAASC,EAAkB,CACzB,KAAAC,EACA,KAAAC,EACA,QAAAC,EACA,GAAGC,CACL,EAIG,CACD,KAAM,CAACC,EAAYC,CAAa,KAAI,YAAiB,EAC/C,CAACC,EAAWC,CAAY,KAAI,YAAiB,EAC7C,CAACC,EAAUC,CAAW,KAAI,YAAS,EAAK,EAExC,CAAE,QAAAC,EAAS,gBAAAC,CAAgB,KAAI,qBAAkB,EAEjD,CAAE,WAAYC,EAAS,QAAAC,CAAQ,KAAI,mBAAgB,CACvD,UAAUC,EAAc,CACtB,GAAI,CAACA,EAAc,CACjBP,EAAaN,EAAK,WAAW,EAC7B,MACF,CAEA,GAAIa,EAAa,MAAM,QACrBT,EAAcS,EAAa,KAAK,WAAW,EAC3CH,EAAgBD,GAAS,OAAO,MAC3B,CACL,IAAIK,EACAD,EAAa,OAAS,gBAAc,qCACtCC,EAAWd,EAAK,iBAChBQ,EAAY,EAAI,GACPK,EAAa,OAAS,gBAAc,+BAC7CC,EAAWd,EAAK,mBAChBQ,EAAY,EAAI,GACPK,EAAa,OAAS,gBAAc,yBAC7CC,EAAWd,EAAK,iBAChBQ,EAAY,EAAI,EAChBE,EAAgBD,GAAS,OAAO,GACvBI,EAAa,OAAS,gBAAc,qBAC7CC,EAAWd,EAAK,eAChBQ,EAAY,EAAI,GAGlBF,EAAaQ,GAAYd,EAAK,aAAe,EAAE,EAC/CC,GAAWA,EAAQY,EAAa,IAAI,CACtC,CACF,EACA,QAAQE,EAAO,CACbT,EAAaS,EAAM,SAAWf,EAAK,WAAW,CAChD,CACF,CAAC,EAEKgB,KAAgB,eAAY,SAAY,CAC5CV,EAAa,EAAE,EACfM,EAAQ,CACN,QAASH,GAAS,QAClB,QAAS,OAAOV,EAAK,MAAM,EAAE,CAC/B,CAAC,CACH,EAAG,CAACA,EAAMU,EAASG,CAAO,CAAC,EAE3B,sBAAU,IACD,IAAM,CACXJ,EAAY,EAAK,EACjBF,EAAa,EAAE,EACfF,EAAc,MAAS,CACzB,EACC,CAAC,CAAC,KAGH,QAAC,yBACE,GAAGF,EACJ,OAAQ,CAAC,CAACH,EACV,UAAU,sBACV,gBAAgB,yCAChB,eAAe,wBAEd,UAAAI,GAAc,CAACQ,KACd,OAAC,iBAAc,KAAMZ,EAAM,KAAMC,EAAM,WAAYG,EAAY,SAAUI,EAAU,QAASL,EAAM,QAAS,KAE3G,OAAC,cAAW,KAAMH,EAAM,KAAMC,EAAM,QAASW,EAAS,SAAUJ,EAAU,UAAWS,EAAe,EAErGX,MACC,OAAC,OAAI,UAAU,0FACb,mBAAC,QAAK,UAAU,2CAA2C,KAAMA,EAAW,EAC9E,GAEJ,CAEJ,CAEA,IAAOlB,EAAQW",
6
+ "names": ["RedeemCouponModal_exports", "__export", "RedeemCouponModal_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_useRedeemCoupon", "import_const", "import_ModalContainer", "import_CouponInit", "import_CouponSuccess", "RedeemCouponModal", "item", "copy", "onError", "props", "couponCode", "setCouponCode", "errorInfo", "setErrorInfo", "disabled", "setDisabled", "profile", "fetchCreditInfo", "loading", "trigger", "responseData", "errorMsg", "error", "handleConfirm"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var C=Object.defineProperty;var A=Object.getOwnPropertyDescriptor;var V=Object.getOwnPropertyNames;var k=Object.prototype.hasOwnProperty;var B=(t,e)=>{for(var s in e)C(t,s,{get:e[s],enumerable:!0})},z=(t,e,s,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let m of V(e))!k.call(t,m)&&m!==s&&C(t,m,{get:()=>e[m],enumerable:!(u=A(e,m))||u.enumerable});return t};var J=t=>z(C({},"__esModule",{value:!0}),t);var H={};B(H,{default:()=>q});module.exports=J(H);var l=require("react/jsx-runtime"),R=require("@anker-in/headless-ui"),d=require("react"),M=require("../context/provider"),I=require("../context/hooks/useRedeemGoGift"),S=require("../context/hooks/useRedeemProduct"),n=require("../context/const"),y=require("../modal/ModalContainer"),P=require("@anker-in/lib"),L=require("./RedeemVirtualProductModal/VirtualProductInit"),F=require("./RedeemVirtualProductModal/VirtualProductSuccess");function U({item:t,copy:e,onError:s,...u}){const[m,c]=(0,d.useState)(),[b,a]=(0,d.useState)(),[x,f]=(0,d.useState)(!1),{profile:o,fetchCreditInfo:p,gtm:E}=(0,M.useCreditsContext)(),g=t.config?.type===n.ConsumeType.GoGift,v=t.config?.type===n.ConsumeType.GiftCard,{isMutating:T,trigger:_}=(0,I.useRedeemGoGift)({onSuccess(r){if(!r){a(e?.commonError);return}const i=r?.data||r;i?.id?(c(i.id),p(o?.user_id)):h(r.code)},onError(r){a(r.message||e?.commonError)}}),{isMutating:O,trigger:G}=(0,S.useRedeemProduct)({onSuccess(r){if(!r){a(e?.commonError);return}r?.code===0?(c("success"),p(o?.user_id)):h(r.code)},onError(){a(e?.commonError)}}),N=g?T:O,h=r=>{let i;r===n.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(i=e?.redeemLimitError,f(!0)):r===n.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(i=e?.inventoryNotEnough,f(!0)):r===n.AlpcErrorCode.CodeLpcNotEnoughCredits?(i=e?.creditsNotEnough,f(!0),p(o?.user_id)):r===n.AlpcErrorCode.CodeCrossSiteError&&(i=e?.crossSiteError,f(!0)),a(i||e?.commonError||""),s&&s(r)},w=(0,d.useCallback)(async()=>{if(a(""),(0,P.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:o?.activated?"active":"not active",event_parameters:{page_group:E.pageGroup,position:"redeem virtual product modal",button_name:e.confirmButton,info:t.alpc?.id}}),g)_({user_id:o?.user_id,rule_id:Number(t.alpc?.id)});else if(v){const r={email:o?.email||"",first_name:o?.firstName||"",last_name:o?.lastName||"",address1:"Default Address",city:"Default City",province:"Default Province",country:"US",zip:"00000"};G({address:btoa(JSON.stringify(r)),rule_id:Number(t.alpc?.id)})}},[t,o,_,G,g,v,e.confirmButton,E.pageGroup]);return(0,d.useEffect)(()=>()=>{f(!1),a(""),c(void 0)},[]),(0,l.jsxs)(y.CreditsModalContainer,{...u,isOpen:!!t,className:"w-[540px] md:h-auto",scrollClassName:"mb-[40px] min-l:px-0 md:mb-[24px] px-0",titleClassName:"h-[56px] bg-[#F5F5F7]",children:[m&&!N?(0,l.jsx)(F.VirtualProductSuccess,{item:t,copy:e,disabled:x,onClose:u.onClose}):(0,l.jsx)(L.VirtualProductInit,{item:t,copy:e,loading:N,disabled:x,onConfirm:w}),b&&(0,l.jsx)("div",{className:"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]",children:(0,l.jsx)(R.Text,{className:"text-[14px] font-semibold text-[#1F2021]",html:b})})]})}var q=U;
1
+ "use strict";var C=Object.defineProperty;var k=Object.getOwnPropertyDescriptor;var w=Object.getOwnPropertyNames;var V=Object.prototype.hasOwnProperty;var B=(r,e)=>{for(var s in e)C(r,s,{get:e[s],enumerable:!0})},z=(r,e,s,u)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of w(e))!V.call(r,a)&&a!==s&&C(r,a,{get:()=>e[a],enumerable:!(u=k(e,a))||u.enumerable});return r};var D=r=>z(C({},"__esModule",{value:!0}),r);var q={};B(q,{default:()=>U});module.exports=D(q);var l=require("react/jsx-runtime"),R=require("@anker-in/headless-ui"),d=require("react"),M=require("../context/provider"),I=require("../context/hooks/useRedeemGoGift"),S=require("../context/hooks/useRedeemProduct"),n=require("../context/const"),y=require("../modal/ModalContainer"),P=require("@anker-in/lib"),L=require("./RedeemVirtualProductModal/VirtualProductInit"),F=require("./RedeemVirtualProductModal/VirtualProductSuccess");function J({item:r,copy:e,onError:s,...u}){const[a,c]=(0,d.useState)(),[b,m]=(0,d.useState)(),[x,f]=(0,d.useState)(!1),{profile:o,fetchCreditInfo:p,gtm:E}=(0,M.useCreditsContext)(),g=r.config?.type===n.ConsumeType.GoGift,v=r.config?.type===n.ConsumeType.GiftCard,{isMutating:T,trigger:_}=(0,I.useRedeemGoGift)({onSuccess(t){if(!t){m(e?.commonError);return}const i=t.data;i?.id?(c(i.id),p(o?.user_id)):h(t.code)},onError(t){m(t.message||e?.commonError)}}),{isMutating:A,trigger:G}=(0,S.useRedeemProduct)({onSuccess(t){if(!t){m(e?.commonError);return}t?.code===0?(c("success"),p(o?.user_id)):h(t.code)},onError(){m(e?.commonError)}}),N=g?T:A,h=t=>{let i;t===n.AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit?(i=e?.redeemLimitError,f(!0)):t===n.AlpcErrorCode.CodeLpcRuleInventoryNotEnough?(i=e?.inventoryNotEnough,f(!0)):t===n.AlpcErrorCode.CodeLpcNotEnoughCredits?(i=e?.creditsNotEnough,f(!0),p(o?.user_id)):t===n.AlpcErrorCode.CodeCrossSiteError&&(i=e?.crossSiteError,f(!0)),m(i||e?.commonError||""),s&&s(t)},O=(0,d.useCallback)(async()=>{if(m(""),(0,P.gaTrack)({event:"ga4Event",event_name:"lp_button",member_active_status:o?.activated?"active":"not active",event_parameters:{page_group:E.pageGroup,position:"redeem virtual product modal",button_name:e.confirmButton,info:r.alpc?.id}}),g)_({user_id:o?.user_id,rule_id:Number(r.alpc?.id)});else if(v){const t={email:o?.email||"",first_name:o?.firstName||"Anker",last_name:o?.lastName||"Direct",address1:"Default Address",city:"Default City",province:"Default Province",country:"US",zip:"00000"};G({address:btoa(JSON.stringify(t)),rule_id:Number(r.alpc?.id)})}},[r,o,_,G,g,v,e.confirmButton,E.pageGroup]);return(0,d.useEffect)(()=>()=>{f(!1),m(""),c(void 0)},[]),(0,l.jsxs)(y.CreditsModalContainer,{...u,isOpen:!!r,className:"w-[540px] md:h-auto",scrollClassName:"mb-[40px] min-l:px-0 md:mb-[24px] px-0",titleClassName:"h-[56px] bg-[#F5F5F7]",children:[a&&!N?(0,l.jsx)(F.VirtualProductSuccess,{item:r,copy:e,disabled:x,onClose:u.onClose}):(0,l.jsx)(L.VirtualProductInit,{item:r,copy:e,loading:N,disabled:x,onConfirm:O}),b&&(0,l.jsx)("div",{className:"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]",children:(0,l.jsx)(R.Text,{className:"text-[14px] font-semibold text-[#1F2021]",html:b})})]})}var U=J;
2
2
  //# sourceMappingURL=RedeemVirtualProductModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/creditsRedeemList/RedeemVirtualProductModal.tsx"],
4
- "sourcesContent": ["import { Text } from '@anker-in/headless-ui'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { ModalContainerProps } from '../modal/ModalContainer'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemGoGift } from '../context/hooks/useRedeemGoGift'\nimport { useRedeemProduct } from '../context/hooks/useRedeemProduct'\nimport { AlpcErrorCode, ConsumeType } from '../context/const'\nimport { CreditsModalContainer } from '../modal/ModalContainer'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../type'\nimport { gaTrack } from '@anker-in/lib'\nimport { VirtualProductInit } from './RedeemVirtualProductModal/VirtualProductInit'\nimport { VirtualProductSuccess } from './RedeemVirtualProductModal/VirtualProductSuccess'\n\nfunction RedeemVirtualProductModal({\n item,\n copy,\n onError,\n ...props\n}: Omit<ModalContainerProps, 'isOpen'> & {\n item: RedeemableItemType\n copy: RedeemModalCommon\n onError: (code: number) => void\n}) {\n const [giftCardId, setGiftCardId] = useState<string>()\n const [errorInfo, setErrorInfo] = useState<string>()\n\n const [disabled, setDisabled] = useState(false)\n\n const { profile, fetchCreditInfo, gtm } = useCreditsContext()\n\n // \u5224\u65AD\u662F GoGift \u8FD8\u662F GiftCard \u7C7B\u578B\n const isGoGift = item.config?.type === ConsumeType.GoGift\n const isGiftCard = item.config?.type === ConsumeType.GiftCard\n\n // GoGift \u4F7F\u7528\u4E13\u7528\u63A5\u53E3\n const { isMutating: goGiftLoading, trigger: triggerGoGift } = useRedeemGoGift({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy?.commonError)\n return\n }\n\n const data = responseData?.data || responseData\n if (data?.id) {\n setGiftCardId(data.id)\n fetchCreditInfo(profile?.user_id)\n } else {\n handleRedeemError(responseData.code)\n }\n },\n onError(error) {\n setErrorInfo(error.message || copy?.commonError)\n },\n })\n\n // GiftCard \u4F7F\u7528 Product \u63A5\u53E3\uFF0C\u4F46\u4E0D\u9700\u8981\u5730\u5740\n const { isMutating: productLoading, trigger: triggerProduct } = useRedeemProduct({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy?.commonError)\n return\n }\n\n if (responseData?.code === 0) {\n setGiftCardId('success')\n fetchCreditInfo(profile?.user_id)\n } else {\n handleRedeemError(responseData.code)\n }\n },\n onError() {\n setErrorInfo(copy?.commonError)\n },\n })\n\n const loading = isGoGift ? goGiftLoading : productLoading\n\n const handleRedeemError = (code: number) => {\n let errorMsg: string | undefined\n if (code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy?.redeemLimitError\n setDisabled(true)\n } else if (code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy?.inventoryNotEnough\n setDisabled(true)\n } else if (code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy?.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy?.crossSiteError\n setDisabled(true)\n }\n\n setErrorInfo(errorMsg || copy?.commonError || '')\n onError && onError(code)\n }\n\n const handleConfirm = useCallback(async () => {\n setErrorInfo('')\n\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: gtm.pageGroup,\n position: 'redeem virtual product modal',\n button_name: copy.confirmButton,\n info: item.alpc?.id,\n },\n })\n\n if (isGoGift) {\n // GoGift \u7C7B\u578B\u4F7F\u7528\u4E13\u7528\u63A5\u53E3\n triggerGoGift({\n user_id: profile?.user_id,\n rule_id: Number(item.alpc?.id),\n })\n } else if (isGiftCard) {\n // GiftCard \u7C7B\u578B\u4F7F\u7528 Product \u63A5\u53E3\uFF0C\u4F20\u9012\u9ED8\u8BA4\u5730\u5740\n const defaultAddress = {\n email: profile?.email || '',\n first_name: profile?.firstName || '',\n last_name: profile?.lastName || '',\n address1: 'Default Address',\n city: 'Default City',\n province: 'Default Province',\n country: 'US',\n zip: '00000',\n }\n triggerProduct({\n address: btoa(JSON.stringify(defaultAddress)),\n rule_id: Number(item.alpc?.id),\n })\n }\n }, [item, profile, triggerGoGift, triggerProduct, isGoGift, isGiftCard, copy.confirmButton, gtm.pageGroup])\n\n useEffect(() => {\n return () => {\n setDisabled(false)\n setErrorInfo('')\n setGiftCardId(undefined)\n }\n }, [])\n\n return (\n <CreditsModalContainer\n {...props}\n isOpen={!!item}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] min-l:px-0 md:mb-[24px] px-0\"\n titleClassName=\"h-[56px] bg-[#F5F5F7]\"\n >\n {giftCardId && !loading ? (\n <VirtualProductSuccess item={item} copy={copy} disabled={disabled} onClose={props.onClose} />\n ) : (\n <VirtualProductInit item={item} copy={copy} loading={loading} disabled={disabled} onConfirm={handleConfirm} />\n )}\n {errorInfo && (\n <div className=\"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]\">\n <Text className=\"text-[14px] font-semibold text-[#1F2021]\" html={errorInfo} />\n </div>\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemVirtualProductModal\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Text } from '@anker-in/headless-ui'\nimport { useCallback, useEffect, useState } from 'react'\nimport type { ModalContainerProps } from '../modal/ModalContainer'\nimport { useCreditsContext } from '../context/provider'\nimport { useRedeemGoGift } from '../context/hooks/useRedeemGoGift'\nimport { useRedeemProduct } from '../context/hooks/useRedeemProduct'\nimport { AlpcErrorCode, ConsumeType } from '../context/const'\nimport { CreditsModalContainer } from '../modal/ModalContainer'\nimport type { RedeemableItem as RedeemableItemType, RedeemModalCommon } from '../type'\nimport { gaTrack } from '@anker-in/lib'\nimport { VirtualProductInit } from './RedeemVirtualProductModal/VirtualProductInit'\nimport { VirtualProductSuccess } from './RedeemVirtualProductModal/VirtualProductSuccess'\n\nfunction RedeemVirtualProductModal({\n item,\n copy,\n onError,\n ...props\n}: Omit<ModalContainerProps, 'isOpen'> & {\n item: RedeemableItemType\n copy: RedeemModalCommon\n onError: (code: number) => void\n}) {\n const [giftCardId, setGiftCardId] = useState<string>()\n const [errorInfo, setErrorInfo] = useState<string>()\n\n const [disabled, setDisabled] = useState(false)\n\n const { profile, fetchCreditInfo, gtm } = useCreditsContext()\n\n // \u5224\u65AD\u662F GoGift \u8FD8\u662F GiftCard \u7C7B\u578B\n const isGoGift = item.config?.type === ConsumeType.GoGift\n const isGiftCard = item.config?.type === ConsumeType.GiftCard\n\n // GoGift \u4F7F\u7528\u4E13\u7528\u63A5\u53E3\n const { isMutating: goGiftLoading, trigger: triggerGoGift } = useRedeemGoGift({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy?.commonError)\n return\n }\n\n const data = responseData.data\n if (data?.id) {\n setGiftCardId(data.id)\n fetchCreditInfo(profile?.user_id)\n } else {\n handleRedeemError(responseData.code)\n }\n },\n onError(error) {\n setErrorInfo(error.message || copy?.commonError)\n },\n })\n\n // GiftCard \u4F7F\u7528 Product \u63A5\u53E3\uFF0C\u4F46\u4E0D\u9700\u8981\u5730\u5740\n const { isMutating: productLoading, trigger: triggerProduct } = useRedeemProduct({\n onSuccess(responseData) {\n if (!responseData) {\n setErrorInfo(copy?.commonError)\n return\n }\n\n if (responseData?.code === 0) {\n setGiftCardId('success')\n fetchCreditInfo(profile?.user_id)\n } else {\n handleRedeemError(responseData.code)\n }\n },\n onError() {\n setErrorInfo(copy?.commonError)\n },\n })\n\n const loading = isGoGift ? goGiftLoading : productLoading\n\n const handleRedeemError = (code: number) => {\n let errorMsg: string | undefined\n if (code === AlpcErrorCode.CodeLpcShopifyCouponRuleRedeemLimit) {\n errorMsg = copy?.redeemLimitError\n setDisabled(true)\n } else if (code === AlpcErrorCode.CodeLpcRuleInventoryNotEnough) {\n errorMsg = copy?.inventoryNotEnough\n setDisabled(true)\n } else if (code === AlpcErrorCode.CodeLpcNotEnoughCredits) {\n errorMsg = copy?.creditsNotEnough\n setDisabled(true)\n fetchCreditInfo(profile?.user_id)\n } else if (code === AlpcErrorCode.CodeCrossSiteError) {\n errorMsg = copy?.crossSiteError\n setDisabled(true)\n }\n\n setErrorInfo(errorMsg || copy?.commonError || '')\n onError && onError(code)\n }\n\n const handleConfirm = useCallback(async () => {\n setErrorInfo('')\n\n gaTrack({\n event: 'ga4Event',\n event_name: 'lp_button',\n member_active_status: profile?.activated ? 'active' : 'not active',\n event_parameters: {\n page_group: gtm.pageGroup,\n position: 'redeem virtual product modal',\n button_name: copy.confirmButton,\n info: item.alpc?.id,\n },\n })\n\n if (isGoGift) {\n // GoGift \u7C7B\u578B\u4F7F\u7528\u4E13\u7528\u63A5\u53E3\n triggerGoGift({\n user_id: profile?.user_id,\n rule_id: Number(item.alpc?.id),\n })\n } else if (isGiftCard) {\n // GiftCard \u7C7B\u578B\u4F7F\u7528 Product \u63A5\u53E3\uFF0C\u4F20\u9012\u9ED8\u8BA4\u5730\u5740\n const defaultAddress = {\n email: profile?.email || '',\n first_name: profile?.firstName || 'Anker',\n last_name: profile?.lastName || 'Direct',\n address1: 'Default Address',\n city: 'Default City',\n province: 'Default Province',\n country: 'US',\n zip: '00000',\n }\n triggerProduct({\n address: btoa(JSON.stringify(defaultAddress)),\n rule_id: Number(item.alpc?.id),\n })\n }\n }, [item, profile, triggerGoGift, triggerProduct, isGoGift, isGiftCard, copy.confirmButton, gtm.pageGroup])\n\n useEffect(() => {\n return () => {\n setDisabled(false)\n setErrorInfo('')\n setGiftCardId(undefined)\n }\n }, [])\n\n return (\n <CreditsModalContainer\n {...props}\n isOpen={!!item}\n className=\"w-[540px] md:h-auto\"\n scrollClassName=\"mb-[40px] min-l:px-0 md:mb-[24px] px-0\"\n titleClassName=\"h-[56px] bg-[#F5F5F7]\"\n >\n {giftCardId && !loading ? (\n <VirtualProductSuccess item={item} copy={copy} disabled={disabled} onClose={props.onClose} />\n ) : (\n <VirtualProductInit item={item} copy={copy} loading={loading} disabled={disabled} onConfirm={handleConfirm} />\n )}\n {errorInfo && (\n <div className=\"mx-auto max-w-full bg-white px-[48px] py-[12px] text-center text-[#FF0000] md:px-[16px]\">\n <Text className=\"text-[14px] font-semibold text-[#1F2021]\" html={errorInfo} />\n </div>\n )}\n </CreditsModalContainer>\n )\n}\n\nexport default RedeemVirtualProductModal\n"],
5
+ "mappings": "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",
6
6
  "names": ["RedeemVirtualProductModal_exports", "__export", "RedeemVirtualProductModal_default", "__toCommonJS", "import_jsx_runtime", "import_headless_ui", "import_react", "import_provider", "import_useRedeemGoGift", "import_useRedeemProduct", "import_const", "import_ModalContainer", "import_lib", "import_VirtualProductInit", "import_VirtualProductSuccess", "RedeemVirtualProductModal", "item", "copy", "onError", "props", "giftCardId", "setGiftCardId", "errorInfo", "setErrorInfo", "disabled", "setDisabled", "profile", "fetchCreditInfo", "gtm", "isGoGift", "isGiftCard", "goGiftLoading", "triggerGoGift", "responseData", "data", "handleRedeemError", "error", "productLoading", "triggerProduct", "loading", "code", "errorMsg", "handleConfirm", "defaultAddress"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var I=Object.create;var f=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var z=(e,r)=>{for(var a in r)f(e,a,{get:r[a],enumerable:!0})},_=(e,r,a,m)=>{if(r&&typeof r=="object"||typeof r=="function")for(let n of j(r))!H.call(e,n)&&n!==a&&f(e,n,{get:()=>r[n],enumerable:!(m=O(r,n))||m.enumerable});return e};var x=(e,r,a)=>(a=e!=null?I(F(e)):{},_(r||!e||!e.__esModule?f(a,"default",{value:e,enumerable:!0}):a,e)),q=e=>_(f({},"__esModule",{value:!0}),e);var $={};z($,{default:()=>V});module.exports=q($);var i=require("react/jsx-runtime"),o=require("react"),M=require("../context/provider"),t=require("../context/const"),P=x(require("../context/hooks/useActivities")),C=require("./ModalContainer"),d=require("@anker-in/lib"),c=require("@anker-in/headless-ui"),D=x(require("./LoadingDots")),T=require("@anker-in/headless-ui"),S=require("../../../constants"),y=x(require("dayjs"));function K({data:e,...r}){const[a,m]=(0,o.useState)(1),{taskIdToTypeMapping:n}=(0,M.useCreditsContext)(),{brand:U}=(0,d.useHeadlessContext)(),b=S.ROUNDED_BRANDS.includes(U),L=(0,o.useMemo)(()=>({page:r.isOpen?a:0,pageSize:1e3}),[r.isOpen,a]),[u,E]=(0,o.useState)(t.CreditType.All),R=(0,o.useMemo)(()=>{const p=[{title:e.allTab,type:t.CreditType.All},{title:e.earnedTab,type:t.CreditType.Earned},{title:e.deductedTab,type:t.CreditType.Deducted}];return e.expiredTab&&p.push({title:e.expiredTab,type:t.CreditType.Expired}),p},[e]),{activities:h=[],canNext:N,isLoading:A}=(0,P.default)(L),v=(0,o.useMemo)(()=>{const p={[t.TaskSubType.Activation]:e.activationTask,[t.TaskSubType.UpdateName]:e.updateNameTask,[t.TaskSubType.UpdatePhone]:e.updatePhoneTask,[t.TaskSubType.UpdateBirthday]:e.updateBirthdayTask,[t.TaskSubType.Subscription]:e.subscriptionTask,[t.TaskSubType.UpadteAppName]:e.updateAppNameTask,[t.TaskSubType.Refund]:e.refundTask,[t.TaskSubType.ProductUnApproved]:e.productUnApprovedTask},k={[t.DTC_TASK_TYPE.FirstPurchase]:e.firstPurchaseTask,[t.DTC_TASK_TYPE.UploadReceipt]:e.uploadReceiptTask,[t.DTC_TASK_TYPE.Shopping]:e.shoppingTask};function w(s){return s.task_type===t.TaskType.Redeem&&s.task_sub_type===t.TaskSubType.ProductUnApproved&&e.productUnApprovedTask?s.task_name.replace("Refund",e.productUnApprovedTask):n?.[String(s.task_rule_id)]?k[n?.[String(s.task_rule_id)]]:p[s.task_sub_type]||s.task_name}let l=h.map(s=>({title:w(s),date:new Date(s.create_time*1e3),value:s.credit,type:s.credit_type,pending_time:s.pending_time,credit_type:s.credit_type,status:s.status}))||[];return u===t.CreditType.Earned?l=l?.filter(s=>s.type===1):u===t.CreditType.Deducted?l=l?.filter(s=>s.type===2&&s.status!==3):u===t.CreditType.Expired&&(l=l?.filter(s=>s.type===2&&s.status===3)),l.map(s=>{let{value:g,...B}=s;return s.type===t.CreditType.Deducted&&g>0&&(g=-g),{value:g,...B}})},[e.activationTask,e.updateNameTask,e.updatePhoneTask,e.updateBirthdayTask,e.subscriptionTask,e.updateAppNameTask,e.refundTask,e.productUnApprovedTask,e.firstPurchaseTask,e.uploadReceiptTask,e.shoppingTask,h,u,n]),Y=(0,o.useCallback)(()=>{N&&m(a+1)},[a,N]);return(0,i.jsxs)(C.CreditsModalContainer,{title:e.title,className:(0,d.classNames)("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"",...r,onScrollEnd:Y,children:[(0,i.jsx)("div",{className:"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto",children:(0,i.jsx)(c.Tabs,{align:"left",shape:b?"rounded":"square",value:u.toString(),onValueChange:p=>{E(Number(p))},className:"",children:(0,i.jsx)(c.TabsList,{children:R.map(p=>(0,i.jsx)(c.TabsTrigger,{value:p.type.toString(),children:p.title},p.type))})})}),(0,i.jsxs)("div",{className:"grid gap-[18px] overflow-auto overscroll-contain md:gap-[12px]",children:[A&&(0,i.jsx)("div",{className:"flex h-full flex-col items-center justify-center",children:(0,i.jsx)(D.default,{})}),!A&&(0,i.jsx)(i.Fragment,{children:v.length>0?v.map((p,k)=>(0,i.jsxs)("div",{className:(0,d.classNames)("flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]",!b&&"rounded-none"),children:[(0,i.jsxs)("div",{className:"grid gap-[6px]",children:[(0,i.jsx)("div",{className:"font-bold",children:p.title}),(0,i.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,y.default)(p.date).format("YYYY-MM-DD HH:mm").toString()}),!e.pendingTips&&(0,i.jsxs)("div",{className:`hidden text-[14px] font-semibold text-[#777] ${p.status===2&&p.credit_type===1?"!flex":""}`,children:[(0,i.jsx)(T.Text,{html:e.pendingTips}),(0,i.jsx)("span",{children:y.default.unix(p.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&(0,i.jsx)(T.Text,{html:e.pendingTips2})]})]}),(0,i.jsxs)("div",{className:(0,d.classNames)("font-bold",p.value>=0||p.credit_type===t.CreditType.Expired?"text-[#52C41A]":"text-[#F84D4F]"),children:[p.value>=0&&"+",p.value]})]},k)):(0,i.jsxs)("div",{className:"flex h-full flex-col items-center justify-center",children:[(0,i.jsx)(T.Picture,{className:"mb-[16px] h-[120px] w-[160px]",source:e?.emptyListImage?.url,alt:e?.emptyListImage?.alt||"empty list image"}),(0,i.jsx)("div",{className:"leading-1.4 text-[16px] font-semibold",children:e?.emptyListLabel})]})})]}),v.length>0&&(0,i.jsx)("div",{className:"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]",children:e.tips})]})}var V=K;
1
+ "use strict";var I=Object.create;var g=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var F=Object.getPrototypeOf,H=Object.prototype.hasOwnProperty;var z=(e,a)=>{for(var r in a)g(e,r,{get:a[r],enumerable:!0})},_=(e,a,r,m)=>{if(a&&typeof a=="object"||typeof a=="function")for(let n of j(a))!H.call(e,n)&&n!==r&&g(e,n,{get:()=>a[n],enumerable:!(m=O(a,n))||m.enumerable});return e};var k=(e,a,r)=>(r=e!=null?I(F(e)):{},_(a||!e||!e.__esModule?g(r,"default",{value:e,enumerable:!0}):r,e)),q=e=>_(g({},"__esModule",{value:!0}),e);var $={};z($,{default:()=>V});module.exports=q($);var s=require("react/jsx-runtime"),o=require("react"),M=require("../context/provider"),i=require("../context/const"),P=k(require("../context/hooks/useActivities")),C=require("./ModalContainer"),d=require("@anker-in/lib"),c=require("@anker-in/headless-ui"),D=k(require("./LoadingDots")),T=require("@anker-in/headless-ui"),S=require("../../../constants"),y=k(require("dayjs"));function K({data:e,...a}){const[r,m]=(0,o.useState)(1),{taskIdToTypeMapping:n}=(0,M.useCreditsContext)(),{brand:U}=(0,d.useHeadlessContext)(),b=S.ROUNDED_BRANDS.includes(U),L=(0,o.useMemo)(()=>({page:a.isOpen?r:0,pageSize:1e3}),[a.isOpen,r]),[u,E]=(0,o.useState)(i.CreditType.All),R=(0,o.useMemo)(()=>{const p=[{title:e.allTab,type:i.CreditType.All},{title:e.earnedTab,type:i.CreditType.Earned},{title:e.deductedTab,type:i.CreditType.Deducted}];return e.expiredTab&&p.push({title:e.expiredTab,type:i.CreditType.Expired}),p},[e]),{activities:N=[],canNext:h,isLoading:A}=(0,P.default)(L),v=(0,o.useMemo)(()=>{const p={[i.TaskSubType.Activation]:e.activationTask,[i.TaskSubType.UpdateName]:e.updateNameTask,[i.TaskSubType.UpdatePhone]:e.updatePhoneTask,[i.TaskSubType.UpdateBirthday]:e.updateBirthdayTask,[i.TaskSubType.Subscription]:e.subscriptionTask,[i.TaskSubType.UpadteAppName]:e.updateAppNameTask,[i.TaskSubType.Refund]:e.refundTask,[i.TaskSubType.ProductUnApproved]:e.productUnApprovedTask},x={[i.DTC_TASK_TYPE.FirstPurchase]:e.firstPurchaseTask,[i.DTC_TASK_TYPE.UploadReceipt]:e.uploadReceiptTask,[i.DTC_TASK_TYPE.Shopping]:e.shoppingTask};function w(t){return t.task_type===i.TaskType.Redeem&&t.task_sub_type===i.TaskSubType.ProductUnApproved&&e.productUnApprovedTask?t.task_name.replace("Refund",e.productUnApprovedTask):n?.[String(t.task_rule_id)]?x[n?.[String(t.task_rule_id)]]||t.task_name:p[t.task_sub_type]||t.task_name}let l=N.map(t=>({title:w(t),date:new Date(t.create_time*1e3),value:t.credit,type:t.credit_type,pending_time:t.pending_time,credit_type:t.credit_type,status:t.status}))||[];return u===i.CreditType.Earned?l=l?.filter(t=>t.type===1):u===i.CreditType.Deducted?l=l?.filter(t=>t.type===2&&t.status!==3):u===i.CreditType.Expired&&(l=l?.filter(t=>t.type===2&&t.status===3)),l.map(t=>{let{value:f,...B}=t;return t.type===i.CreditType.Deducted&&f>0&&(f=-f),{value:f,...B}})},[e.activationTask,e.updateNameTask,e.updatePhoneTask,e.updateBirthdayTask,e.subscriptionTask,e.updateAppNameTask,e.refundTask,e.productUnApprovedTask,e.firstPurchaseTask,e.uploadReceiptTask,e.shoppingTask,N,u,n]),Y=(0,o.useCallback)(()=>{h&&m(r+1)},[r,h]);return(0,s.jsxs)(C.CreditsModalContainer,{title:e.title,className:(0,d.classNames)("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"flex flex-col",...a,onScrollEnd:Y,children:[(0,s.jsx)("div",{className:"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto",children:(0,s.jsx)(c.Tabs,{align:"left",shape:b?"rounded":"square",value:u.toString(),onValueChange:p=>{E(Number(p))},className:"",children:(0,s.jsx)(c.TabsList,{children:R.map(p=>(0,s.jsx)(c.TabsTrigger,{value:p.type.toString(),children:p.title},p.type))})})}),(0,s.jsx)("div",{className:"flex-1 overflow-auto overscroll-contain",children:(0,s.jsxs)("div",{className:"grid gap-[18px] md:gap-[12px]",children:[A&&(0,s.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center",children:(0,s.jsx)(D.default,{})}),!A&&(0,s.jsx)(s.Fragment,{children:v.length>0?v.map((p,x)=>(0,s.jsxs)("div",{className:(0,d.classNames)("flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]",!b&&"rounded-none"),children:[(0,s.jsxs)("div",{className:"grid gap-[6px]",children:[(0,s.jsx)("div",{className:"font-bold",children:p.title}),(0,s.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,y.default)(p.date).format("YYYY-MM-DD HH:mm").toString()}),!e.pendingTips&&(0,s.jsxs)("div",{className:`hidden text-[14px] font-semibold text-[#777] ${p.status===2&&p.credit_type===1?"!flex":""}`,children:[(0,s.jsx)(T.Text,{html:e.pendingTips}),(0,s.jsx)("span",{children:y.default.unix(p.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&(0,s.jsx)(T.Text,{html:e.pendingTips2})]})]}),(0,s.jsxs)("div",{className:(0,d.classNames)("font-bold",p.value>=0||p.credit_type===i.CreditType.Expired?"text-[#52C41A]":"text-[#F84D4F]"),children:[p.value>=0&&"+",p.value]})]},x)):(0,s.jsxs)("div",{className:"flex flex-col items-center justify-center py-[40px]",children:[(0,s.jsx)(T.Picture,{className:"mb-[16px] h-[120px] w-[160px]",source:e?.emptyListImage?.url,alt:e?.emptyListImage?.alt||"empty list image"}),(0,s.jsx)("div",{className:"leading-1.4 text-[16px] font-semibold",children:e?.emptyListLabel})]})})]})}),v.length>0&&(0,s.jsx)("div",{className:"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]",children:e.tips})]})}var V=K;
2
2
  //# sourceMappingURL=ActivitiesModal.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../../src/components/credits/modal/ActivitiesModal.tsx"],
4
- "sourcesContent": ["import { useCallback, useMemo, useState } from 'react'\nimport { useCreditsContext } from '../context/provider'\nimport { CreditType, DTC_TASK_TYPE, TaskSubType, TaskType } from '../context/const'\nimport useActivities from '../context/hooks/useActivities'\nimport type { Task } from '../context/response'\nimport { CreditsModalContainer, type ModalContainerProps } from './ModalContainer'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport LoadingDots from './LoadingDots'\nimport { Picture, Text } from '@anker-in/headless-ui'\nimport { ROUNDED_BRANDS } from '../../../constants'\nimport dayjs from 'dayjs'\n\nexport interface MyActivitiesMetafields {\n title: string\n tips: string\n allTab: string\n earnedTab: string\n deductedTab: string\n expiredTab: string\n activationTask: string\n updateNameTask: string\n updatePhoneTask: string\n updateBirthdayTask: string\n updateAppNameTask: string\n subscriptionTask: string\n refundTask: string\n productUnApprovedTask: string\n pendingTips?: string\n pendingTips2?: string\n firstPurchaseTask: string\n uploadReceiptTask: string\n shoppingTask: string\n emptyListImage: {\n url: string\n alt?: string\n }\n emptyListLabel: string\n}\n\ninterface ActivitiesModalProps extends ModalContainerProps {\n data: MyActivitiesMetafields\n}\n\nfunction ActivitiesModal({ data, ...props }: ActivitiesModalProps) {\n const [page, setPage] = useState(1)\n const { taskIdToTypeMapping } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const myActivitiesOptions = useMemo(() => {\n return {\n page: props.isOpen ? page : 0,\n pageSize: 1000,\n }\n }, [props.isOpen, page])\n\n const [activeTab, setActiveTab] = useState(CreditType.All)\n const tabs = useMemo(() => {\n const tabs = [\n {\n title: data.allTab,\n type: CreditType.All,\n },\n {\n title: data.earnedTab,\n type: CreditType.Earned,\n },\n {\n title: data.deductedTab,\n type: CreditType.Deducted,\n },\n ]\n if (data.expiredTab) {\n tabs.push({\n title: data.expiredTab,\n type: CreditType.Expired,\n })\n }\n return tabs\n }, [data])\n\n const { activities = [], canNext, isLoading } = useActivities(myActivitiesOptions)\n\n const list = useMemo(() => {\n const taskNameMap = {\n [TaskSubType.Activation]: data.activationTask,\n [TaskSubType.UpdateName]: data.updateNameTask,\n [TaskSubType.UpdatePhone]: data.updatePhoneTask,\n [TaskSubType.UpdateBirthday]: data.updateBirthdayTask,\n [TaskSubType.Subscription]: data.subscriptionTask,\n [TaskSubType.UpadteAppName]: data.updateAppNameTask,\n [TaskSubType.Refund]: data.refundTask,\n [TaskSubType.ProductUnApproved]: data.productUnApprovedTask,\n }\n const dtcTaskTypeToNameMap = {\n [DTC_TASK_TYPE.FirstPurchase]: data.firstPurchaseTask,\n [DTC_TASK_TYPE.UploadReceipt]: data.uploadReceiptTask,\n [DTC_TASK_TYPE.Shopping]: data.shoppingTask,\n }\n\n function getTitle(item: Task) {\n if (\n item.task_type === TaskType.Redeem &&\n item.task_sub_type === TaskSubType.ProductUnApproved &&\n data.productUnApprovedTask\n ) {\n // \u65B0\u589E\u7684\u90E8\u5206\u4EFB\u52A1\u90FD\u4F7F\u7528\u4E86 alpc \u540C\u4E00\u4E2A\u4EFB\u52A1\u7C7B\u578B\uFF0C\u9700\u8981\u7528\u4EFB\u52A1 id \u6765\u533A\u5206\n return item.task_name.replace('Refund', data.productUnApprovedTask)\n } else if (taskIdToTypeMapping?.[String(item.task_rule_id)]) {\n return dtcTaskTypeToNameMap[taskIdToTypeMapping?.[String(item.task_rule_id)]]\n } else {\n return taskNameMap[item.task_sub_type] || item.task_name\n }\n }\n\n const all = activities.map(item => ({\n title: getTitle(item),\n date: new Date(item.create_time * 1000),\n value: item.credit,\n type: item.credit_type,\n pending_time: item.pending_time,\n credit_type: item.credit_type,\n status: item.status,\n }))\n\n let filtered = all || []\n if (activeTab === CreditType.Earned) {\n filtered = filtered?.filter(item => item.type === 1)\n } else if (activeTab === CreditType.Deducted) {\n filtered = filtered?.filter(item => item.type === 2 && item.status !== 3)\n } else if (activeTab === CreditType.Expired) {\n filtered = filtered?.filter(item => item.type === 2 && item.status === 3)\n }\n\n return filtered.map(item => {\n let { value, ...otherItem } = item\n if (item.type === CreditType.Deducted && value > 0) {\n value = -value\n }\n\n return {\n value,\n ...otherItem,\n }\n })\n }, [\n data.activationTask,\n data.updateNameTask,\n data.updatePhoneTask,\n data.updateBirthdayTask,\n data.subscriptionTask,\n data.updateAppNameTask,\n data.refundTask,\n data.productUnApprovedTask,\n data.firstPurchaseTask,\n data.uploadReceiptTask,\n data.shoppingTask,\n activities,\n activeTab,\n taskIdToTypeMapping,\n ])\n\n const handleScrollEnd = useCallback(() => {\n if (!canNext) {\n return\n }\n setPage(page + 1)\n }, [page, canNext])\n\n return (\n <CreditsModalContainer\n title={data.title}\n className={cn('h-[800px] w-[640px]')}\n useAnimation\n animationClassName=\"md:translate-y-[100vh]\"\n scrollClassName=\"\"\n {...props}\n onScrollEnd={handleScrollEnd}\n >\n <div className=\"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto\">\n <Tabs\n align=\"left\"\n shape={rounded ? 'rounded' : 'square'}\n value={activeTab.toString()}\n onValueChange={value => {\n setActiveTab(Number(value))\n }}\n className=\"\"\n >\n <TabsList>\n {tabs.map(tab => (\n <TabsTrigger key={tab.type} value={tab.type.toString()}>\n {tab.title}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n\n <div className=\"grid gap-[18px] overflow-auto overscroll-contain md:gap-[12px]\">\n {isLoading && (\n <div className=\"flex h-full flex-col items-center justify-center\">\n <LoadingDots />\n </div>\n )}\n\n {!isLoading && (\n <>\n {list.length > 0 ? (\n list.map((item, index) => (\n <div\n key={index}\n className={cn(\n 'flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]',\n !rounded && 'rounded-none'\n )}\n >\n <div className=\"grid gap-[6px]\">\n <div className=\"font-bold\">{item.title}</div>\n <div className=\"text-[14px] font-semibold text-[#999]\">\n {dayjs(item.date).format('YYYY-MM-DD HH:mm').toString()}\n </div>\n {!data.pendingTips && (\n <div\n className={`hidden text-[14px] font-semibold text-[#777] ${item.status === 2 && item.credit_type === 1 ? '!flex' : ''}`}\n >\n <Text html={data.pendingTips} />\n <span>{dayjs.unix(item.pending_time).add(1, 'day').format('YYYY-MM-DD')}</span>\n {data.pendingTips2 && <Text html={data.pendingTips2} />}\n </div>\n )}\n </div>\n <div\n className={cn(\n 'font-bold',\n item.value >= 0 || item.credit_type === CreditType.Expired ? 'text-[#52C41A]' : 'text-[#F84D4F]'\n )}\n >\n {item.value >= 0 && '+'}\n {item.value}\n </div>\n </div>\n ))\n ) : (\n <div className=\"flex h-full flex-col items-center justify-center\">\n <Picture\n className=\"mb-[16px] h-[120px] w-[160px]\"\n source={data?.emptyListImage?.url}\n alt={data?.emptyListImage?.alt || 'empty list image'}\n ></Picture>\n <div className=\"leading-1.4 text-[16px] font-semibold\">{data?.emptyListLabel}</div>\n </div>\n )}\n </>\n )}\n </div>\n {/* \u79EF\u5206\u5230\u8D26\u65F6\u95F4\u63D0\u9192 */}\n {list.length > 0 && <div className=\"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]\">{data.tips}</div>}\n </CreditsModalContainer>\n )\n}\n\nexport default ActivitiesModal\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { useCallback, useMemo, useState } from 'react'\nimport { useCreditsContext } from '../context/provider'\nimport { CreditType, DTC_TASK_TYPE, TaskSubType, TaskType } from '../context/const'\nimport useActivities from '../context/hooks/useActivities'\nimport type { Task } from '../context/response'\nimport { CreditsModalContainer, type ModalContainerProps } from './ModalContainer'\nimport { classNames as cn, useHeadlessContext } from '@anker-in/lib'\nimport { Tabs, TabsList, TabsTrigger } from '@anker-in/headless-ui'\nimport LoadingDots from './LoadingDots'\nimport { Picture, Text } from '@anker-in/headless-ui'\nimport { ROUNDED_BRANDS } from '../../../constants'\nimport dayjs from 'dayjs'\n\nexport interface MyActivitiesMetafields {\n title: string\n tips: string\n allTab: string\n earnedTab: string\n deductedTab: string\n expiredTab: string\n activationTask: string\n updateNameTask: string\n updatePhoneTask: string\n updateBirthdayTask: string\n updateAppNameTask: string\n subscriptionTask: string\n refundTask: string\n productUnApprovedTask: string\n pendingTips?: string\n pendingTips2?: string\n firstPurchaseTask: string\n uploadReceiptTask: string\n shoppingTask: string\n emptyListImage: {\n url: string\n alt?: string\n }\n emptyListLabel: string\n}\n\ninterface ActivitiesModalProps extends ModalContainerProps {\n data: MyActivitiesMetafields\n}\n\nfunction ActivitiesModal({ data, ...props }: ActivitiesModalProps) {\n const [page, setPage] = useState(1)\n const { taskIdToTypeMapping } = useCreditsContext()\n const { brand } = useHeadlessContext()\n const rounded = ROUNDED_BRANDS.includes(brand)\n\n const myActivitiesOptions = useMemo(() => {\n return {\n page: props.isOpen ? page : 0,\n pageSize: 1000,\n }\n }, [props.isOpen, page])\n\n const [activeTab, setActiveTab] = useState(CreditType.All)\n const tabs = useMemo(() => {\n const tabs = [\n {\n title: data.allTab,\n type: CreditType.All,\n },\n {\n title: data.earnedTab,\n type: CreditType.Earned,\n },\n {\n title: data.deductedTab,\n type: CreditType.Deducted,\n },\n ]\n if (data.expiredTab) {\n tabs.push({\n title: data.expiredTab,\n type: CreditType.Expired,\n })\n }\n return tabs\n }, [data])\n\n const { activities = [], canNext, isLoading } = useActivities(myActivitiesOptions)\n\n const list = useMemo(() => {\n const taskNameMap = {\n [TaskSubType.Activation]: data.activationTask,\n [TaskSubType.UpdateName]: data.updateNameTask,\n [TaskSubType.UpdatePhone]: data.updatePhoneTask,\n [TaskSubType.UpdateBirthday]: data.updateBirthdayTask,\n [TaskSubType.Subscription]: data.subscriptionTask,\n [TaskSubType.UpadteAppName]: data.updateAppNameTask,\n [TaskSubType.Refund]: data.refundTask,\n [TaskSubType.ProductUnApproved]: data.productUnApprovedTask,\n }\n const dtcTaskTypeToNameMap = {\n [DTC_TASK_TYPE.FirstPurchase]: data.firstPurchaseTask,\n [DTC_TASK_TYPE.UploadReceipt]: data.uploadReceiptTask,\n [DTC_TASK_TYPE.Shopping]: data.shoppingTask,\n }\n\n function getTitle(item: Task) {\n if (\n item.task_type === TaskType.Redeem &&\n item.task_sub_type === TaskSubType.ProductUnApproved &&\n data.productUnApprovedTask\n ) {\n // \u65B0\u589E\u7684\u90E8\u5206\u4EFB\u52A1\u90FD\u4F7F\u7528\u4E86 alpc \u540C\u4E00\u4E2A\u4EFB\u52A1\u7C7B\u578B\uFF0C\u9700\u8981\u7528\u4EFB\u52A1 id \u6765\u533A\u5206\n return item.task_name.replace('Refund', data.productUnApprovedTask)\n } else if (taskIdToTypeMapping?.[String(item.task_rule_id)]) {\n return dtcTaskTypeToNameMap[taskIdToTypeMapping?.[String(item.task_rule_id)]] || item.task_name\n } else {\n return taskNameMap[item.task_sub_type] || item.task_name\n }\n }\n\n const all = activities.map(item => ({\n title: getTitle(item),\n date: new Date(item.create_time * 1000),\n value: item.credit,\n type: item.credit_type,\n pending_time: item.pending_time,\n credit_type: item.credit_type,\n status: item.status,\n }))\n\n let filtered = all || []\n if (activeTab === CreditType.Earned) {\n filtered = filtered?.filter(item => item.type === 1)\n } else if (activeTab === CreditType.Deducted) {\n filtered = filtered?.filter(item => item.type === 2 && item.status !== 3)\n } else if (activeTab === CreditType.Expired) {\n filtered = filtered?.filter(item => item.type === 2 && item.status === 3)\n }\n\n return filtered.map(item => {\n let { value, ...otherItem } = item\n if (item.type === CreditType.Deducted && value > 0) {\n value = -value\n }\n\n return {\n value,\n ...otherItem,\n }\n })\n }, [\n data.activationTask,\n data.updateNameTask,\n data.updatePhoneTask,\n data.updateBirthdayTask,\n data.subscriptionTask,\n data.updateAppNameTask,\n data.refundTask,\n data.productUnApprovedTask,\n data.firstPurchaseTask,\n data.uploadReceiptTask,\n data.shoppingTask,\n activities,\n activeTab,\n taskIdToTypeMapping,\n ])\n\n const handleScrollEnd = useCallback(() => {\n if (!canNext) {\n return\n }\n setPage(page + 1)\n }, [page, canNext])\n\n return (\n <CreditsModalContainer\n title={data.title}\n className={cn('h-[800px] w-[640px]')}\n useAnimation\n animationClassName=\"md:translate-y-[100vh]\"\n scrollClassName=\"flex flex-col\"\n {...props}\n onScrollEnd={handleScrollEnd}\n >\n <div className=\"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto\">\n <Tabs\n align=\"left\"\n shape={rounded ? 'rounded' : 'square'}\n value={activeTab.toString()}\n onValueChange={value => {\n setActiveTab(Number(value))\n }}\n className=\"\"\n >\n <TabsList>\n {tabs.map(tab => (\n <TabsTrigger key={tab.type} value={tab.type.toString()}>\n {tab.title}\n </TabsTrigger>\n ))}\n </TabsList>\n </Tabs>\n </div>\n\n <div className=\"flex-1 overflow-auto overscroll-contain\">\n <div className=\"grid gap-[18px] md:gap-[12px]\">\n {isLoading && (\n <div className=\"flex flex-1 flex-col items-center justify-center\">\n <LoadingDots />\n </div>\n )}\n\n {!isLoading && (\n <>\n {list.length > 0 ? (\n list.map((item, index) => (\n <div\n key={index}\n className={cn(\n 'flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]',\n !rounded && 'rounded-none'\n )}\n >\n <div className=\"grid gap-[6px]\">\n <div className=\"font-bold\">{item.title}</div>\n <div className=\"text-[14px] font-semibold text-[#999]\">\n {dayjs(item.date).format('YYYY-MM-DD HH:mm').toString()}\n </div>\n {!data.pendingTips && (\n <div\n className={`hidden text-[14px] font-semibold text-[#777] ${item.status === 2 && item.credit_type === 1 ? '!flex' : ''}`}\n >\n <Text html={data.pendingTips} />\n <span>{dayjs.unix(item.pending_time).add(1, 'day').format('YYYY-MM-DD')}</span>\n {data.pendingTips2 && <Text html={data.pendingTips2} />}\n </div>\n )}\n </div>\n <div\n className={cn(\n 'font-bold',\n item.value >= 0 || item.credit_type === CreditType.Expired ? 'text-[#52C41A]' : 'text-[#F84D4F]'\n )}\n >\n {item.value >= 0 && '+'}\n {item.value}\n </div>\n </div>\n ))\n ) : (\n <div className=\"flex flex-col items-center justify-center py-[40px]\">\n <Picture\n className=\"mb-[16px] h-[120px] w-[160px]\"\n source={data?.emptyListImage?.url}\n alt={data?.emptyListImage?.alt || 'empty list image'}\n ></Picture>\n <div className=\"leading-1.4 text-[16px] font-semibold\">{data?.emptyListLabel}</div>\n </div>\n )}\n </>\n )}\n </div>\n </div>\n {/* \u79EF\u5206\u5230\u8D26\u65F6\u95F4\u63D0\u9192 */}\n {list.length > 0 && <div className=\"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]\">{data.tips}</div>}\n </CreditsModalContainer>\n )\n}\n\nexport default ActivitiesModal\n"],
5
+ "mappings": "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",
6
6
  "names": ["ActivitiesModal_exports", "__export", "ActivitiesModal_default", "__toCommonJS", "import_jsx_runtime", "import_react", "import_provider", "import_const", "import_useActivities", "import_ModalContainer", "import_lib", "import_headless_ui", "import_LoadingDots", "import_constants", "import_dayjs", "ActivitiesModal", "data", "props", "page", "setPage", "taskIdToTypeMapping", "brand", "rounded", "myActivitiesOptions", "activeTab", "setActiveTab", "tabs", "activities", "canNext", "isLoading", "useActivities", "list", "taskNameMap", "dtcTaskTypeToNameMap", "getTitle", "item", "filtered", "value", "otherItem", "handleScrollEnd", "cn", "tab", "LoadingDots", "index", "dayjs"]
7
7
  }
@@ -1,2 +1,2 @@
1
- "use strict";var H=Object.create;var u=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var B=(t,r)=>{for(var n in r)u(t,n,{get:r[n],enumerable:!0})},k=(t,r,n,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of $(r))!z.call(t,a)&&a!==n&&u(t,a,{get:()=>r[a],enumerable:!(d=O(r,a))||d.enumerable});return t};var c=(t,r,n)=>(n=t!=null?H(q(t)):{},k(r||!t||!t.__esModule?u(n,"default",{value:t,enumerable:!0}):n,t)),K=t=>k(u({},"__esModule",{value:!0}),t);var Q={};B(Q,{default:()=>J});module.exports=K(Q);var o=require("react/jsx-runtime"),p=require("@anker-in/headless-ui"),g=c(require("classnames")),N=c(require("copy-to-clipboard")),P=c(require("dayjs")),l=require("react"),e=require("../context/const"),R=require("./ModalContainer"),F=c(require("./Tip")),A=c(require("./LoadingDots")),w=c(require("../context/hooks/useMyRewards")),D=require("@anker-in/lib"),M=require("../../../constants");function V({data:t,...r}){const[n,d]=(0,l.useState)(e.AlpcConsumeType.Coupon),{brand:a}=(0,D.useHeadlessContext)(),b=M.ROUNDED_BRANDS.includes(a),[_,m]=(0,l.useState)(1),[h,v]=(0,l.useState)(-1),j=(0,l.useMemo)(()=>[{title:t.couponTab,type:e.AlpcConsumeType.Coupon},{title:t.productTab,type:e.AlpcConsumeType.Product},{title:t.externalProductTab,type:e.AlpcConsumeType.ExternalProduct}].filter(i=>!!i.title),[t.couponTab,t.productTab,t.externalProductTab]);(0,l.useEffect)(()=>{m(1)},[n]);const{myRewards:x=[],canNext:C,isLoading:y}=(0,w.default)({page:_,pageSize:1e3,consumeType:n}),G=(0,l.useCallback)(i=>i.fulfillment_status&&i.fulfillment_status!=="null"?i.fulfillment_status==="fulfilled"?e.RewardType.Fulfilled:e.RewardType.Unfulfilled:i.approval_status===e.ApprovalStatus.Success||i.approval_status===e.ApprovalStatus.DoubleConfirm?e.RewardType.ApproveSuccess:i.approval_status===e.ApprovalStatus.Failed?e.RewardType.Failed:e.RewardType.Pending,[]),S=(0,l.useCallback)(i=>{const s={0:e.RewardType.GogiftPending,1:e.RewardType.GogiftApproved,2:e.RewardType.GogiftSecondConfirm,3:e.RewardType.GogiftRejected,4:e.RewardType.GogiftCallbackPending,5:e.RewardType.GogiftCallbackSuccess,6:e.RewardType.GogiftCallbackTimeout};return i!==void 0?s[i]??e.RewardType.GogiftPending:e.RewardType.GogiftPending},[]),T=(0,l.useMemo)(()=>x.map(i=>{const s={title:i.goods_title,value:i.consume_credits,date:new Date(i.create_time*1e3)};return n===e.AlpcConsumeType.Coupon?{...s,type:e.RewardType.Received,couponCode:i.coupon_code,orderNumber:"",link:""}:n===e.AlpcConsumeType.Product?{...s,type:G(i),orderNumber:i.order_number,couponCode:"",link:""}:n===e.AlpcConsumeType.ExternalProduct?{...s,type:S(i.approval_status),orderNumber:"",couponCode:"",link:i.link||""}:{...s,type:e.RewardType.Received,couponCode:"",orderNumber:"",link:""}}),[n,x,G,S]),E=(0,l.useMemo)(()=>({[e.RewardType.Received]:t.receivedLabel,[e.RewardType.Pending]:t.pendingLabel,[e.RewardType.ApproveFail]:t.failedLabel,[e.RewardType.ApproveSuccess]:t.approveSuccessLabel,[e.RewardType.Unfulfilled]:t.unfulfilledLabel,[e.RewardType.Fulfilled]:t.fulfilledLabel,[e.RewardType.Failed]:t.failedLabel,[e.RewardType.GogiftPending]:t.goGiftStatus?.pending?.label||t.pendingLabel,[e.RewardType.GogiftApproved]:t.goGiftStatus?.approved?.label||t.approveSuccessLabel,[e.RewardType.GogiftSecondConfirm]:t.goGiftStatus?.secondConfirm?.label||t.approveSuccessLabel,[e.RewardType.GogiftRejected]:t.goGiftStatus?.rejected?.label||t.failedLabel,[e.RewardType.GogiftCallbackPending]:t.goGiftStatus?.callbackPending?.label||t.pendingLabel,[e.RewardType.GogiftCallbackSuccess]:t.goGiftStatus?.callbackSuccess?.label||t.receivedLabel,[e.RewardType.GogiftCallbackTimeout]:t.goGiftStatus?.callbackTimeout?.label||t.failedLabel}),[t]),L=(0,l.useMemo)(()=>({[e.RewardType.Received]:"",[e.RewardType.Pending]:t.pendingTip,[e.RewardType.ApproveFail]:"",[e.RewardType.ApproveSuccess]:t.confirmedTip,[e.RewardType.Unfulfilled]:t.processingTip,[e.RewardType.Fulfilled]:t.ShippedTip,[e.RewardType.Failed]:"",[e.RewardType.GogiftPending]:t.goGiftStatus?.pending?.tip||"",[e.RewardType.GogiftApproved]:t.goGiftStatus?.approved?.tip||"",[e.RewardType.GogiftSecondConfirm]:t.goGiftStatus?.secondConfirm?.tip||"",[e.RewardType.GogiftRejected]:t.goGiftStatus?.rejected?.tip||"",[e.RewardType.GogiftCallbackPending]:t.goGiftStatus?.callbackPending?.tip||"",[e.RewardType.GogiftCallbackSuccess]:t.goGiftStatus?.callbackSuccess?.tip||"",[e.RewardType.GogiftCallbackTimeout]:t.goGiftStatus?.callbackTimeout?.tip||""}),[t]),U=(0,l.useMemo)(()=>({[e.RewardType.Received]:"#52C41A",[e.RewardType.Pending]:"#999",[e.RewardType.ApproveFail]:"#F84D4F",[e.RewardType.ApproveSuccess]:"#999",[e.RewardType.Unfulfilled]:"#999",[e.RewardType.Fulfilled]:"#999",[e.RewardType.Failed]:"#F84D4F",[e.RewardType.GogiftPending]:"#999",[e.RewardType.GogiftApproved]:"#999",[e.RewardType.GogiftSecondConfirm]:"#999",[e.RewardType.GogiftRejected]:"#F84D4F",[e.RewardType.GogiftCallbackPending]:"#999",[e.RewardType.GogiftCallbackSuccess]:"#52C41A",[e.RewardType.GogiftCallbackTimeout]:"#F84D4F"}),[]),I=(0,l.useCallback)(()=>{C&&m(i=>i+1)},[C]),Y=(0,l.useCallback)((i,s)=>{v(s),(0,N.default)(i),setTimeout(()=>{v(-1)},2e3)},[]);return(0,o.jsxs)(R.CreditsModalContainer,{title:t.title,className:(0,g.default)("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"md:mb-0",...r,onScrollEnd:I,children:[(0,o.jsx)("div",{className:"",children:(0,o.jsx)(p.Tabs,{align:"left",shape:b?"rounded":"square",value:n.toString(),onValueChange:i=>{d(Number(i))},children:(0,o.jsx)(p.TabsList,{children:j.map(i=>(0,o.jsx)(p.TabsTrigger,{value:i.type.toString(),children:i.title},i.type))})})}),y&&(0,o.jsx)("div",{className:"flex h-full flex-col items-center justify-center",children:(0,o.jsx)(A.default,{})}),!y&&(0,o.jsx)("div",{className:"mt-[24px] overflow-auto overscroll-contain",children:T.length>0?(0,o.jsx)("div",{className:"grid gap-[18px] md:gap-[12px]",children:T.map((i,s)=>(0,o.jsxs)("div",{className:"grid gap-[8px]",children:[i?.orderNumber&&(0,o.jsxs)("div",{className:"text-[15px] font-semibold leading-[1.4] text-[#777]",children:[t.orderNumberLabel,": ",i.orderNumber]}),(0,o.jsxs)("div",{className:(0,g.default)("flex items-center justify-between rounded-[8px] bg-[#f7f8f9] px-[16px] py-[20px]",!b&&"rounded-none"),children:[(0,o.jsxs)("div",{className:"grid gap-[4px]",children:[(0,o.jsx)("div",{className:"text-[16px] font-bold leading-[1.4]",children:i.title}),(0,o.jsxs)("div",{className:"text-[14px] font-semibold text-[#999]",children:[t.valueLabel,": ",i.value," ",t?.pointUnit]}),(0,o.jsxs)("div",{className:"text-[14px] font-semibold text-[#999]",children:[i?.couponCode?`${t?.code||"Code"}: ${i.couponCode} `:"",i?.couponCode&&(0,o.jsx)("span",{className:"cursor-pointer text-[14px] font-semibold text-brand underline",onClick:()=>{Y(i.couponCode,s)},role:"button",tabIndex:0,onKeyDown:f=>{(f.key==="Enter"||f.key===" ")&&f.preventDefault()},children:h===s?t?.copied||"COPIED":t?.copy||"COPY"})]}),i?.link&&(0,o.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,o.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:"text-brand underline",children:t?.redeemLinkLabel||"Redeem Link"})})]}),(0,o.jsxs)("div",{className:"grid gap-[4px] text-right",children:[(0,o.jsxs)("div",{className:(0,g.default)("flex items-center justify-end text-[16px] font-bold leading-[1.4]",`text-[${U[i.type]}]`),children:[(0,o.jsx)("span",{children:E[i.type]}),L[i.type]&&(0,o.jsx)(F.default,{info:L[i.type],index:s})]}),(0,o.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,P.default)(i.date).format("YYYY-MM-DD HH:mm").toString()})]})]})]},s))}):(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center",children:[(0,o.jsx)(p.Picture,{className:"mb-[12px] w-[160px]",source:t?.emptyListImage?.url,alt:t?.emptyListImage?.alt||"empty list image"}),(0,o.jsx)("div",{className:"text-[16px] font-semibold leading-[1.4]",children:t?.emptyListLabel})]})})]})}var J=V;
1
+ "use strict";var H=Object.create;var u=Object.defineProperty;var O=Object.getOwnPropertyDescriptor;var $=Object.getOwnPropertyNames;var q=Object.getPrototypeOf,z=Object.prototype.hasOwnProperty;var B=(t,r)=>{for(var n in r)u(t,n,{get:r[n],enumerable:!0})},k=(t,r,n,d)=>{if(r&&typeof r=="object"||typeof r=="function")for(let a of $(r))!z.call(t,a)&&a!==n&&u(t,a,{get:()=>r[a],enumerable:!(d=O(r,a))||d.enumerable});return t};var c=(t,r,n)=>(n=t!=null?H(q(t)):{},k(r||!t||!t.__esModule?u(n,"default",{value:t,enumerable:!0}):n,t)),K=t=>k(u({},"__esModule",{value:!0}),t);var Q={};B(Q,{default:()=>J});module.exports=K(Q);var o=require("react/jsx-runtime"),p=require("@anker-in/headless-ui"),f=c(require("classnames")),N=c(require("copy-to-clipboard")),P=c(require("dayjs")),l=require("react"),e=require("../context/const"),R=require("./ModalContainer"),F=c(require("./Tip")),A=c(require("./LoadingDots")),w=c(require("../context/hooks/useMyRewards")),D=require("@anker-in/lib"),M=require("../../../constants");function V({data:t,...r}){const[n,d]=(0,l.useState)(e.AlpcConsumeType.Coupon),{brand:a}=(0,D.useHeadlessContext)(),b=M.ROUNDED_BRANDS.includes(a),[_,m]=(0,l.useState)(1),[h,v]=(0,l.useState)(-1),j=(0,l.useMemo)(()=>[{title:t.couponTab,type:e.AlpcConsumeType.Coupon},{title:t.productTab,type:e.AlpcConsumeType.Product},{title:t.externalProductTab,type:e.AlpcConsumeType.ExternalProduct}].filter(i=>!!i.title),[t.couponTab,t.productTab,t.externalProductTab]);(0,l.useEffect)(()=>{m(1)},[n]);const{myRewards:x=[],canNext:C,isLoading:y}=(0,w.default)({page:_,pageSize:1e3,consumeType:n}),G=(0,l.useCallback)(i=>i.fulfillment_status&&i.fulfillment_status!=="null"?i.fulfillment_status==="fulfilled"?e.RewardType.Fulfilled:e.RewardType.Unfulfilled:i.approval_status===e.ApprovalStatus.Success||i.approval_status===e.ApprovalStatus.DoubleConfirm?e.RewardType.ApproveSuccess:i.approval_status===e.ApprovalStatus.Failed?e.RewardType.Failed:e.RewardType.Pending,[]),S=(0,l.useCallback)(i=>{const s={0:e.RewardType.GogiftPending,1:e.RewardType.GogiftApproved,2:e.RewardType.GogiftSecondConfirm,3:e.RewardType.GogiftRejected,4:e.RewardType.GogiftCallbackPending,5:e.RewardType.GogiftCallbackSuccess,6:e.RewardType.GogiftCallbackTimeout};return i!==void 0?s[i]??e.RewardType.GogiftPending:e.RewardType.GogiftPending},[]),T=(0,l.useMemo)(()=>x.map(i=>{const s={title:i.goods_title,value:i.consume_credits,date:new Date(i.create_time*1e3)};return n===e.AlpcConsumeType.Coupon?{...s,type:e.RewardType.Received,couponCode:i.coupon_code,orderNumber:"",link:""}:n===e.AlpcConsumeType.Product?{...s,type:G(i),orderNumber:i.order_number,couponCode:"",link:""}:n===e.AlpcConsumeType.ExternalProduct?{...s,type:S(i.approval_status),orderNumber:"",couponCode:"",link:i.link||""}:{...s,type:e.RewardType.Received,couponCode:"",orderNumber:"",link:""}}),[n,x,G,S]),E=(0,l.useMemo)(()=>({[e.RewardType.Received]:t.receivedLabel,[e.RewardType.Pending]:t.pendingLabel,[e.RewardType.ApproveFail]:t.failedLabel,[e.RewardType.ApproveSuccess]:t.approveSuccessLabel,[e.RewardType.Unfulfilled]:t.unfulfilledLabel,[e.RewardType.Fulfilled]:t.fulfilledLabel,[e.RewardType.Failed]:t.failedLabel,[e.RewardType.GogiftPending]:t.goGiftStatus?.pending?.label||t.pendingLabel,[e.RewardType.GogiftApproved]:t.goGiftStatus?.approved?.label||t.approveSuccessLabel,[e.RewardType.GogiftSecondConfirm]:t.goGiftStatus?.secondConfirm?.label||t.approveSuccessLabel,[e.RewardType.GogiftRejected]:t.goGiftStatus?.rejected?.label||t.failedLabel,[e.RewardType.GogiftCallbackPending]:t.goGiftStatus?.callbackPending?.label||t.pendingLabel,[e.RewardType.GogiftCallbackSuccess]:t.goGiftStatus?.callbackSuccess?.label||t.receivedLabel,[e.RewardType.GogiftCallbackTimeout]:t.goGiftStatus?.callbackTimeout?.label||t.failedLabel}),[t]),L=(0,l.useMemo)(()=>({[e.RewardType.Received]:"",[e.RewardType.Pending]:t.pendingTip,[e.RewardType.ApproveFail]:"",[e.RewardType.ApproveSuccess]:t.confirmedTip,[e.RewardType.Unfulfilled]:t.processingTip,[e.RewardType.Fulfilled]:t.ShippedTip,[e.RewardType.Failed]:"",[e.RewardType.GogiftPending]:t.goGiftStatus?.pending?.tip||"",[e.RewardType.GogiftApproved]:t.goGiftStatus?.approved?.tip||"",[e.RewardType.GogiftSecondConfirm]:t.goGiftStatus?.secondConfirm?.tip||"",[e.RewardType.GogiftRejected]:t.goGiftStatus?.rejected?.tip||"",[e.RewardType.GogiftCallbackPending]:t.goGiftStatus?.callbackPending?.tip||"",[e.RewardType.GogiftCallbackSuccess]:t.goGiftStatus?.callbackSuccess?.tip||"",[e.RewardType.GogiftCallbackTimeout]:t.goGiftStatus?.callbackTimeout?.tip||""}),[t]),U=(0,l.useMemo)(()=>({[e.RewardType.Received]:"#52C41A",[e.RewardType.Pending]:"#999",[e.RewardType.ApproveFail]:"#F84D4F",[e.RewardType.ApproveSuccess]:"#999",[e.RewardType.Unfulfilled]:"#999",[e.RewardType.Fulfilled]:"#999",[e.RewardType.Failed]:"#F84D4F",[e.RewardType.GogiftPending]:"#999",[e.RewardType.GogiftApproved]:"#999",[e.RewardType.GogiftSecondConfirm]:"#999",[e.RewardType.GogiftRejected]:"#F84D4F",[e.RewardType.GogiftCallbackPending]:"#999",[e.RewardType.GogiftCallbackSuccess]:"#52C41A",[e.RewardType.GogiftCallbackTimeout]:"#F84D4F"}),[]),I=(0,l.useCallback)(()=>{C&&m(i=>i+1)},[C]),Y=(0,l.useCallback)((i,s)=>{v(s),(0,N.default)(i),setTimeout(()=>{v(-1)},2e3)},[]);return(0,o.jsxs)(R.CreditsModalContainer,{title:t.title,className:(0,f.default)("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"md:mb-0 flex flex-col",...r,onScrollEnd:I,children:[(0,o.jsx)("div",{className:"shrink-0",children:(0,o.jsx)(p.Tabs,{align:"left",shape:b?"rounded":"square",value:n.toString(),onValueChange:i=>{d(Number(i))},children:(0,o.jsx)(p.TabsList,{children:j.map(i=>(0,o.jsx)(p.TabsTrigger,{value:i.type.toString(),children:i.title},i.type))})})}),y&&(0,o.jsx)("div",{className:"flex flex-1 flex-col items-center justify-center",children:(0,o.jsx)(A.default,{})}),!y&&(0,o.jsx)("div",{className:"mt-[24px] flex-1 overflow-auto overscroll-contain pb-[24px] md:pb-[48px]",children:T.length>0?(0,o.jsx)("div",{className:"grid gap-[18px] md:gap-[12px]",children:T.map((i,s)=>(0,o.jsxs)("div",{className:"grid gap-[8px]",children:[i?.orderNumber&&(0,o.jsxs)("div",{className:"text-[15px] font-semibold leading-[1.4] text-[#777]",children:[t.orderNumberLabel,": ",i.orderNumber]}),(0,o.jsxs)("div",{className:(0,f.default)("flex items-center justify-between rounded-[8px] bg-[#f7f8f9] px-[16px] py-[20px]",!b&&"rounded-none"),children:[(0,o.jsxs)("div",{className:"grid gap-[4px]",children:[(0,o.jsx)("div",{className:"text-[16px] font-bold leading-[1.4]",children:i.title}),(0,o.jsxs)("div",{className:"text-[14px] font-semibold text-[#999]",children:[t.valueLabel,": ",i.value," ",t?.pointUnit]}),(0,o.jsxs)("div",{className:"text-[14px] font-semibold text-[#999]",children:[i?.couponCode?`${t?.code||"Code"}: ${i.couponCode} `:"",i?.couponCode&&(0,o.jsx)("span",{className:"cursor-pointer text-[14px] font-semibold text-brand underline",onClick:()=>{Y(i.couponCode,s)},role:"button",tabIndex:0,onKeyDown:g=>{(g.key==="Enter"||g.key===" ")&&g.preventDefault()},children:h===s?t?.copied||"COPIED":t?.copy||"COPY"})]}),i?.link&&(0,o.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,o.jsx)("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:"text-brand underline",children:t?.redeemLinkLabel||"Redeem Link"})})]}),(0,o.jsxs)("div",{className:"grid gap-[4px] text-right",children:[(0,o.jsxs)("div",{className:(0,f.default)("flex items-center justify-end text-[16px] font-bold leading-[1.4]",`text-[${U[i.type]}]`),children:[(0,o.jsx)("span",{children:E[i.type]}),L[i.type]&&(0,o.jsx)(F.default,{info:L[i.type],index:s})]}),(0,o.jsx)("div",{className:"text-[14px] font-semibold text-[#999]",children:(0,P.default)(i.date).format("YYYY-MM-DD HH:mm").toString()})]})]})]},s))}):(0,o.jsxs)("div",{className:"flex h-full flex-col items-center justify-center",children:[(0,o.jsx)(p.Picture,{className:"mb-[12px] w-[160px]",source:t?.emptyListImage?.url,alt:t?.emptyListImage?.alt||"empty list image"}),(0,o.jsx)("div",{className:"text-[16px] font-semibold leading-[1.4]",children:t?.emptyListLabel})]})})]})}var J=V;
2
2
  //# sourceMappingURL=RewardsModal.js.map