PageSourceSearch

https://tavanbogd.com/assets/index-DgaeIXdc.js

js tavanbogd.com collected 2026-09-26 16:07:13 UTC 2,694 bytes, 1 lines download raw bytes

1import{u as q,r as i,j as s}from"./index-Cmme6eGT.js";import{s as j,b as w}from"./sustainabilityApi-BIm6CpQ3.js";import{C as S,P as O,a as R}from"./index-DUK64s3G.js";import{S as k}from"./index-DlIwXcQH.js";import{L}from"./index-BtIjriEW.js";import"./contentApi-CVgutiKL.js";const $="_section_1oya5_5",B="_inner_1oya5_12",I="_toolbar_1oya5_17",M="_srOnly_1oya5_25",D="_notice_1oya5_34",F="_grid_1oya5_43",G="_cardTitle_1oya5_54",o={section:$,inner:B,toolbar:I,srOnly:M,notice:D,grid:F,cardTitle:G},Q="/sustainabledev";function X({pageSize:r=8}){const{t:c,locale:v}=q(),[d,b]=i.useState([]),[A,g]=i.useState(0),[C,p]=i.useState(1),[n,N]=i.useState(""),[u,h]=i.useState("loading"),[f,x]=i.useState(!1),_=i.useRef(null),E=i.useCallback((t,a)=>n?j({query:n,page:t,size:r,signal:a}):w({page:t,size:r,signal:a}),[n,r]);i.useEffect(()=>{const t=new AbortController;let a=!0;return h("loading"),p(1),(n?j({query:n,page:1,size:r,signal:t.signal}):w({page:1,size:r,signal:t.signal})).then(e=>{a&&(b(e.items),g(e.total),h("ready"))}).catch(e=>{!a||(e==null?void 0:e.name)==="AbortError"||h("error")}),()=>{var e;a=!1,t.abort(),(e=_.current)==null||e.abort()}},[n,r,v]);const T=()=>{if(f)return;const t=C+1,a=new AbortController;_.current=a,x(!0),E(t,a.signal).then(l=>{a.signal.aborted||(b(e=>{const P=new Set(e.map(y=>y.id));return e.concat(l.items.filter(y=>!P.has(y.id)))}),g(l.total),p(t))}).catch(l=>{(l==null?void 0:l.name)!=="AbortError"&&h("error")}).finally(()=>x(!1))},m=!n;return s.jsx("section",{id:"sustainability",className:o.section,"aria-labelledby":"sustainability-heading",children:s.jsxs("div",{className:`${o.inner} container`,children:[s.jsx("h1",{id:"sustainability-heading",className:o.srOnly,children:c("sustainability.title")}),s.jsx("div",{className:o.toolbar,children:s.jsx(k,{value:n,onSearch:N,placeholder:c("sustainability.searchPlaceholder")})}),u==="error"&&s.jsx("p",{"data-fetch-error":"true",className:o.notice,children:c("sustainability.error")}),u==="ready"&&d.length===0&&s.jsx("p",{className:o.notice,children:c(n?"sustainability.noResults":"sustainability.empty")}),(u==="loading"||d.length>0)&&s.jsx(S,{featureFirst:m,className:o.grid,children:u==="loading"?s.jsx(S.Skeleton,{count:r,featureFirst:m}):d.map((t,a)=>s.jsx(O,{href:`${Q}/${t.id}`,image:t.image,imageAlt:t.imageAlt,width:m&&a===0?1080:640,sizes:m&&a===0?"(max-width: 640px) 100vw, (max-width: 1023px) 100vw, 66vw":"(max-width: 640px) 100vw, (max-width: 1023px) 50vw, 33vw",priority:a===0,top:s.jsx("h2",{className:o.cardTitle,children:t.title}),bottom:s.jsx(R,{children:c("sustainability.pill")})},t.id))}),u==="ready"&&d.length>0&&d.length<A&&s.jsx(L,{onClick:T,loading:f})]})})}export{X as default};

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.