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
4.6 KiB
2 lines
4.6 KiB
import{j as s}from"./markdown-vendor-BZI_VWzW.js";import{u as G,r as t}from"./data-vendor-BOGugMqL.js";import{g as U}from"./react-vendor-wlKWdfEb.js";import{bm as V,bn as H,o as Y,f as Z}from"./index-CpDY2xe_.js";import"./arco-vendor-CAnKnMnO.js";const _=20,T=[{title:"image",assetType:"1"},{title:"video",assetType:"2"},{title:"template",assetType:"4"},{title:"character",assetType:"5"}];function A(o){const r=o;return r?.data?.list??r?.list??[]}function B(o){const r=o?.id??o?.assetId;return r==null||r===""?null:String(r)}function ee({tabIdPrefix:o}){const{t:r}=G(),[x,S]=U(),[l,b]=t.useState("1"),[c,f]=t.useState([]),[N,j]=t.useState(1),[g,u]=t.useState(!0),[d,F]=t.useState(!1),[v,C]=t.useState(!1),[h,I]=t.useState(null),L=t.useRef(null),P=t.useRef(!1),i=t.useRef(0),k=t.useRef(async()=>{});t.useEffect(()=>{const e=x.get("type");e!=null&&T.some(a=>a.assetType===e)&&b(e)},[x]);const w=t.useCallback(e=>({assetType:l,page:e,pageSize:_}),[l]),p=t.useCallback(e=>l==="5"?V({page:e,pageSize:_}):H(w(e)),[w,l]);t.useEffect(()=>{let e=!1;i.current+=1;const a=i.current;return j(1),u(!0),f([]),F(!0),I(null),p(1).then(n=>{if(e||i.current!==a)return;const m=A(n);f(m),u(m.length>=_)}).catch(n=>{e||i.current!==a||(I(n instanceof Error?n:new Error(String(n))),f([]),u(!1))}).finally(()=>{!e&&i.current===a&&F(!1)}),()=>{e=!0}},[p,l]);const D=t.useCallback(async()=>{if(!g||P.current||d||v)return;P.current=!0,C(!0);const e=i.current,a=N+1;try{const n=await p(a);if(i.current!==e)return;const m=A(n);m.length===0?u(!1):(f(q=>[...q,...m]),j(a),u(m.length>=_))}catch{i.current===e&&u(!1)}finally{P.current=!1,C(!1)}},[p,g,d,v,N]);k.current=D,t.useEffect(()=>{const e=L.current;if(!e||!g||d)return;const a=new IntersectionObserver(n=>{n[0]?.isIntersecting&&k.current()},{root:null,rootMargin:"200px",threshold:0});return a.observe(e),()=>a.disconnect()},[g,d,c.length]);const z=t.useCallback(e=>{b(e),S(a=>{const n=new URLSearchParams(a);return n.set("type",String(e)),n},{replace:!0})},[S]),y=t.useCallback(async e=>{const a=e.assetId;a!=null&&await Y({assetId:a})},[]),E=t.useCallback(async e=>{Z({id:e.id})},[]),R=t.useCallback(e=>{e.currentTarget.querySelector("video")?.play()},[]),M=t.useCallback(e=>{e.currentTarget.querySelector("video")?.pause()},[]),O=t.useMemo(()=>T.map(({title:e,assetType:a})=>({assetType:a,label:r(`pages.create.filters.${e}`)})),[r]),$=t.useMemo(()=>c.map(e=>{const a=B(e)??`row-${l}`;return l=="2"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),onMouseEnter:R,onMouseLeave:M,children:s.jsx("video",{className:"myFavoritePanel__media",src:e.asset.video,muted:!0,playsInline:!0,loop:!0,preload:"metadata",poster:e.asset.cover,"aria-hidden":!0})},a):l=="1"||l=="4"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void y(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e?.asset?.images?.[0],alt:"",loading:"lazy"})},a):l=="5"?s.jsx("li",{className:"myFavoritePanel__item",onClick:()=>void E(e),children:s.jsx("img",{className:"myFavoritePanel__media",src:e.avatar,alt:"",loading:"lazy"})},a):s.jsx("li",{className:"myFavoritePanel__item myFavoritePanel__item_empty",children:s.jsx("span",{className:"myFavoritePanel__emptyLabel",children:r("pages.create.panels.favorite.noPreview")})},a)}),[y,E,c,R,M,l,r]);return s.jsxs("div",{className:"myFavoritePanel",children:[s.jsx("div",{className:"createPage__subRow myFavoritePanel__subRow",children:s.jsx("div",{className:"createPage__filters",role:"group","aria-label":r("pages.create.filtersAria"),"data-active-tab":l,children:O.map(({assetType:e,label:a})=>s.jsx("button",{type:"button","data-type":e,"data-selected":l===e,"aria-pressed":l===e,className:classNames("createPage__filterPill",l===e&&"createPage__filterPill_active"),onClick:()=>z(e),children:a},e))})}),s.jsxs("section",{className:"createPage__panel createPage__panel_below_filters",id:`${o}-panel-favorite`,role:"tabpanel","aria-labelledby":`${o}-tab-favorite`,children:[d&&c.length===0?s.jsx("p",{className:"createPage__panelStatus",children:r("common.loading")}):null,h?s.jsx("p",{className:"createPage__panelStatus createPage__panelStatus_error",children:h.message}):null,!d&&!h&&c.length===0?s.jsx("p",{className:"createPage__panelPlaceholder",children:r("pages.create.panels.favorite.placeholder")}):null,c.length>0?s.jsxs(s.Fragment,{children:[s.jsx("ul",{className:"myFavoritePanel__list",role:"list",children:$}),g?s.jsx("div",{ref:L,className:"myFavoritePanel__sentinel","aria-hidden":!0}):null,v?s.jsx("p",{className:"createPage__panelStatus myFavoritePanel__loadMore",children:r("common.loading")}):null]}):null]})]})}export{ee as default};
|
|
//# sourceMappingURL=index-BhvQ0ZnU.js.map
|
|
|