PageSourceSearch

https://atlantikwall.co.uk/assets/SectorIndex-Ai0TKicD.js

js atlantikwall.co.uk collected 2026-10-02 12:53:08 UTC 2,758 bytes, 1 lines download raw bytes

1import{r as l,j as e}from"./vendor-react-OCc4dLhu.js";import{u as x}from"./useEntityBrowse-EyJkvUt2.js";import{L as m}from"./vendor-router-DfjHVv-z.js";import"./index-4TahScS1.js";import"./vendor-dnd-kit-CAuH8bg0.js";function g(){const{loading:c,entityMap:r}=x("commandSectors"),[o,i]=l.useState(""),n=l.useMemo(()=>{const t=o.trim().toLowerCase();return Array.from(r.values()).filter(s=>!t||s.name.toLowerCase().includes(t)).sort((s,a)=>a.locations.length-s.locations.length||s.name.localeCompare(a.name))},[r,o]);return e.jsx("div",{className:"min-h-screen bg-stone-950 text-stone-200 pb-20",children:e.jsxs("div",{className:"max-w-4xl mx-auto px-6 pt-12",children:[e.jsxs("div",{className:"mb-8",children:[e.jsx("h1",{className:"text-3xl font-extrabold uppercase tracking-tight text-white mb-2",children:"Command Sectors (AOK)"}),e.jsx("p",{className:"text-stone-400 text-sm",children:"German Armeeoberkommando (AOK) designations mentioned across the archive."})]}),c?e.jsx("p",{className:"text-stone-500 text-sm text-center py-16",children:"Loading…"}):e.jsxs(e.Fragment,{children:[e.jsxs("div",{className:"flex items-center gap-3 mb-6",children:[e.jsx("input",{type:"text",value:o,onChange:t=>i(t.target.value),placeholder:"Filter sectors…",className:"bg-stone-900 border border-stone-700 text-stone-200 text-sm px-3 py-2 rounded w-72 outline-none focus:border-blue-500 transition placeholder:text-stone-600"}),e.jsxs("span",{className:"text-xs text-stone-600 font-mono ml-auto",children:[n.length," sector",n.length!==1?"s":""]})]}),e.jsx("div",{className:"rounded-xl border border-stone-800 overflow-hidden",children:e.jsxs("table",{className:"w-full text-sm",children:[e.jsx("thead",{children:e.jsxs("tr",{className:"border-b border-stone-800 bg-stone-900/60",children:[e.jsx("th",{className:"text-left px-4 py-3 text-[10px] font-black uppercase tracking-widest text-stone-500",children:"Designation"}),e.jsx("th",{className:"text-right px-4 py-3 text-[10px] font-black uppercase tracking-widest text-stone-500",children:"Locations"})]})}),e.jsxs("tbody",{children:[n.map((t,s)=>e.jsxs("tr",{className:`border-b border-stone-800/60 last:border-0 hover:bg-stone-800/40 transition-colors ${s%2===0?"bg-stone-950":"bg-stone-900/20"}`,children:[e.jsx("td",{className:"px-4 py-3",children:e.jsx(m,{to:`/sectors/${t.slug}`,className:"text-blue-400 hover:text-blue-300 font-medium transition-colors",children:t.name})}),e.jsx("td",{className:"px-4 py-3 text-right tabular-nums text-stone-500 font-mono text-xs",children:t.locations.length})]},t.slug)),n.length===0&&e.jsx("tr",{children:e.jsx("td",{colSpan:2,className:"px-4 py-12 text-center text-stone-600 text-sm italic",children:"No command sectors match."})})]})]})})]})]})})}export{g 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.