1import{r as f,gO as j,gP as C,j as e,cz as P,cB as u,cA as w,gQ as S,gR as H}from"./main-DmDsGTCr.js";import{u as R,H as L,R as k,a as v,C as M,b as Q,c as E,d as I}from"./ranked-list-BK13cR26.js";import{c as N,M as B}from"./stat-strip-DL_zXyoh.js";import"./modified-click-CVYUpQWG.js";import"./months-BUif-t-m.js";function T({payload:n,page:i=1,onPageChange:s,initialQuery:l,onQueryChange:c}){const{stats:x,locations:h}=n,{query:t,onQuery:m}=R(s,l,c),r=f.useMemo(()=>h.filter(a=>j(t,[a.label,...a.topCategories.map(o=>o.label)])),[h,t]),{page:y,totalPages:b,start:g,end:p}=C(r.length,i);return e.jsxs(P,{title:"Internship locations",breadcrumbs:S(),children:[e.jsx("p",{className:"mt-3 max-w-[680px] text-[17px] text-text-muted leading-relaxed",children:"Browse internships by metro â where companies hire interns, ranked by how many hire in each. Pick a city to see the companies and categories hiring there."}),e.jsx(N,{stats:x}),e.jsx(B,{heading:"Find internships where you want to be",body:"Tell us your school, major and graduation date, and we'll show you the companies hiring in your city that you're a good fit for and get your applications ready.",ctaLabel:"See which ones fit me"}),e.jsx(L,{label:"Search metros",placeholder:"Search by city or category",value:t,onChange:m}),e.jsxs("section",{className:"mt-8","aria-label":"Locations",children:[e.jsx("h2",{className:"font-bold text-[20px] text-text-strong",children:"Top metros for interns"}),e.jsx(k,{label:"Locations",isEmpty:r.length===0,filtersActive:t!=="",onClear:()=>m(""),clearHref:w("location"),emptyText:"No metros match your search.",children:r.map((a,o)=>e.jsx(v,{hidden:o<g||o>=p,logoMark:a.mark,name:a.label,nameHref:u("location",a.slug),pills:a.topCategories.map(d=>({label:d.label,href:u("category",d.slug)})),moreHref:u("location",a.slug),moreCount:a.moreCategories,rightPrimary:e.jsx(M,{value:a.companies,noun:"companies"})},a.slug))})]}),e.jsx(Q,{rangeStart:g+1,rangeEnd:p,total:r.length}),e.jsx(E,{page:y,totalPages:b,query:t,onPage:s})]})}function O(){const n=H.useLoaderData(),{page:i,setPage:s,query:l,setQuery:c}=I();return e.jsx(T,{payload:n,page:i,onPageChange:s,initialQuery:l,onQueryChange:c})}export{O as component};
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.