全新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
7.5 KiB

import{j as r}from"./markdown-vendor-BZI_VWzW.js";import{u as K,r as t}from"./data-vendor-BOGugMqL.js";import{a as q,g as G}from"./react-vendor-wlKWdfEb.js";import{bk as Q,a as U,bl as W,f as J,R as X}from"./index-D2jM1hO2.js";import{c as Z}from"./imageDragTransfer-DvFDfKg6.js";import{D as $}from"./arco-vendor-CAnKnMnO.js";function D(m){const h=m;return Array.isArray(h?.data?.list)?h.data.list:[]}const p="keyword",ee=350,_={OFFICIAL:"official",COMMUNITY:"community"};function ae(...m){const h=new Set;return m.forEach(c=>{c.forEach(g=>{const y=String(g??"").trim();y&&h.add(y)})}),Array.from(h)}function re({showDiyEntry:m=!0}){const h=q(),{t:c}=K(),[g,y]=G(),v=t.useRef(null),l=g.get(p)?.trim()??"",[S,w]=t.useState(()=>g.get(p)??""),E=t.useDeferredValue(S),[f,A]=t.useState([]),[C,I]=t.useState([]),[o,M]=t.useState(_.OFFICIAL),[j,k]=t.useState([]),[d,L]=t.useState(null),[O,b]=t.useState(!1),[N,x]=t.useState([]),u=t.useMemo(()=>Z(),[]);t.useEffect(()=>()=>{u.dispose()},[u]),t.useEffect(()=>{Q().then(e=>{const a=e.data,s=Array.isArray(a)?a:[];s.sort((n,i)=>(n.sortNum??0)-(i.sortNum??0)),k(s)}).catch(()=>{k([])})},[]),t.useEffect(()=>{w(g.get(p)??"")},[g]),t.useEffect(()=>{const e=window.setTimeout(()=>{const a=E.trim();a!==l&&y(s=>{const n=new URLSearchParams(s);return a?n.set(p,a):n.delete(p),n},{replace:!0})},ee);return()=>window.clearTimeout(e)},[E,l,y]),t.useEffect(()=>{const e={uploadCharacter:!0,page:1,pageSize:30};l&&(e.keyword=l);let a=!1;return U(e).then(s=>{a||x(s.data.list)}).catch(()=>{a||x([])}),()=>{a=!0}},[l]),t.useEffect(()=>{if(o!==_.OFFICIAL)return;const e={type:1,page:1,pageSize:30};d!=null&&(e.categoryId=d),l&&(e.keyword=l);let a=!1;return U(e).then(s=>{a||A(D(s))}).catch(()=>{a||A([])}),()=>{a=!0}},[o,d,l]),t.useEffect(()=>{if(o!==_.COMMUNITY)return;const e={};l&&(e.keyword=l);let a=!1;return W(e).then(s=>{a||I(D(s))}).catch(()=>{a||I([])}),()=>{a=!0}},[o,l]),t.useEffect(()=>{const e=ae(N.map(a=>a?.threeViewImage),f.map(a=>String(a?.threeViewImage??"")),C.map(a=>a?.threeViewImage));e.length!==0&&u.warmupPreviewImages(e)},[C,u,N,f]);const P=t.useMemo(()=>d==null?c("pages.characters.category_all"):j.find(a=>a.id===d)?.name??c("pages.characters.category_label"),[j,d,c]),T=t.useCallback(e=>{J({id:e.id,onDeleted:a=>{const s=String(a);x(n=>n.filter(i=>String(i?.id??"")!==s)),I(n=>n.filter(i=>String(i?.id??"")!==s))},onUpdated:a=>{const s=String(a.id),n=i=>String(i?.id??"")!==s?i:{...i,title:a.title,description:a.description,isPublic:a.isPublic,avatar:a.avatar||i?.avatar};x(i=>i.map(n)),I(i=>i.map(n))}})},[]),F=t.useCallback(()=>{h(X.CHARACTERS_CREATE)},[h]),V=t.useMemo(()=>o===_.OFFICIAL?f:C,[o,C,f]),B=t.useCallback(()=>{M(_.OFFICIAL),b(!1)},[]),Y=t.useCallback(()=>{M(_.COMMUNITY),b(!1)},[]),z=t.useCallback(()=>{L(null),b(!1)},[]),H=t.useCallback(e=>{L(e),b(!1)},[]),R=(e,a)=>{u.startImageDrag({evt:e,dragUrl:a,previewUrl:a})};return r.jsxs("div",{className:"character_library_sections",children:[r.jsxs("section",{className:"character_library_sections__section","aria-labelledby":"character-library-my-heading",children:[r.jsxs("div",{className:"character_library_sections__section_head",children:[r.jsx("div",{className:"character_library_sections__title_wrap",children:r.jsx("h2",{id:"character-library-my-heading",className:"character_library_sections__section_title",children:c("pages.characters.my_section")})}),r.jsxs("label",{className:"character_library_sections__search",children:[r.jsx("img",{className:"character_library_sections__search_icon",src:new URL("/assets/ic_search-DREI2NzL.png",import.meta.url).href,alt:""}),r.jsx("input",{className:"character_library_sections__search_input",type:"search",placeholder:c("pages.characters.search_placeholder"),name:"keyword",value:S,onChange:e=>{w(e.target.value)},"aria-label":c("pages.characters.search_aria")})]})]}),r.jsxs("div",{className:"character_library_sections__grid",children:[m?r.jsxs("button",{type:"button",className:"character_library_sections__card character_library_sections__diy_card",onClick:()=>{F()},"aria-label":c("pages.characters.diy_aria"),children:[r.jsx("img",{className:"character_library_sections__diy_icon",src:new URL("/assets/ic_plus-DsKUbTM-.png",import.meta.url).href,alt:""}),r.jsx("p",{className:"character_library_sections__diy_label",children:c("pages.characters.diy_label")})]}):null,N.map((e,a)=>r.jsxs("button",{type:"button",className:"character_library_sections__card",draggable:!0,onMouseEnter:()=>{u.ensurePreviewImage(e.threeViewImage)},onDragStart:s=>{R(s,e.threeViewImage)},onClick:()=>{T(e)},children:[r.jsx("img",{className:"character_library_sections__card_image",src:e.avatar,alt:"",draggable:!1}),r.jsx("span",{className:"character_library_sections__card_tag",children:e.title})]},String(e.id??a)))]})]}),r.jsxs("section",{className:"character_library_sections__section","aria-label":c("pages.characters.official_section"),children:[r.jsxs("div",{className:"character_library_sections__section_head",children:[r.jsx("div",{className:"character_library_sections__title_wrap",children:r.jsxs("div",{className:"character_library_sections__tabs",role:"tablist","aria-label":c("pages.characters.official_section"),children:[r.jsx("button",{type:"button",role:"tab","aria-selected":o===_.OFFICIAL,className:["character_library_sections__section_tab",o===_.OFFICIAL?"character_library_sections__section_tab_active":""].filter(Boolean).join(" "),onClick:B,children:c("pages.characters.official_section")}),r.jsx("button",{type:"button",role:"tab","aria-selected":o===_.COMMUNITY,className:["character_library_sections__section_tab",o===_.COMMUNITY?"character_library_sections__section_tab_active":""].filter(Boolean).join(" "),onClick:Y,children:c("pages.characters.community_section")})]})}),o===_.OFFICIAL?r.jsx("div",{ref:v,children:r.jsx($,{trigger:"click",position:"br",popupVisible:O,onVisibleChange:b,triggerProps:{style:{zIndex:2e3}},getPopupContainer:()=>v.current??document.body,droplist:r.jsxs("div",{className:"character_library_sections__category_dropdown",role:"menu","aria-label":c("pages.characters.category_aria"),children:[r.jsx("button",{type:"button",className:["character_library_sections__category_menu_item",d===null?"character_library_sections__category_menu_item_active":""].filter(Boolean).join(" "),role:"menuitem",onClick:z,children:c("pages.characters.category_all")}),j.map(e=>r.jsx("button",{type:"button",className:["character_library_sections__category_menu_item",d===e.id?"character_library_sections__category_menu_item_active":""].filter(Boolean).join(" "),role:"menuitem",onClick:()=>{H(e.id)},children:e.name},e.id))]}),children:r.jsxs("button",{type:"button",className:"character_library_sections__category","aria-label":c("pages.characters.category_aria"),"aria-expanded":O,"aria-haspopup":"menu",children:[r.jsx("span",{children:P}),r.jsx("img",{className:"character_library_sections__category_icon",src:new URL("/assets/ic_arrow_right_gray-DM6GPP4g.png",import.meta.url).href,alt:""})]})})}):null]}),r.jsx("div",{className:"character_library_sections__grid",children:V.map((e,a)=>r.jsxs("div",{className:"character_library_sections__card",draggable:!0,onMouseEnter:()=>{u.ensurePreviewImage(e.threeViewImage)},onDragStart:s=>{R(s,e.threeViewImage)},onClick:()=>{T(e)},children:[r.jsx("img",{className:"character_library_sections__card_image",src:e.avatar,alt:"",draggable:!1}),r.jsx("span",{className:"character_library_sections__card_tag",children:e.title})]},String(e.id??a)))})]})]})}function oe(){return r.jsx("div",{className:"charactersPage",children:r.jsx(re,{})})}export{re as CharacterLibrarySections,oe as default};
//# sourceMappingURL=index-CW8telGl.js.map