PageSourceSearch

https://hacokebu.com/assets/ProjectList-CUj09cCP.js

js hacokebu.com collected 2026-10-02 01:31:04 UTC 2,820 bytes, 1 lines download raw bytes

1import{j as s}from"./ui-vendor-BDMiHGUE.js";import{i as k,L as y}from"./react-vendor-BNda8Xh2.js";import{u as b,a as C,g as E,L,H as w}from"./index-C0rEH55V.js";import{P as A,a as M,b as n,c as H,d as S,e as r,f as j}from"./pagination-B2Jo77tV.js";const l=6,B=()=>{const{t:p}=b(),{getLocalizedPath:u,currentLang:o}=C(),[g,m]=k(),P=parseInt(g.get("page")||"1",10),d=E(o),a=Math.ceil(d.length/l),t=Math.max(1,Math.min(P,a||1)),h=d.slice((t-1)*l,t*l),c=e=>{m(e===1?{}:{page:e.toString()}),window.scrollTo({top:0,behavior:"smooth"})},f=()=>{const e=[],v=t>3,N=t<a-2;e.push(s.jsx(n,{children:s.jsx(r,{onClick:()=>c(1),isActive:t===1,className:"cursor-pointer",children:"1"})},1)),v&&e.push(s.jsx(n,{children:s.jsx(j,{})},"ellipsis-start"));for(let i=Math.max(2,t-1);i<=Math.min(a-1,t+1);i++)i<=1||i>=a||e.push(s.jsx(n,{children:s.jsx(r,{onClick:()=>c(i),isActive:t===i,className:"cursor-pointer",children:i})},i));return N&&e.push(s.jsx(n,{children:s.jsx(j,{})},"ellipsis-end")),a>1&&e.push(s.jsx(n,{children:s.jsx(r,{onClick:()=>c(a),isActive:t===a,className:"cursor-pointer",children:a})},a)),e},x=`https://hacokebu.com/${o==="ko"?"ko/project/":"project/"}`;return s.jsxs(L,{children:[s.jsxs(w,{children:[s.jsx("title",{children:o==="ko"?"프로젝트 | HACO&KEBU":"Projects | HACO&KEBU"}),s.jsx("meta",{name:"description",content:o==="ko"?"하코케부의 프로젝트 목록":"Projects by HACO & KEBU"}),s.jsx("link",{rel:"canonical",href:x}),s.jsx("meta",{property:"og:url",content:x})]}),s.jsx("div",{className:"py-12 md:py-16",children:s.jsxs("div",{className:"container-main",children:[h.length>0?s.jsx("div",{className:"space-y-16",children:h.map(e=>s.jsxs(y,{to:u(`/project/${e.id}`),className:"block project-card group",children:[s.jsx("div",{className:"w-full bg-muted mb-6",style:{aspectRatio:"16 / 10"},children:s.jsx("img",{src:e.thumbnail,alt:e.title,loading:"lazy",width:1280,height:800,className:"w-full h-full object-cover"})}),s.jsxs("div",{className:"flex items-center gap-6",children:[s.jsx("span",{className:"hidden md:block text-[6rem] font-extrabold text-ivory",children:e.number}),s.jsxs("div",{children:[s.jsx("h2",{className:"text-[2rem] text-ivory font-medium project-card-title transition-colors",children:e.title}),s.jsx("p",{className:"text-muted-foreground text-[1.2rem] mt-2",children:e.date})]})]})]},e.id))}):s.jsx("p",{className:"text-muted-foreground text-lg",children:p("projectList.empty")}),a>1&&s.jsx("div",{className:"mt-16",children:s.jsx(A,{children:s.jsxs(M,{children:[s.jsx(n,{children:s.jsx(H,{onClick:()=>c(Math.max(1,t-1)),className:`cursor-pointer ${t===1?"pointer-events-none opacity-50":""}`})}),f(),s.jsx(n,{children:s.jsx(S,{onClick:()=>c(Math.min(a,t+1)),className:`cursor-pointer ${t===a?"pointer-events-none opacity-50":""}`})})]})})})]})})]})};export{B 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.