@anker-in/campaign-ui 0.4.5-beta.12 → 0.4.5-beta.13

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.
@@ -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 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 f=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)f(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&&f(e,n,{get:()=>a[n],enumerable:!(m=O(a,n))||m.enumerable});return e};var x=(e,a,r)=>(r=e!=null?I(F(e)):{},_(a||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,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"),s=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,...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)(s.CreditType.All),R=(0,o.useMemo)(()=>{const p=[{title:e.allTab,type:s.CreditType.All},{title:e.earnedTab,type:s.CreditType.Earned},{title:e.deductedTab,type:s.CreditType.Deducted}];return e.expiredTab&&p.push({title:e.expiredTab,type:s.CreditType.Expired}),p},[e]),{activities:h=[],canNext:N,isLoading:A}=(0,P.default)(L),v=(0,o.useMemo)(()=>{const p={[s.TaskSubType.Activation]:e.activationTask,[s.TaskSubType.UpdateName]:e.updateNameTask,[s.TaskSubType.UpdatePhone]:e.updatePhoneTask,[s.TaskSubType.UpdateBirthday]:e.updateBirthdayTask,[s.TaskSubType.Subscription]:e.subscriptionTask,[s.TaskSubType.UpadteAppName]:e.updateAppNameTask,[s.TaskSubType.Refund]:e.refundTask,[s.TaskSubType.ProductUnApproved]:e.productUnApprovedTask},k={[s.DTC_TASK_TYPE.FirstPurchase]:e.firstPurchaseTask,[s.DTC_TASK_TYPE.UploadReceipt]:e.uploadReceiptTask,[s.DTC_TASK_TYPE.Shopping]:e.shoppingTask};function w(t){return t.task_type===s.TaskType.Redeem&&t.task_sub_type===s.TaskSubType.ProductUnApproved&&e.productUnApprovedTask?t.task_name.replace("Refund",e.productUnApprovedTask):n?.[String(t.task_rule_id)]?k[n?.[String(t.task_rule_id)]]||t.task_name:p[t.task_sub_type]||t.task_name}let l=h.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===s.CreditType.Earned?l=l?.filter(t=>t.type===1):u===s.CreditType.Deducted?l=l?.filter(t=>t.type===2&&t.status!==3):u===s.CreditType.Expired&&(l=l?.filter(t=>t.type===2&&t.status===3)),l.map(t=>{let{value:g,...B}=t;return t.type===s.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(r+1)},[r,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:"",...a,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 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===s.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;
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=\"\"\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 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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",
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
- import{jsx as i,jsxs as B}from"react/jsx-runtime";import{Container as b,Heading as h}from"@anker-in/headless-ui";import{useMemo as y,useState as v}from"react";import N from"./RedeemableItem";import R from"../context/hooks/useRedeemableList";import D from"../modal/RulesModal";import{useProductsByHandles as I,useHeadlessContext as S}from"@anker-in/lib";import{classNames as c}from"@anker-in/lib";import{useCreditsContext as _}from"../context/provider";import{ROUNDED_BRANDS as k}from"../../../constants";const K=({copy:s,id:p})=>{const[a,d]=v(),{redeemableList:m}=R(),{pageCommon:u}=_(),{brand:f}=S(),C=k.includes(f),g=[],{data:o}=I({handles:s?.list?.map(e=>e.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:g}}),x=y(()=>o?.map(e=>{const r=(s.list||[]).find(n=>n.products?.[0]?.handle===e.handle),t=m.find(n=>n.id?.toString()===r?.redeemId?.toString()),l=e.variants?.find(n=>n.sku===r?.products?.[0]?.sku)||e.variants?.[0];return!t||!l?null:{product:e,productVariant:l,alpcData:{id:t?.id,consumeCredits:t?.consume_credits,remainingInventory:t?.remaining_inventory,isLimited:t?.is_limited,consumeType:t?.consume_type,title:t?.name,desc:t?.note},config:r}}).filter(Boolean),[o,s.list,m]);return B(b,{id:p,className:c("bg-[#F5F5F5]"),children:[i(h,{as:"h2",size:"4",html:s.title}),i("div",{className:"relative mt-[24px] grid grid-cols-4 gap-[16px] l:gap-[12px] md:grid-cols-2 md-xl:grid-cols-3",children:x?.map((e,r)=>i(N,{copy:s,itemData:e,setRules:d,currencyCode:o?.[0]?.price.currencyCode||"USD"},r))}),a&&i(D,{overlayClassName:"md:px-[16px] md:items-center",className:c("md:h-fit md:rounded-b-[16px]",!C&&"md:rounded-none"),isOpen:a.length>0,onClose:()=>d([]),titleClassName:"border-b-transparent h-[56px]",rules:a,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:u?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};export{K as CreditsCash};
1
+ import{jsx as o,jsxs as H}from"react/jsx-runtime";import{Container as y,Heading as v}from"@anker-in/headless-ui";import{useMemo as N,useState as R}from"react";import D from"./RedeemableItem";import I from"../context/hooks/useRedeemableList";import k from"../modal/RulesModal";import{useProductsByHandles as S,useHeadlessContext as _}from"@anker-in/lib";import{classNames as c}from"@anker-in/lib";import{useCreditsContext as B}from"../context/provider";import{ROUNDED_BRANDS as F}from"../../../constants";const W=({copy:s,id:p})=>{const[a,m]=R(),{redeemableList:l}=I(),{pageCommon:C}=B(),{brand:f}=_(),g=F.includes(f),x=[],{data:d}=S({handles:s?.list?.map(e=>e.products?.[0]?.handle)||[],metafieldIdentifiers:{variant:x}}),b=N(()=>(s?.list||[]).map(e=>{const i=e?.products?.[0]?.handle,h=e?.products?.[0]?.sku,t=l.find(r=>r.id?.toString()===e?.redeemId?.toString()),n=d?.find(r=>r.handle===i);if(!n)return null;const u=n.variants?.find(r=>r.sku===h)||n.variants?.[0];return!t||!u?null:{product:n,productVariant:u,alpcData:{id:t?.id,consumeCredits:t?.consume_credits,remainingInventory:t?.remaining_inventory,isLimited:t?.is_limited,consumeType:t?.consume_type,title:t?.name,desc:t?.note},config:e}}).filter(Boolean),[d,s.list,l]);return H(y,{id:p,className:c("bg-[#F5F5F5]"),children:[o(v,{as:"h2",size:"4",html:s.title}),o("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((e,i)=>o(D,{copy:s,itemData:e,setRules:m,currencyCode:d?.[0]?.price.currencyCode||"USD"},i))}),a&&o(k,{overlayClassName:"md:px-[16px] md:items-center",className:c("md:h-fit md:rounded-b-[16px]",!g&&"md:rounded-none"),isOpen:a.length>0,onClose:()=>m([]),titleClassName:"border-b-transparent h-[56px]",rules:a,scrollClassName:"md:mt-[8px] md:mb-[24px] md:pt-0",title:C?.ruleLabel,ruleClassName:"text-[#1d1d1f] font-bold"})]})};export{W as CreditsCash};
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": "AAwDI,OACE,OAAAA,EADF,QAAAC,MAAA,oBAxDJ,OAAS,aAAAC,EAAW,WAAAC,MAAqB,wBACzC,OAAS,WAAAC,EAAS,YAAAC,MAAgB,QAElC,OAAOC,MAAoB,mBAC3B,OAAOC,MAAuB,qCAC9B,OAAOC,MAAgB,sBACvB,OAAS,wBAAAC,EAAsB,sBAAAC,MAA0B,gBAEzD,OAAkB,cAAcC,MAAU,gBAC1C,OAAS,qBAAAC,MAAyB,sBAElC,OAAS,kBAAAC,MAAsB,qBAExB,MAAMC,EAAc,CAAC,CAAE,KAAAC,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,EAAIb,EAA4B,EAChD,CAAE,eAAAc,CAAe,EAAIZ,EAAkB,EACvC,CAAE,WAAAa,CAAW,EAAIR,EAAkB,EACnC,CAAE,MAAAS,CAAM,EAAIX,EAAmB,EAC/BY,EAAUT,EAAe,SAASQ,CAAK,EAEvCE,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,EAAIf,EAAqB,CACtD,QAASM,GAAM,MAAM,IAAIU,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,EAAOtB,EAAQ,IACZoB,GACH,IAAKG,GAAqB,CAC1B,MAAMC,GAAUb,EAAK,MAAQ,CAAC,GAAG,KAAKU,GAAQA,EAAK,WAAW,CAAC,GAAG,SAAWE,EAAQ,MAAM,EACrFE,EAAWV,EAAe,KAAKM,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,EAAkBT,EAAK,KAAMI,CAAc,CAAC,EAEhD,OACElB,EAACC,EAAA,CAAU,GAAIc,EAAI,UAAWL,EAAG,cAAc,EAC7C,UAAAX,EAACG,EAAA,CAAQ,GAAG,KAAK,KAAK,IAAI,KAAMY,EAAK,MAAO,EAE5Cf,EAAC,OAAI,UAAU,+FACZ,SAAA0B,GAAM,IAAI,CAACD,EAAMO,IAChBhC,EAACM,EAAA,CAEC,KAAMS,EACN,SAAUU,EACV,SAAUP,EACV,aAAcM,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDQ,CAKP,CACD,EACH,EAECf,GACCjB,EAACQ,EAAA,CACC,iBAAiB,+BACjB,UAAWG,EAAG,+BAAgC,CAACW,GAAW,iBAAiB,EAC3E,OAAQL,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOG,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
- "names": ["jsx", "jsxs", "Container", "Heading", "useMemo", "useState", "RedeemableItem", "useRedeemableList", "RulesModal", "useProductsByHandles", "useHeadlessContext", "cn", "useCreditsContext", "ROUNDED_BRANDS", "CreditsCash", "copy", "id", "rules", "setRules", "redeemableList", "pageCommon", "brand", "rounded", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "product", "config", "alpcData", "productVariant", "variant", "index"]
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": "AA+DI,OACE,OAAAA,EADF,QAAAC,MAAA,oBA/DJ,OAAS,aAAAC,EAAW,WAAAC,MAAqB,wBACzC,OAAS,WAAAC,EAAS,YAAAC,MAAgB,QAElC,OAAOC,MAAoB,mBAC3B,OAAOC,MAAuB,qCAC9B,OAAOC,MAAgB,sBACvB,OAAS,wBAAAC,EAAsB,sBAAAC,MAA0B,gBAEzD,OAAkB,cAAcC,MAAU,gBAC1C,OAAS,qBAAAC,MAAyB,sBAElC,OAAS,kBAAAC,MAAsB,qBAExB,MAAMC,EAAc,CAAC,CAAE,KAAAC,EAAM,GAAAC,CAAG,IAA8C,CACnF,KAAM,CAACC,EAAOC,CAAQ,EAAIb,EAA4B,EAChD,CAAE,eAAAc,CAAe,EAAIZ,EAAkB,EACvC,CAAE,WAAAa,CAAW,EAAIR,EAAkB,EACnC,CAAE,MAAAS,CAAM,EAAIX,EAAmB,EAC/BY,EAAUT,EAAe,SAASQ,CAAK,EAEvCE,EAAqC,CAAC,EAEtC,CAAE,KAAMC,CAAiB,EAAIf,EAAqB,CACtD,QAASM,GAAM,MAAM,IAAIU,GAAQA,EAAK,WAAW,CAAC,GAAG,MAAM,GAAK,CAAC,EACjE,qBAAsB,CACpB,QAASF,CACX,CACF,CAAC,EAEKG,EAAOtB,EAAQ,KACXW,GAAM,MAAQ,CAAC,GACpB,IAAIY,GAAU,CACb,MAAMC,EAASD,GAAQ,WAAW,CAAC,GAAG,OAChCE,EAAMF,GAAQ,WAAW,CAAC,GAAG,IAC7BG,EAAWX,EAAe,KAAKM,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,EAAkBT,EAAK,KAAMI,CAAc,CAAC,EAEhD,OACElB,EAACC,EAAA,CAAU,GAAIc,EAAI,UAAWL,EAAG,cAAc,EAC7C,UAAAX,EAACG,EAAA,CAAQ,GAAG,KAAK,KAAK,IAAI,KAAMY,EAAK,MAAO,EAE5Cf,EAAC,OAAI,UAAU,+FACZ,SAAA0B,GAAM,IAAI,CAACD,EAAMU,IAChBnC,EAACM,EAAA,CAEC,KAAMS,EACN,SAAUU,EACV,SAAUP,EACV,aAAcM,IAAmB,CAAC,GAAG,MAAM,cAAgB,OAJtDW,CAKP,CACD,EACH,EAEClB,GACCjB,EAACQ,EAAA,CACC,iBAAiB,+BACjB,UAAWG,EAAG,+BAAgC,CAACW,GAAW,iBAAiB,EAC3E,OAAQL,EAAM,OAAS,EACvB,QAAS,IAAMC,EAAS,CAAC,CAAC,EAC1B,eAAe,gCACf,MAAOD,EACP,gBAAgB,mCAChB,MAAOG,GAAY,UACnB,cAAc,2BAChB,GAEJ,CAEJ",
6
+ "names": ["jsx", "jsxs", "Container", "Heading", "useMemo", "useState", "RedeemableItem", "useRedeemableList", "RulesModal", "useProductsByHandles", "useHeadlessContext", "cn", "useCreditsContext", "ROUNDED_BRANDS", "CreditsCash", "copy", "id", "rules", "setRules", "redeemableList", "pageCommon", "brand", "rounded", "variantMetafieldIdentifiers", "productByHandles", "item", "list", "config", "handle", "sku", "alpcData", "product", "p", "productVariant", "variant", "index"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{Fragment as V,jsx as i,jsxs as n}from"react/jsx-runtime";import{useCallback as E,useMemo as g,useState as h}from"react";import{useCreditsContext as R}from"../context/provider";import{CreditType as p,DTC_TASK_TYPE as f,TaskSubType as r,TaskType as Y}from"../context/const";import w from"../context/hooks/useActivities";import{CreditsModalContainer as B}from"./ModalContainer";import{classNames as v,useHeadlessContext as I}from"@anker-in/lib";import{Tabs as O,TabsList as j,TabsTrigger as F}from"@anker-in/headless-ui";import H from"./LoadingDots";import{Picture as z,Text as N}from"@anker-in/headless-ui";import{ROUNDED_BRANDS as q}from"../../../constants";import A from"dayjs";function K({data:e,...c}){const[l,_]=h(1),{taskIdToTypeMapping:u}=R(),{brand:M}=I(),k=q.includes(M),P=g(()=>({page:c.isOpen?l:0,pageSize:1e3}),[c.isOpen,l]),[o,C]=h(p.All),D=g(()=>{const s=[{title:e.allTab,type:p.All},{title:e.earnedTab,type:p.Earned},{title:e.deductedTab,type:p.Deducted}];return e.expiredTab&&s.push({title:e.expiredTab,type:p.Expired}),s},[e]),{activities:x=[],canNext:y,isLoading:b}=w(P),T=g(()=>{const s={[r.Activation]:e.activationTask,[r.UpdateName]:e.updateNameTask,[r.UpdatePhone]:e.updatePhoneTask,[r.UpdateBirthday]:e.updateBirthdayTask,[r.Subscription]:e.subscriptionTask,[r.UpadteAppName]:e.updateAppNameTask,[r.Refund]:e.refundTask,[r.ProductUnApproved]:e.productUnApprovedTask},m={[f.FirstPurchase]:e.firstPurchaseTask,[f.UploadReceipt]:e.uploadReceiptTask,[f.Shopping]:e.shoppingTask};function U(t){return t.task_type===Y.Redeem&&t.task_sub_type===r.ProductUnApproved&&e.productUnApprovedTask?t.task_name.replace("Refund",e.productUnApprovedTask):u?.[String(t.task_rule_id)]?m[u?.[String(t.task_rule_id)]]:s[t.task_sub_type]||t.task_name}let a=x.map(t=>({title:U(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 o===p.Earned?a=a?.filter(t=>t.type===1):o===p.Deducted?a=a?.filter(t=>t.type===2&&t.status!==3):o===p.Expired&&(a=a?.filter(t=>t.type===2&&t.status===3)),a.map(t=>{let{value:d,...L}=t;return t.type===p.Deducted&&d>0&&(d=-d),{value:d,...L}})},[e.activationTask,e.updateNameTask,e.updatePhoneTask,e.updateBirthdayTask,e.subscriptionTask,e.updateAppNameTask,e.refundTask,e.productUnApprovedTask,e.firstPurchaseTask,e.uploadReceiptTask,e.shoppingTask,x,o,u]),S=E(()=>{y&&_(l+1)},[l,y]);return n(B,{title:e.title,className:v("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"",...c,onScrollEnd:S,children:[i("div",{className:"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto",children:i(O,{align:"left",shape:k?"rounded":"square",value:o.toString(),onValueChange:s=>{C(Number(s))},className:"",children:i(j,{children:D.map(s=>i(F,{value:s.type.toString(),children:s.title},s.type))})})}),n("div",{className:"grid gap-[18px] overflow-auto overscroll-contain md:gap-[12px]",children:[b&&i("div",{className:"flex h-full flex-col items-center justify-center",children:i(H,{})}),!b&&i(V,{children:T.length>0?T.map((s,m)=>n("div",{className:v("flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]",!k&&"rounded-none"),children:[n("div",{className:"grid gap-[6px]",children:[i("div",{className:"font-bold",children:s.title}),i("div",{className:"text-[14px] font-semibold text-[#999]",children:A(s.date).format("YYYY-MM-DD HH:mm").toString()}),!e.pendingTips&&n("div",{className:`hidden text-[14px] font-semibold text-[#777] ${s.status===2&&s.credit_type===1?"!flex":""}`,children:[i(N,{html:e.pendingTips}),i("span",{children:A.unix(s.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&i(N,{html:e.pendingTips2})]})]}),n("div",{className:v("font-bold",s.value>=0||s.credit_type===p.Expired?"text-[#52C41A]":"text-[#F84D4F]"),children:[s.value>=0&&"+",s.value]})]},m)):n("div",{className:"flex h-full flex-col items-center justify-center",children:[i(z,{className:"mb-[16px] h-[120px] w-[160px]",source:e?.emptyListImage?.url,alt:e?.emptyListImage?.alt||"empty list image"}),i("div",{className:"leading-1.4 text-[16px] font-semibold",children:e?.emptyListLabel})]})})]}),T.length>0&&i("div",{className:"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]",children:e.tips})]})}var re=K;export{re as default};
1
+ import{Fragment as V,jsx as i,jsxs as n}from"react/jsx-runtime";import{useCallback as E,useMemo as g,useState as h}from"react";import{useCreditsContext as R}from"../context/provider";import{CreditType as p,DTC_TASK_TYPE as f,TaskSubType as a,TaskType as Y}from"../context/const";import w from"../context/hooks/useActivities";import{CreditsModalContainer as B}from"./ModalContainer";import{classNames as v,useHeadlessContext as I}from"@anker-in/lib";import{Tabs as O,TabsList as j,TabsTrigger as F}from"@anker-in/headless-ui";import H from"./LoadingDots";import{Picture as z,Text as N}from"@anker-in/headless-ui";import{ROUNDED_BRANDS as q}from"../../../constants";import A from"dayjs";function K({data:e,...c}){const[l,_]=h(1),{taskIdToTypeMapping:u}=R(),{brand:M}=I(),k=q.includes(M),P=g(()=>({page:c.isOpen?l:0,pageSize:1e3}),[c.isOpen,l]),[o,C]=h(p.All),D=g(()=>{const s=[{title:e.allTab,type:p.All},{title:e.earnedTab,type:p.Earned},{title:e.deductedTab,type:p.Deducted}];return e.expiredTab&&s.push({title:e.expiredTab,type:p.Expired}),s},[e]),{activities:x=[],canNext:y,isLoading:b}=w(P),T=g(()=>{const s={[a.Activation]:e.activationTask,[a.UpdateName]:e.updateNameTask,[a.UpdatePhone]:e.updatePhoneTask,[a.UpdateBirthday]:e.updateBirthdayTask,[a.Subscription]:e.subscriptionTask,[a.UpadteAppName]:e.updateAppNameTask,[a.Refund]:e.refundTask,[a.ProductUnApproved]:e.productUnApprovedTask},m={[f.FirstPurchase]:e.firstPurchaseTask,[f.UploadReceipt]:e.uploadReceiptTask,[f.Shopping]:e.shoppingTask};function U(t){return t.task_type===Y.Redeem&&t.task_sub_type===a.ProductUnApproved&&e.productUnApprovedTask?t.task_name.replace("Refund",e.productUnApprovedTask):u?.[String(t.task_rule_id)]?m[u?.[String(t.task_rule_id)]]||t.task_name:s[t.task_sub_type]||t.task_name}let r=x.map(t=>({title:U(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 o===p.Earned?r=r?.filter(t=>t.type===1):o===p.Deducted?r=r?.filter(t=>t.type===2&&t.status!==3):o===p.Expired&&(r=r?.filter(t=>t.type===2&&t.status===3)),r.map(t=>{let{value:d,...L}=t;return t.type===p.Deducted&&d>0&&(d=-d),{value:d,...L}})},[e.activationTask,e.updateNameTask,e.updatePhoneTask,e.updateBirthdayTask,e.subscriptionTask,e.updateAppNameTask,e.refundTask,e.productUnApprovedTask,e.firstPurchaseTask,e.uploadReceiptTask,e.shoppingTask,x,o,u]),S=E(()=>{y&&_(l+1)},[l,y]);return n(B,{title:e.title,className:v("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"",...c,onScrollEnd:S,children:[i("div",{className:"w-full sticky top-0 bg-white z-10 pb-[24px] overflow-x-auto",children:i(O,{align:"left",shape:k?"rounded":"square",value:o.toString(),onValueChange:s=>{C(Number(s))},className:"",children:i(j,{children:D.map(s=>i(F,{value:s.type.toString(),children:s.title},s.type))})})}),n("div",{className:"grid gap-[18px] overflow-auto md:gap-[12px]",children:[b&&i("div",{className:"flex h-full flex-col items-center justify-center",children:i(H,{})}),!b&&i(V,{children:T.length>0?T.map((s,m)=>n("div",{className:v("flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]",!k&&"rounded-none"),children:[n("div",{className:"grid gap-[6px]",children:[i("div",{className:"font-bold",children:s.title}),i("div",{className:"text-[14px] font-semibold text-[#999]",children:A(s.date).format("YYYY-MM-DD HH:mm").toString()}),!e.pendingTips&&n("div",{className:`hidden text-[14px] font-semibold text-[#777] ${s.status===2&&s.credit_type===1?"!flex":""}`,children:[i(N,{html:e.pendingTips}),i("span",{children:A.unix(s.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&i(N,{html:e.pendingTips2})]})]}),n("div",{className:v("font-bold",s.value>=0||s.credit_type===p.Expired?"text-[#52C41A]":"text-[#F84D4F]"),children:[s.value>=0&&"+",s.value]})]},m)):n("div",{className:"flex h-full flex-col items-center justify-center",children:[i(z,{className:"mb-[16px] h-[120px] w-[160px]",source:e?.emptyListImage?.url,alt:e?.emptyListImage?.alt||"empty list image"}),i("div",{className:"leading-1.4 text-[16px] font-semibold",children:e?.emptyListLabel})]})})]}),T.length>0&&i("div",{className:"mt-[12px] pb-[24px] text-[14px] font-semibold text-[#999]",children:e.tips})]})}var ae=K;export{ae as default};
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=\"\"\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 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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",
6
6
  "names": ["Fragment", "jsx", "jsxs", "useCallback", "useMemo", "useState", "useCreditsContext", "CreditType", "DTC_TASK_TYPE", "TaskSubType", "TaskType", "useActivities", "CreditsModalContainer", "cn", "useHeadlessContext", "Tabs", "TabsList", "TabsTrigger", "LoadingDots", "Picture", "Text", "ROUNDED_BRANDS", "dayjs", "ActivitiesModal", "data", "props", "page", "setPage", "taskIdToTypeMapping", "brand", "rounded", "myActivitiesOptions", "activeTab", "setActiveTab", "tabs", "activities", "canNext", "isLoading", "list", "taskNameMap", "dtcTaskTypeToNameMap", "getTitle", "item", "filtered", "value", "otherItem", "handleScrollEnd", "tab", "index", "ActivitiesModal_default"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@anker-in/campaign-ui",
3
- "version": "0.4.5-beta.12",
3
+ "version": "0.4.5-beta.13",
4
4
  "description": "Campaign UI components and utilities for Anker projects",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",
@@ -28,13 +28,20 @@ export const CreditsCash = ({ copy, id }: { copy: CreditsCashCopy; id?: string }
28
28
  })
29
29
 
30
30
  const list = useMemo(() => {
31
- return productByHandles
32
- ?.map((product: Product) => {
33
- const config = (copy.list || []).find(item => item.products?.[0]?.handle === product.handle)
31
+ return (copy?.list || [])
32
+ .map(config => {
33
+ const handle = config?.products?.[0]?.handle
34
+ const sku = config?.products?.[0]?.sku
34
35
  const alpcData = redeemableList.find(item => item.id?.toString() === config?.redeemId?.toString())
35
- const productVariant =
36
- product.variants?.find((variant: any) => variant.sku === config?.products?.[0]?.sku) || product.variants?.[0]
36
+
37
+ // productByHandles 中找到对应 handle product
38
+ const product = productByHandles?.find((p: Product) => p.handle === handle)
39
+ if (!product) return null
40
+
41
+ // 在 product 的 variants 中找到对应 sku 的 variant
42
+ const productVariant = product.variants?.find((variant: any) => variant.sku === sku) || product.variants?.[0]
37
43
  if (!alpcData || !productVariant) return null
44
+
38
45
  return {
39
46
  product,
40
47
  productVariant,
@@ -108,7 +108,7 @@ function ActivitiesModal({ data, ...props }: ActivitiesModalProps) {
108
108
  // 新增的部分任务都使用了 alpc 同一个任务类型,需要用任务 id 来区分
109
109
  return item.task_name.replace('Refund', data.productUnApprovedTask)
110
110
  } else if (taskIdToTypeMapping?.[String(item.task_rule_id)]) {
111
- return dtcTaskTypeToNameMap[taskIdToTypeMapping?.[String(item.task_rule_id)]]
111
+ return dtcTaskTypeToNameMap[taskIdToTypeMapping?.[String(item.task_rule_id)]] || item.task_name
112
112
  } else {
113
113
  return taskNameMap[item.task_sub_type] || item.task_name
114
114
  }
@@ -198,7 +198,7 @@ function ActivitiesModal({ data, ...props }: ActivitiesModalProps) {
198
198
  </Tabs>
199
199
  </div>
200
200
 
201
- <div className="grid gap-[18px] overflow-auto overscroll-contain md:gap-[12px]">
201
+ <div className="grid gap-[18px] overflow-auto md:gap-[12px]">
202
202
  {isLoading && (
203
203
  <div className="flex h-full flex-col items-center justify-center">
204
204
  <LoadingDots />