@anker-in/campaign-ui 0.4.5-beta.16 → 0.4.5-beta.17

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 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),x=(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},v={[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)]?v[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",children:(0,s.jsxs)("div",{className:"grid gap-[18px] pb-[24px] md:gap-[12px] md:pb-[48px]",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:x.length>0?x.map((p,v)=>(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]})]},v)):(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})]})})]})}),x.length>0&&(0,s.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)]] || 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\">\n <div className=\"grid gap-[18px] pb-[24px] md:gap-[12px] md:pb-[48px]\">\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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",
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
- import{Fragment as V,jsx as i,jsxs as n}from"react/jsx-runtime";import{useCallback as E,useMemo as f,useState as N}from"react";import{useCreditsContext as R}from"../context/provider";import{CreditType as p,DTC_TASK_TYPE as g,TaskSubType as a,TaskType as Y}from"../context/const";import w from"../context/hooks/useActivities";import{CreditsModalContainer as B}from"./ModalContainer";import{classNames as x,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 h}from"@anker-in/headless-ui";import{ROUNDED_BRANDS as q}from"../../../constants";import A from"dayjs";function K({data:e,...c}){const[l,_]=N(1),{taskIdToTypeMapping:u}=R(),{brand:M}=I(),v=q.includes(M),P=f(()=>({page:c.isOpen?l:0,pageSize:1e3}),[c.isOpen,l]),[o,C]=N(p.All),D=f(()=>{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:k=[],canNext:y,isLoading:b}=w(P),T=f(()=>{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={[g.FirstPurchase]:e.firstPurchaseTask,[g.UploadReceipt]:e.uploadReceiptTask,[g.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=k.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,k,o,u]),S=E(()=>{y&&_(l+1)},[l,y]);return n(B,{title:e.title,className:x("h-[800px] w-[640px]"),useAnimation:!0,animationClassName:"md:translate-y-[100vh]",scrollClassName:"flex flex-col",...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:v?"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))})})}),i("div",{className:"flex-1 overflow-auto",children:n("div",{className:"grid gap-[18px] pb-[24px] md:gap-[12px] md:pb-[48px]",children:[b&&i("div",{className:"flex flex-1 flex-col items-center justify-center",children:i(H,{})}),!b&&i(V,{children:T.length>0?T.map((s,m)=>n("div",{className:x("flex h-fit items-center justify-between rounded-[8px] bg-[#f2f0f1] px-[16px] py-[20px] text-[16px]",!v&&"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(h,{html:e.pendingTips}),i("span",{children:A.unix(s.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&i(h,{html:e.pendingTips2})]})]}),n("div",{className:x("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 flex-col items-center justify-center py-[40px]",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};
1
+ import{Fragment as V,jsx as i,jsxs as n}from"react/jsx-runtime";import{useCallback as E,useMemo as f,useState as N}from"react";import{useCreditsContext as R}from"../context/provider";import{CreditType as p,DTC_TASK_TYPE as g,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 h}from"@anker-in/headless-ui";import{ROUNDED_BRANDS as q}from"../../../constants";import A from"dayjs";function K({data:e,...c}){const[l,_]=N(1),{taskIdToTypeMapping:u}=R(),{brand:M}=I(),x=q.includes(M),P=f(()=>({page:c.isOpen?l:0,pageSize:1e3}),[c.isOpen,l]),[o,C]=N(p.All),D=f(()=>{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:k=[],canNext:y,isLoading:b}=w(P),T=f(()=>{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={[g.FirstPurchase]:e.firstPurchaseTask,[g.UploadReceipt]:e.uploadReceiptTask,[g.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=k.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,k,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:"flex flex-col",...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:x?"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))})})}),i("div",{className:"flex-1 overflow-auto overscroll-contain",children:n("div",{className:"grid gap-[18px] md:gap-[12px]",children:[b&&i("div",{className:"flex flex-1 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]",!x&&"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(h,{html:e.pendingTips}),i("span",{children:A.unix(s.pending_time).add(1,"day").format("YYYY-MM-DD")}),e.pendingTips2&&i(h,{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 flex-col items-center justify-center py-[40px]",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)]] || 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\">\n <div className=\"grid gap-[18px] pb-[24px] md:gap-[12px] md:pb-[48px]\">\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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",
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": ["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.16",
3
+ "version": "0.4.5-beta.17",
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",
@@ -198,8 +198,8 @@ function ActivitiesModal({ data, ...props }: ActivitiesModalProps) {
198
198
  </Tabs>
199
199
  </div>
200
200
 
201
- <div className="flex-1 overflow-auto">
202
- <div className="grid gap-[18px] pb-[24px] md:gap-[12px] md:pb-[48px]">
201
+ <div className="flex-1 overflow-auto overscroll-contain">
202
+ <div className="grid gap-[18px] md:gap-[12px]">
203
203
  {isLoading && (
204
204
  <div className="flex flex-1 flex-col items-center justify-center">
205
205
  <LoadingDots />