PageSourceSearch

https://8004.ch/assets/AdminGalerie-Dzvlsmcj.js

js 8004.ch collected 2026-10-02 20:49:38 UTC 2,961 bytes, 1 lines download raw bytes

1import{r as n,j as e,s as b}from"./index-DeJ875KO.js";async function h(s,a={}){const{data:{session:i}}=await b.auth.getSession();return fetch(s,{...a,headers:{"Content-Type":"application/json",Authorization:`Bearer ${i?.access_token??""}`,...a.headers??{}}})}function k(){const[s,a]=n.useState(null),[i,o]=n.useState(!0),[f,u]=n.useState(!1),[x,l]=n.useState(null),[m,c]=n.useState(!1);n.useEffect(()=>{let r=!1;return h("/api/admin/galerie").then(t=>t.ok?t.json():Promise.reject(new Error(`HTTP ${t.status}`))).then(t=>{r||(a(t),o(!1))}).catch(t=>{r||(l(t instanceof Error?t.message:String(t)),o(!1))}),()=>{r=!0}},[]);async function g(){if(!s)return;u(!0),l(null),c(!1);const r=!s.enabled,t=await h("/api/admin/galerie",{method:"PATCH",body:JSON.stringify({enabled:r})});if(t.ok){const d=await t.json();a(d),c(!0),setTimeout(()=>c(!1),2500)}else{const d=await t.json().catch(()=>({}));l(d.error??"Speichern fehlgeschlagen.")}u(!1)}return i?e.jsx("div",{className:"py-20 text-center text-zinc-400 text-sm",children:"Lädt…"}):x||!s?e.jsx("div",{className:"py-20 text-center text-red-500 text-sm",children:x??"Laden fehlgeschlagen."}):e.jsxs("div",{className:"max-w-2xl",children:[e.jsx("h1",{className:"text-xl font-bold text-zinc-900 dark:text-white mb-2",children:"Galerie"}),e.jsx("p",{className:"text-sm text-zinc-500 dark:text-zinc-400 mb-6",children:"Schaltet die öffentliche Galerie-Seite (Instagram-Feed unter «Aktuell › Galerie») ein oder aus. Bei deaktivierter Galerie verschwindet der Menüpunkt im Hauptmenü und im Footer; direkte Zugriffe auf die URL leiten zurück auf «Aktuell»."}),e.jsxs("div",{className:"bg-white dark:bg-zinc-900 rounded-xl border border-zinc-200 dark:border-zinc-800 p-5",children:[e.jsxs("div",{className:"flex items-start justify-between gap-4",children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("h2",{className:"text-base font-semibold text-zinc-900 dark:text-white",children:"Galerie öffentlich anzeigen"}),e.jsx("span",{className:`px-2 py-0.5 rounded-full text-xs font-medium ${s.enabled?"bg-green-100 dark:bg-green-950/40 text-green-700 dark:text-green-400":"bg-zinc-100 dark:bg-zinc-800 text-zinc-500"}`,children:s.enabled?"Aktiv":"Inaktiv"})]}),e.jsx("p",{className:"text-sm text-zinc-600 dark:text-zinc-400",children:s.enabled?"Die Galerie ist auf der Website sichtbar (Aktuell › Galerie).":"Die Galerie ist ausgeblendet. Besucher:innen sehen den Menüpunkt nicht und werden bei direktem Aufruf der URL nach «Aktuell» weitergeleitet."})]}),e.jsx("label",{className:"flex items-center gap-2 cursor-pointer flex-shrink-0",children:e.jsx("input",{type:"checkbox",checked:s.enabled,disabled:f,onChange:g,className:"w-4 h-4 rounded border-zinc-300 text-red-600 focus:ring-red-500"})})]}),m&&e.jsx("p",{className:"mt-3 text-sm text-green-600 dark:text-green-400",children:"Gespeichert ✓"})]})]})}export{k as AdminGalerie};

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.