1import{aK as R,aL as N,aM as O,aN as h,aO as P,aP as C,x as T,a4 as I,r as m,n as V,aQ as y,j as e,H as A,ao as B,Y as p,V as Z,W as S,aR as L}from"./main-xXS-ugzf.js";const x=20,E=0,w="/images/member-zone/non-member-gate.png",G="/images/member-zone/non-member-gate-button.png",D=["member-zone","videos",x,E];function k(r){const n=R(r);return[{id:"appcenter",name:"åºç¨"},{id:N,name:"ä¼åä¸åº"},...n.map(o=>({id:o.id,name:o.name}))]}function F(r){const n=(r.tags??[]).map(t=>t.name.trim()).filter(t=>t.length>0),o=n.length>0?n:["ä¼åä¸åº"];return Array.from(new Set(o)).slice(0,3)}function q(r){const n=new Set,o=[];for(const t of r.list)!t.id||n.has(t.id)||(n.add(t.id),o.push({video:t,tags:F(t)}));return o}function H(){const r=O.useLoaderData(),n=h(P),o=h(C),t=T(I),d=m.useRef(null),[f,g]=m.useState(!1),s=V({queryKey:D,initialPageParam:1,queryFn:async({pageParam:a})=>y({page:Number(a),pageSize:x,compositeSort:E}),getNextPageParam:a=>a.hasMore?a.page+1:void 0,staleTime:1e3*60*3}),i=m.useMemo(()=>q({list:(s.data?.pages??[]).flatMap(a=>a.list)}),[s.data?.pages]),M=k(r.topCategories),l=s.isPending,u=o!==null&&!n,c=u&&!f;m.useEffect(()=>{const a=d.current;if(!a||typeof IntersectionObserver>"u")return;const b=new IntersectionObserver(z=>{const[j]=z;j?.isIntersecting&&s.hasNextPage&&!s.isFetchingNextPage&&!s.isLoading&&s.fetchNextPage()},{rootMargin:"260px 0px"});return b.observe(a),()=>b.disconnect()},[s.fetchNextPage,s.hasNextPage,s.isFetchingNextPage,s.isLoading]);const _=()=>{g(!0),t({initialTab:"vip",returnTo:L})},v=a=>{!u||!(a.target instanceof HTMLElement)||a.target.closest(".video-card")&&(a.preventDefault(),a.stopPropagation(),_())};return e.jsxs("div",{className:"member-zone",children:[e.jsx(A,{categories:M,activeCategoryId:N,showDownloadAppButton:!1,showFilterButton:!1}),e.jsxs("main",{className:"member-zone__shell",children:[e.jsxs("header",{className:"member-zone__header",children:[e.jsxs("div",{children:[e.jsx("p",{children:"VIP VIDEO"}),e.jsx("h1",{children:"ä¼åä¸åº"})]}),e.jsx(B,{size:30,"aria-hidden":"true"})]}),e.jsxs("section",{className:S("member-zone__feed",c&&"member-zone__feed--locked"),"aria-label":"ä¼åä¸åºè§é¢æµ","aria-hidden":c,onClickCapture:v,children:[l?e.jsxs("div",{className:"member-zone__state","aria-busy":"true",children:[e.jsx(p,{size:18,className:"member-zone__spinner"}),"æ£å¨å è½½ä¼åä¸åº..."]}):null,!l&&i.length>0?e.jsx("div",{className:"member-zone__grid",children:i.map(a=>e.jsx(Z,{video:a.video,forceVipBadge:!0,tags:a.tags},a.video.id))}):null,s.hasNextPage?e.jsx("div",{ref:d,className:"member-zone__sentinel","aria-hidden":"true"}):null,s.isFetchingNextPage?e.jsxs("div",{className:"member-zone__load-status","aria-live":"polite",children:[e.jsx(p,{size:16,className:"member-zone__spinner"}),"æ£å¨å è½½æ´å¤ä¼åè§é¢..."]}):null,!l&&i.length>0&&!s.hasNextPage?e.jsx("div",{className:"member-zone__load-status member-zone__load-status--quiet",children:"æ²¡ææ´å¤äº"}):null,!l&&i.length===0?e.jsx("div",{className:"member-zone__state",children:"ä¼åä¸åºå
å®¹ææªåæ¥ï¼è¯·ç¨åå·æ°æè系客æç¡®è®¤ä¸åºæ°æ®ã"}):null]}),c?e.jsx("aside",{className:"member-zone__gate","aria-label":"ä¼åä¸åºå¼éæç¤º","aria-modal":"true",role:"dialog",children:e.jsxs("div",{className:"member-zone__gate-card",children:[e.jsx("img",{className:"member-zone__gate-image",src:w,alt:"ä¼åä¸äº«ï¼å«äººå¨çï¼ä½ åªè½ç¾¡æ
"}),e.jsx("img",{className:"member-zone__gate-button-image",src:G,alt:"","aria-hidden":"true"}),e.jsx("button",{className:"member-zone__gate-close",type:"button","aria-label":"å
³éä¼åæç¤ºå¼¹çª",onClick:()=>g(!0)}),e.jsx("button",{className:"member-zone__gate-action",type:"button","aria-label":"ç«å³å¼é",onClick:_})]})}):null]})]})}export{k as buildMemberZoneNavCategories,H as component,q as flattenMemberZoneVideos};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.