全新popiart网站 react项目重构
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

2 lines
9.1 KiB

import{j as o}from"./markdown-vendor-BZI_VWzW.js";import{u as le,r as i}from"./data-vendor-BOGugMqL.js";import{g as ue}from"./react-vendor-CmPQC3tV.js";import{M as W,h as X,I as de,o as ee,J as me,m as fe}from"./index-BxSU1Bs1.js";import{M as ge}from"./arco-vendor-gN7EHfgO.js";const v=20,pe=3e3,ye=120,te="myCreations:taskCreated",re=[{title:"all",type:0},{title:"image",type:1},{title:"video",type:2},{title:"template",type:4}];function V(u){if(u==null||u==="")return 0;if(typeof u=="number")return u<1e11?u*1e3:u;const a=Date.parse(String(u));return Number.isNaN(a)?0:a}function M(u){const a=u?.id??u?.taskId;return a==null||a===""?"":String(a)}function j(u){return u?.data?.list??[]}function A(u,a){const p={...u};return a===0&&delete p.type,a===1&&(p.subType="102,103,107,108"),a===0&&(p.subType="102,103,107,108,202,203,204,205"),a===4?(delete p.type,me(p)):fe(p)}function _e(u){let a=u?.parentElement??null;for(;a!=null;){const C=window.getComputedStyle(a).overflowY;if((C==="auto"||C==="scroll")&&a.scrollHeight>a.clientHeight)return a;a=a.parentElement}return null}function ve({tabIdPrefix:u}){const{t:a}=le(),[p,C]=ue(),D=p.get(W),[l,q]=i.useState(0),[L,h]=i.useState([]),[k,F]=i.useState(1),[T,S]=i.useState(!0),[N,B]=i.useState(!1),[Y,G]=i.useState(!1),[O,$]=i.useState(null),K=i.useRef(null),H=i.useRef(!1),g=i.useRef(!1),m=i.useRef(0),w=i.useRef(0),z=i.useRef(new Set),Z=i.useRef(a);Z.current=a;const J=i.useRef(async()=>{}),se=X(Date.now(),"YYYY-MM-DD"),U=i.useMemo(()=>{const e=L.filter(t=>{const s=Number(t?.type);return Number.isFinite(s)&&s<=0?!1:t.status==0||t.status==1?Number(t.batchSize||0)>0:t.status!=2||!Array.isArray(t.resultList)||t.resultList.length===0?!1:l===2?t.resultList.some(n=>n?.video):l===0?t.resultList.some(n=>n?.video||n?.images?.[0]):l===4?t.type==1?t.resultList.some(n=>n?.images?.[0]):t.type==2?t.resultList.some(n=>n?.video):t.resultList.some(n=>n?.images?.[0]||n?.video):t.resultList.some(n=>n?.images?.[0])}).sort((t,s)=>V(s?.createTime)-V(t?.createTime)),r=new Map;for(const t of e){const s=V(t?.createTime),n=s>0?X(s,"YYYY-MM-DD"):"unknown";r.has(n)||r.set(n,[]),r.get(n).push(t)}return[...r.entries()].map(([t,s])=>({dateKey:t,taskList:s}))},[L,l]),R=i.useMemo(()=>{const e=new Set;for(const r of L){const t=Number(r?.type??r?.taskType);if(Number.isFinite(t)&&t<=0)continue;const s=M(r);s&&(r.status==0||r.status==1)&&e.add(s)}return[...e].sort().join(",")},[L]),Q=i.useRef(R);Q.current=R;const E=i.useRef(l);E.current=l,i.useEffect(()=>(g.current=!0,()=>{g.current=!1}),[]),i.useEffect(()=>{const e=r=>{const t=r.detail,s=Number(t?.type);if(!Number.isFinite(s)||s!==E.current)return;const n=m.current;A({type:s,page:1,pageSize:v,status_min:0},s).then(d=>{if(!g.current||m.current!==n)return;const c=j(d);h(c),F(1),S(c.length>=v),$(null)}).catch(()=>{})};return window.addEventListener(te,e),()=>{window.removeEventListener(te,e)}},[]),i.useEffect(()=>{const e=p.get("type");if(e==null)return;const r=Number(e);Number.isFinite(r)&&r!==E.current&&re.some(t=>t.type===r)&&q(r)},[p]),i.useEffect(()=>{let e=!1;m.current+=1,z.current.clear();const r=m.current;F(1),S(!0),h([]),B(!0),$(null);const s=D!=null&&D!==""?ye:0,n=()=>{e||m.current!==r||A({type:l,page:1,pageSize:v,status_min:0},l).then(c=>{if(e||!g.current||m.current!==r)return;const f=j(c);h(f),S(f.length>=v)}).catch(c=>{e||!g.current||m.current!==r||($(c instanceof Error?c:new Error(String(c))),h([]),S(!1))}).finally(()=>{!e&&g.current&&m.current===r&&B(!1)})};let d;return s===0?n():d=window.setTimeout(n,s),()=>{e=!0,d!==void 0&&window.clearTimeout(d)}},[l,D]),i.useEffect(()=>{if(!R)return;const e=m.current;let r=!0;const t=++w.current;async function s(){if(!r||!g.current||w.current!==t||m.current!==e)return;const c=Q.current.split(",").filter(Boolean);if(c.length===0)return;const f=E.current;try{const _=c.join(","),x=await A(f===4?{idList:_,type:f}:{ids:_,type:f},f);if(!r||!g.current||w.current!==t||m.current!==e)return;const b=j(x);if(b.length===0)return;const I=new Map;for(const y of b){const P=M(y);P&&(I.set(P,y),(y.status==-1||y.status==-2)&&!z.current.has(P)&&(z.current.add(P),ge.error(y.userErrorTipMsg||Z.current("pages.create.panels.myCreations.taskFailedFallback"))))}h(y=>y.map(P=>I.get(M(P))??P))}catch{}}s();const n=window.setInterval(()=>void s(),pe);return()=>{r=!1,w.current+=1,window.clearInterval(n)}},[R,l]);const ne=i.useCallback(async()=>{if(!T||H.current||N||Y)return;H.current=!0,G(!0);const e=m.current,r=k+1;try{const t=await A({type:l,page:r,pageSize:v,status_min:0},l);if(!g.current||m.current!==e)return;const s=j(t);s.length===0?S(!1):(h(n=>[...n,...s]),F(r),S(s.length>=v))}catch{g.current&&m.current===e&&S(!1)}finally{H.current=!1,g.current&&m.current===e&&G(!1)}},[T,N,Y,k,l]);J.current=ne,i.useEffect(()=>{const e=K.current;if(!e||!T||N)return;const r=_e(e),t=new IntersectionObserver(s=>{s[0]?.isIntersecting&&J.current()},{root:r,rootMargin:"160px",threshold:0});return t.observe(e),()=>t.disconnect()},[T,N,L.length]);const ae=i.useCallback(e=>{q(e),C(r=>{const t=new URLSearchParams(r);return t.set("type",String(e)),t.delete(W),t},{replace:!0})},[C]),ie=i.useCallback(async e=>{const r=String(e?.id??e?.assetId??""),t=s=>{if(!g.current)return;const n=String(s||r);n&&h(d=>d.map(c=>{if(c.status!=2||!Array.isArray(c.resultList))return c;const f=c.resultList.filter(_=>String(_?.id??_?.assetId??"")!==n);return f.length===c.resultList.length?c:{...c,resultList:f}}).filter(c=>c.status!=2||!Array.isArray(c.resultList)||c.resultList.length>0))};try{if(l==4){const s=await de(e.id??e.assetId);if(!g.current)return;const n=s?.data?.id;if(n==null||n==="")return;ee({assetId:n,onDeleted:t});return}r&&ee({assetId:r,onDeleted:t})}catch{}},[l]),ce=i.useCallback(e=>{const r=e.currentTarget.querySelector("video");r&&r.play().catch(()=>{})},[]),oe=i.useCallback(e=>{e.currentTarget.querySelector("video")?.pause()},[]);return o.jsxs("div",{className:"createPage__panelShell createPage__myCreationsWrap",children:[o.jsx("div",{className:"createPage__subRow",children:o.jsx("div",{className:"createPage__filters",role:"group","aria-label":a("pages.create.filtersAria"),"data-active-tab":l,children:re.map(e=>{const r=l===e.type;return o.jsx("button",{type:"button","data-type":e.type,"data-selected":r,"aria-pressed":r,className:r?"createPage__filterPill createPage__filterPill_active":"createPage__filterPill",onClick:()=>ae(e.type),children:a(`pages.create.filters.${e.title}`)},e.type)})})}),o.jsxs("section",{className:"createPage__panel createPage__panelScroll createPage__panel_below_filters",id:`${u}-panel-myCreations`,role:"tabpanel","aria-labelledby":`${u}-tab-myCreations`,children:[N&&L.length===0?o.jsx("p",{className:"createPage__panelStatus",children:a("common.loading")}):null,O?o.jsx("p",{className:"createPage__panelStatus createPage__panelStatus_error",children:O.message}):null,!N&&!O&&U.length===0?o.jsx("p",{className:"createPage__panelPlaceholder",children:a("pages.create.panels.myCreations.placeholder")}):null,U.length>0?o.jsxs(o.Fragment,{children:[o.jsx("div",{className:"createPage__myCreationsGrouped",children:U.map(({dateKey:e,taskList:r})=>{const t=e==="unknown"?a("pages.create.panels.myCreations.dateUnknown"):e===se?a("pages.create.panels.myCreations.dateToday"):e.replace(/-/g,"/");return o.jsxs("section",{className:"createPage__myCreationsDaySection","aria-label":t,children:[o.jsx("h3",{className:"createPage__myCreationsDayTitle",children:t}),o.jsx("ul",{className:"createPage__myCreationsList",role:"list",children:r.map((s,n)=>{if(s.status==0||s.status==1){const d=M(s)||`idx-${n}`;return Array.from({length:Number(s.batchSize||0)},(c,f)=>o.jsxs("li",{className:"createPage__myCreationsListItem createPage__myCreationsListItem_pending",children:[o.jsx("img",{className:"createPage__myCreationsPendingIcon",src:new URL("/assets/pending-iKg2Z6_3.png",import.meta.url).href}),o.jsx("span",{className:"createPage__myCreationsPendingLabel",children:s.status==0?a("pages.create.panels.myCreations.queued"):a("pages.create.panels.myCreations.generating")})]},`pending-${d}-${f}`))}return s.status!=2||!Array.isArray(s.resultList)?null:s.resultList.map((d,c)=>{const f=String(d.id??d.assetId??`${e}-${s?.id??"task"}-${c}`),_=()=>void ie(d),x=l===0;let b,I;if(b=(l===2||x)&&d?.video,I=(l===1||l===4||x)&&d?.images?.[0],b){const y=d.cover||"";return o.jsxs("li",{className:"createPage__myCreationsListItem createPage__myCreationsListItem_video",onClick:_,onMouseEnter:ce,onMouseLeave:oe,children:[o.jsx("video",{className:"createPage__myCreationsThumb",src:d.video,muted:!0,playsInline:!0,loop:!0,preload:"metadata",poster:y,"aria-hidden":!0}),o.jsx("div",{className:"createPage__myCreationsVideoHoverOverlay","aria-hidden":!0,children:o.jsx("img",{className:"createPage__myCreationsVideoHoverIcon",src:new URL("/assets/ic_play_gray-Bw0AiFae.png",import.meta.url).href,alt:"",draggable:!1})})]},f)}return I?o.jsx("li",{className:"createPage__myCreationsListItem",onClick:_,children:o.jsx("img",{className:"createPage__myCreationsThumb",src:d.images[0],loading:"lazy"})},f):null})})})]},e)})}),T?o.jsx("div",{ref:K,className:"createPage__myCreationsSentinel","aria-hidden":!0}):null,Y?o.jsx("p",{className:"createPage__panelStatus createPage__myCreationsLoadMore",children:a("common.loading")}):null]}):null]})]})}export{ve as default};
//# sourceMappingURL=index-BaScfP3c.js.map