1import{O as M,a$ as ue,a4 as ge,r as o,j as e,a7 as N,aa as k,aM as je,y as L,au as V,av as j,a2 as r,aw as fe,f as x,p as m,M as be,T as ve,c as Ne,e as O,L as B,P as y,o as U,a5 as K,aq as ke,aR as F,aN as ye,aO as _e,aP as we,aQ as Ce,aS as h,aE as _,as as Te,aT as Me,a_ as Ee,d as f}from"./index-SUgZbrft.js";import{u as De,I as R,i as Ae}from"./useClubInternals-B217bREl.js";import{P as Se}from"./PdfLinkField-ZLjwBpvS.js";import{S as Ie,a as Pe,b as We,c as ze,d as He}from"./select-xiTrP_PM.js";import{A as Le,b as Ve,c as Oe,d as Be,e as Fe,f as Re,g as qe,h as $e}from"./alert-dialog-DsN9fElX.js";import{u as Ge}from"./usePageTracking-CNqP9g9x.js";import{P as Ue}from"./pencil-3GFo1nxB.js";import{T as Ke}from"./trash-2-Dm6BwHAx.js";import{M as Qe}from"./megaphone-BcpUuvad.js";import"./upload-CUAksYr9.js";import"./index-BdQq_4o_.js";import"./chevron-up-rbVq_SUK.js";/** 2 * @license lucide-react v0.462.0 - ISC 3 * 4 * This source code is licensed under the ISC license. 5 * See the LICENSE file in the root directory of this source tree. 6 */const q=M("CheckCheck",[["path",{d:"M18 6 7 17l-5-5",key:"116fxf"}],["path",{d:"m22 10-7.5 7.5L13 16",key:"ke71qq"}]]);/** 7 * @license lucide-react v0.462.0 - ISC 8 * 9 * This source code is licensed under the ISC license. 10 * See the LICENSE file in the root directory of this source tree. 11 */const Ye=M("PinOff",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M15 9.34V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H7.89",key:"znwnzq"}],["path",{d:"m2 2 20 20",key:"1ooewy"}],["path",{d:"M9 9v1.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h11",key:"c9qhm2"}]]);/** 12 * @license lucide-react v0.462.0 - ISC 13 * 14 * This source code is licensed under the ISC license. 15 * See the LICENSE file in the root directory of this source tree. 16 */const $=M("Pin",[["path",{d:"M12 17v5",key:"bb1du9"}],["path",{d:"M9 10.76a2 2 0 0 1-1.11 1.79l-1.78.9A2 2 0 0 0 5 15.24V16a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1v-.76a2 2 0 0 0-1.11-1.79l-1.78-.9A2 2 0 0 1 15 10.76V7a1 1 0 0 1 1-1 2 2 0 0 0 0-4H8a2 2 0 0 0 0 4 1 1 0 0 1 1 1z",key:"1nkz8b"}]]);function Je(i){return+ue(i)<Date.now()}const Xe={news:Qe,event:U,document:K},Ze={news:"text-team-primary",event:"text-amber-500",document:"text-sky-500"},G={type:"news",title:"",content:"",event_at:"",location:"",file_url:"",file_name:"",is_pinned:!1};function xs(){Ge("club-internals");const{team:i}=ge(),{entries:p,unread:Q,unreadCount:w,upcomingEvents:E,readIds:Y,readsByEntry:J,isLoading:X,clubName:Z,responsesByEntry:ee,myResponses:se,setResponse:ae,createEntry:te,updateEntry:D,deleteEntry:ne,markRead:le,markAllRead:re}=De(i==null?void 0:i.club_name),[b,ie]=o.useState("all"),[ce,u]=o.useState(!1),[v,A]=o.useState(null),[a,l]=o.useState({...G}),[C,T]=o.useState(null),[S,I]=o.useState(!1),P=o.useMemo(()=>b==="all"?p:p.filter(s=>s.type===b),[p,b]),de=()=>{A(null),l({...G}),u(!0)},oe=s=>{A(s.id),l({type:s.type,title:s.title,content:s.content||"",event_at:s.event_at?x(m(s.event_at),"yyyy-MM-dd'T'HH:mm"):"",location:s.location||"",file_url:s.file_url||"",file_name:s.file_name||"",is_pinned:s.is_pinned}),u(!0)},me=async()=>{if(!a.title.trim())return;I(!0);const s={type:a.type,title:a.title.trim(),content:a.content.trim()||null,event_at:a.type==="event"&&a.event_at?new Date(a.event_at).toISOString():null,location:a.location.trim()||null,file_url:a.file_url.trim()||null,file_name:a.file_name.trim()||null,is_pinned:a.is_pinned};v?await D(v,s):await te(s),I(!1),u(!1)};return i!=null&&i.club_name?e.jsxs("div",{className:"p-4 sm:p-6 space-y-5 sm:space-y-6",children:[e.jsxs(L.div,{initial:{opacity:0,y:-10},animate:{opacity:1,y:0},className:"flex flex-col sm:flex-row sm:items-end sm:justify-between gap-4",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("div",{className:"w-9 h-9 rounded-xl bg-team-primary/15 flex items-center justify-center",children:e.jsx(V,{className:"w-5 h-5 text-team-primary",strokeWidth:1.5})}),e.jsx("h1",{className:"text-2xl sm:text-3xl font-bold text-foreground",children:"Internas"}),w>0&&e.jsxs(j,{className:"bg-team-primary text-team-primary-foreground",children:[w," neu"]})]}),e.jsxs("p",{className:"text-sm text-muted-foreground",children:["Interner Bereich für alle Trainer & Betreuer von ",e.jsx("span",{className:"font-medium text-foreground",children:Z}),". Nur für euer Trainerteam sichtbar â nicht öffentlich."]})]}),e.jsxs("div",{className:"flex items-center gap-2",children:[w>0&&e.jsxs(r,{variant:"outline",onClick:re,className:"gap-2",children:[e.jsx(q,{className:"w-4 h-4",strokeWidth:1.5})," Alles gelesen"]}),e.jsxs(r,{onClick:de,className:"gap-2",children:[e.jsx(fe,{className:"w-4 h-4",strokeWidth:1.5})," Neuer Eintrag"]})]})]}),E.length>0&&e.jsx("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-3",children:E.slice(0,3).map(s=>e.jsx(N,{className:"border-border/40 bg-card/60 backdrop-blur-sm",children:e.jsxs(k,{className:"p-4",children:[e.jsx("p",{className:"text-[11px] uppercase tracking-wide text-amber-500 font-semibold mb-1",children:"Nächster Termin"}),e.jsx("p",{className:"font-semibold text-foreground truncate",children:s.title}),e.jsx("p",{className:"text-xs text-muted-foreground mt-1",children:s.event_at&&x(m(s.event_at),"EEEE, d. MMMM yyyy 'um' HH:mm",{locale:f})}),s.location&&e.jsxs("p",{className:"text-xs text-muted-foreground flex items-center gap-1 mt-1",children:[e.jsx(be,{className:"w-3 h-3",strokeWidth:1.5})," ",s.location]})]})},s.id))}),e.jsx(ve,{value:b,onValueChange:s=>ie(s),children:e.jsxs(Ne,{children:[e.jsxs(O,{value:"all",children:["Alle (",p.length,")"]}),R.map(s=>e.jsxs(O,{value:s.value,children:[s.label," (",p.filter(t=>t.type===s.value).length,")"]},s.value))]})}),X?e.jsx("div",{className:"flex justify-center py-16",children:e.jsx(B,{className:"w-7 h-7 animate-spin text-team-primary"})}):P.length===0?e.jsx(N,{className:"border-dashed border-border/60",children:e.jsxs(k,{className:"p-10 text-center space-y-2",children:[e.jsx(V,{className:"w-9 h-9 mx-auto text-muted-foreground
16/60",strokeWidth:1.5}),e.jsx("p",{className:"font-medium",children:"Noch keine Einträge"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Teile Nachrichten, Trainersitzungen oder PDFs mit deinem Trainerteam."})]})}):e.jsx("div",{className:"space-y-3",children:P.map((s,t)=>{const xe=Xe[s.type],W=Q.some(c=>c.id===s.id),he=Y.includes(s.id);return e.jsx(L.div,{initial:{opacity:0,y:10},animate:{opacity:1,y:0},transition:{delay:Math.min(t*.03,.2)},children:e.jsx(N,{className:y("border-border/40 bg-card/60 backdrop-blur-sm transition-colors",W&&"border-team-primary/50 bg-team-primary/5"),children:e.jsx(k,{className:"p-4 sm:p-5",children:e.jsxs("div",{className:"flex items-start gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl bg-muted/50 flex items-center justify-center shrink-0",children:e.jsx(xe,{className:y("w-5 h-5",Ze[s.type]),strokeWidth:1.5})}),e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 flex-wrap",children:[s.is_pinned&&e.jsx($,{className:"w-3.5 h-3.5 text-team-primary",strokeWidth:1.5}),e.jsx("h3",{className:"font-semibold text-foreground break-words",children:s.title}),e.jsx(j,{variant:"secondary",className:"text-[10px]",children:Ae(s.type)}),W&&e.jsx(j,{className:"text-[10px] bg-team-primary text-team-primary-foreground",children:"Neu"})]}),e.jsxs("p",{className:"text-xs text-muted-foreground mt-0.5",children:[s.author_name||"Trainerteam"," ·"," ",x(m(s.created_at),"d. MMM yyyy, HH:mm",{locale:f})]}),s.type==="event"&&s.event_at&&e.jsxs("div",{className:y("mt-2 inline-flex items-center gap-2 rounded-lg px-2.5 py-1.5 text-xs font-medium",Je(m(s.event_at))?"bg-muted/60 text-muted-foreground":"bg-amber-500/15 text-amber-600 dark:text-amber-400"),children:[e.jsx(U,{className:"w-3.5 h-3.5",strokeWidth:1.5}),x(m(s.event_at),"EEEE, d. MMMM yyyy 'um' HH:mm",{locale:f}),s.location&&e.jsxs("span",{children:["· ",s.location]})]}),s.content&&e.jsx("p",{className:"text-sm text-foreground/80 mt-2 whitespace-pre-wrap break-words",children:s.content}),s.file_url&&e.jsxs("a",{href:s.file_url,target:"_blank",rel:"noopener noreferrer",className:"mt-3 inline-flex items-center gap-2 rounded-lg border border-border/60 px-3 py-2 text-sm font-medium hover:bg-muted/50 transition-colors",children:[e.jsx(K,{className:"w-4 h-4 text-sky-500",strokeWidth:1.5}),s.file_name||"Dokument öffnen",e.jsx(ke,{className:"w-3.5 h-3.5 text-muted-foreground",strokeWidth:1.5})]}),s.type==="event"&&(()=>{const c=ee[s.id]||[],d=se[s.id],z=[{value:"yes",label:"Dabei",cls:"bg-emerald-500 text-white hover:bg-emerald-600 border-emerald-500"},{value:"maybe",label:"Vielleicht",cls:"bg-amber-500 text-white hover:bg-amber-600 border-amber-500"},{value:"no",label:"Nicht dabei",cls:"bg-destructive text-destructive-foreground hover:bg-destructive/90 border-destructive"}],pe=n=>c.filter(g=>g.response===n);return e.jsxs("div",{className:"mt-3 rounded-lg border border-border/50 bg-muted/30 px-3 py-2.5",children:[e.jsx("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground font-semibold mb-2",children:"Deine Rückmeldung"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:z.map(n=>e.jsx(r,{size:"sm",variant:"outline",className:y("h-8 text-xs",d===n.value&&n.cls),onClick:()=>ae(s.id,n.value),children:n.label},n.value))}),c.length>0&&e.jsx("div",{className:"mt-2.5 space-y-1.5",children:z.map(n=>{const g=pe(n.value);return g.length===0?null:e.jsxs("div",{className:"flex flex-wrap items-center gap-1.5",children:[e.jsxs("span",{className:"text-[11px] font-semibold text-muted-foreground w-24 shrink-0",children:[n.label," (",g.length,")"]}),g.map(H=>e.jsx(j,{variant:"secondary",className:"text-[10px] font-medium",children:H.responder_name||"Trainer"},H.user_id))]},n.value)})})]})})(),(()=>{const c=J[s.id]||[];return c.length===0?e.jsxs("p",{className:"mt-3 text-xs text-muted-foreground flex items-center gap-1.5",children:[e.jsx(F,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Noch niemand hat als gelesen markiert"]}):e.jsxs("div",{className:"mt-3 rounded-lg border border-border/50 bg-muted/30 px-3 py-2",children:[e.jsxs("p",{className:"text-[11px] uppercase tracking-wide text-muted-foreground font-semibold mb-1.5 flex items-center gap-1.5",children:[e.jsx(F,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Gelesen von ",c.length]}),e.jsx("div",{className:"flex flex-wrap gap-1.5",children:c.map(d=>e.jsxs(j,{variant:"secondary",className:"text-[10px] font-medium",title:x(m(d.read_at),"d. MMM yyyy, HH:mm",{locale:f}),children:[d.reader_name||"Trainer",e.jsx("span",{className:"ml-1 text-muted-foreground",children:x(m(d.read_at),"d.MM. HH:mm",{locale:f})})]},`${d.internal_id}-${d.user_id}`))})]})})(),e.jsxs("div",{className:"flex items-center gap-2 mt-3",children:[!he&&s.type!=="event"&&e.jsxs(r,{size:"sm",variant:"ghost",className:"gap-1.5 h-8",onClick:()=>le([s.id]),children:[e.jsx(q,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Gelesen"]}),e.jsx(r,{size:"sm",variant:"ghost",className:"gap-1.5 h-8",onClick:()=>D(s.id,{is_pinned:!s.is_pinned}),children:s.is_pinned?e.jsxs(e.Fragment,{children:[e.jsx(Ye,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Loslösen"]}):e.jsxs(e.Fragment,{children:[e.jsx($,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Anpinnen"]}
16)}),e.jsxs(r,{size:"sm",variant:"ghost",className:"gap-1.5 h-8",onClick:()=>oe(s),children:[e.jsx(Ue,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Bearbeiten"]}),e.jsxs(r,{size:"sm",variant:"ghost",className:"gap-1.5 h-8 text-destructive hover:text-destructive",onClick:()=>T(s.id),children:[e.jsx(Ke,{className:"w-3.5 h-3.5",strokeWidth:1.5})," Löschen"]})]})]})]})})})},s.id)})}),e.jsx(ye,{open:ce,onOpenChange:u,children:e.jsxs(_e,{className:"max-h-[90vh] overflow-y-auto sm:max-w-lg",children:[e.jsx(we,{children:e.jsx(Ce,{children:v?"Eintrag bearbeiten":"Neuer interner Eintrag"})}),e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{children:[e.jsx(h,{children:"Art"}),e.jsxs(Ie,{value:a.type,onValueChange:s=>l(t=>({...t,type:s})),children:[e.jsx(Pe,{className:"mt-1.5",children:e.jsx(We,{})}),e.jsx(ze,{children:R.map(s=>e.jsx(He,{value:s.value,children:s.label},s.value))})]})]}),e.jsxs("div",{children:[e.jsx(h,{children:"Titel"}),e.jsx(_,{className:"mt-1.5",value:a.title,onChange:s=>l(t=>({...t,title:s.target.value})),placeholder:"z. B. Trainersitzung im Vereinsheim"})]}),e.jsxs("div",{children:[e.jsx(h,{children:"Text"}),e.jsx(Te,{className:"mt-1.5 min-h-[110px]",value:a.content,onChange:s=>l(t=>({...t,content:s.target.value})),placeholder:"Wichtige Infos für das Trainerteam â¦"})]}),a.type==="event"&&e.jsxs("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[e.jsxs("div",{children:[e.jsx(h,{children:"Datum & Uhrzeit"}),e.jsx(_,{type:"datetime-local",className:"mt-1.5",value:a.event_at,onChange:s=>l(t=>({...t,event_at:s.target.value}))})]}),e.jsxs("div",{children:[e.jsx(h,{children:"Ort"}),e.jsx(_,{className:"mt-1.5",value:a.location,onChange:s=>l(t=>({...t,location:s.target.value})),placeholder:"Vereinsheim"})]})]}),e.jsx(Se,{label:"PDF / Link (optional)",placeholder:"https://â¦",value:a.file_url,onChange:s=>l(t=>({...t,file_url:s}))}),e.jsxs("div",{children:[e.jsx(h,{children:"Anzeigename der Datei (optional)"}),e.jsx(_,{className:"mt-1.5",value:a.file_name,onChange:s=>l(t=>({...t,file_name:s.target.value})),placeholder:"Protokoll Trainersitzung"})]}),e.jsxs("div",{className:"flex items-center justify-between rounded-lg border border-border/50 px-3 py-2.5",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-medium",children:"Oben anpinnen"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Wichtige Einträge bleiben ganz oben."})]}),e.jsx(Me,{checked:a.is_pinned,onCheckedChange:s=>l(t=>({...t,is_pinned:s}))})]})]}),e.jsxs(Ee,{children:[e.jsx(r,{variant:"outline",onClick:()=>u(!1),children:"Abbrechen"}),e.jsxs(r,{onClick:me,disabled:S||!a.title.trim(),children:[S&&e.jsx(B,{className:"w-4 h-4 mr-2 animate-spin"}),v?"Speichern":"Veröffentlichen"]})]})]})}),e.jsx(Le,{open:!!C,onOpenChange:s=>!s&&T(null),children:e.jsxs(Ve,{children:[e.jsxs(Oe,{children:[e.jsx(Be,{children:"Eintrag löschen?"}),e.jsx(Fe,{children:"Der Eintrag wird für alle Trainer und Betreuer entfernt. Das kann nicht rückgängig gemacht werden."})]}),e.jsxs(Re,{children:[e.jsx(qe,{children:"Abbrechen"}),e.jsx($e,{onClick:()=>{C&&ne(C),T(null)},children:"Löschen"})]})]})})]}):e.jsx("div",{className:"p-4 sm:p-6",children:e.jsx(N,{className:"border-border/40",children:e.jsxs(k,{className:"p-8 text-center space-y-3",children:[e.jsx(je,{className:"w-10 h-10 mx-auto text-muted-foreground"}),e.jsx("h2",{className:"text-lg font-semibold",children:"Kein Vereinsname hinterlegt"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Trage in den Team-Einstellungen einen Vereinsnamen ein â dann steht euch der gemeinsame Internas-Bereich zur Verfügung."})]})})})}export{xs as ClubInternalsPage,xs 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.