1import{a7 as I,r as x,d as B,j as e,S as l,f as r,i as d,H as v,B as b,bm as D,M as y,g as T,h as $,T as w,x as n,ag as U,C as E}from"./index-DKbmQBBZ.js";import{W as S}from"./wifi-off-ChbleOM0.js";import{W as G}from"./wifi-gcax2nux.js";import{A as W}from"./activity-JN-ZehkC.js";function z(){const o=I(),h=parseInt(o.eventId||"0"),u=parseInt(o.personId||"0"),[A,k]=x.useState(new Date),j=x.useRef(""),{data:t,isLoading:C,isError:f,dataUpdatedAt:F}=B({queryKey:["/api/event-live",h,"status",u],enabled:h>0&&u>0,refetchInterval:1e4});x.useEffect(()=>{if(t){const s=JSON.stringify(t);s!==j.current&&(j.current=s,k(new Date))}},[t]);const L=!!t&&!f,c=t?.games.filter(s=>s.status==="ACTIVE")||[],N=t?.myGames.filter(s=>c.some(a=>a.id===s.gameId))||[],m=t?.courts.filter(s=>t.myCourtAssignments.includes(s.id)).map(s=>s.name)||[];return C?e.jsxs("div",{className:"min-h-screen bg-background p-4 space-y-4",children:[e.jsx(l,{className:"h-12 w-full"}),e.jsx(l,{className:"h-32 w-full"}),e.jsx(l,{className:"h-32 w-full"}),e.jsx(l,{className:"h-32 w-full"})]}):f||!t?e.jsx("div",{className:"min-h-screen bg-background flex items-center justify-center p-4",children:e.jsx(r,{className:"max-w-md w-full",children:e.jsxs(d,{className:"py-8 text-center",children:[e.jsx(S,{className:"h-12 w-12 mx-auto mb-3 text-muted-foreground"}),e.jsx("h2",{className:"text-lg font-semibold mb-1",children:"Unable to load event"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"Check your connection and try again."}),e.jsx(v,{href:"/family",children:e.jsx(b,{variant:"outline",className:"mt-4","data-testid":"button-back-dashboard",children:"Back to Dashboard"})})]})})}):e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx("div",{className:"border-b bg-card sticky top-0 z-10",children:e.jsx("div",{className:"max-w-xl mx-auto px-4 py-3",children:e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx(v,{href:"/family",children:e.jsx(b,{variant:"ghost",size:"icon","data-testid":"button-back",children:e.jsx(D,{className:"h-4 w-4"})})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("h1",{className:"text-base font-semibold truncate","data-testid":"text-event-title",children:t.event.title}),e.jsx("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:t.event.location&&e.jsxs("span",{className:"flex items-center gap-1",children:[e.jsx(y,{className:"h-3 w-3"})," ",t.event.location]})})]}),e.jsx("div",{className:"flex items-center gap-1","data-testid":"status-connection",children:L?e.jsx(G,{className:"h-4 w-4 text-green-500"}):e.jsx(S,{className:"h-4 w-4 text-red-500"})})]})})}),e.jsxs("div",{className:"max-w-xl mx-auto px-4 py-4 space-y-4",children:[(m.length>0||N.length>0)&&e.jsxs(r,{className:"border-primary/30 bg-primary/5","data-testid":"card-my-status",children:[e.jsx(T,{className:"pb-2",children:e.jsxs($,{className:"text-sm flex items-center gap-2",children:[e.jsx(W,{className:"h-4 w-4 text-primary"}),"Your Status"]})}),e.jsxs(d,{className:"space-y-2",children:[m.length>0&&e.jsxs("div",{className:"text-sm","data-testid":"text-my-court",children:[e.jsx("span",{className:"text-muted-foreground",children:"Court:"})," ",e.jsx("span",{className:"font-medium",children:m.join(", ")})]}),N.map(s=>{const a=c.find(i=>i.id===s.gameId);return a?e.jsxs("div",{className:"text-sm","data-testid":`text-my-game-${s.gameId}`,children:[e.jsxs("span",{className:"text-muted-foreground",children:["Game #",a.gameNumber,":"]})," ",e.jsxs("span",{className:"font-medium",children:[s.side==="A"?a.sideALabel:a.sideBLabel," (Side ",s.side,")"]})," â ",e.jsxs("span",{className:"font-bold",children:[a.sideAScore," - ",a.sideBScore]})]},s.gameId):null})]})]}),c.length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(w,{className:"h-4 w-4 text-green-600"}),"Active Games"]}),c.map(s=>{const a=t.courts.find(i=>i.id===s.eventCourtId);return e.jsx(r,{"data-testid":`card-active-game-${s.id}`,children:e.jsxs(d,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-2",children:[e.jsxs("span",{className:"text-xs font-medium text-muted-foreground",children:["Game #",s.gameNumber,a?` · ${a.name}`:""]}),e.jsx(n,{className:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400 text-xs",variant:"outline",children:"Live"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-center flex-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s.sideALabel||"Side A"}),e.jsx("div",{className:"text-2xl font-bold","data-testid":`text-live-score-a-${s.id}`,children:s.sideAScore})]}),e.jsx("div",{className:"text-muted-foreground text-sm",children:"vs"}),e.jsxs("div",{className:"text-center flex-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s.sideBLabel||"Side B"}),e.jsx("div",{className:"text-2xl font-bold","data-testid":`text-live-score-b-${s.id}`,children:s.sideBScore})]})]})]})},s.id)})]}),t.courts.length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(y,{className:"h-4 w-4"}),"Courts & Stations"]}),e.jsx("div",{className:"grid gap-2",children:t.courts.map(s=>
1{const a=t.myCourtAssignments.includes(s.id);return e.jsx(r,{className:a?"border-primary/40 bg-primary/5":"","data-testid":`card-court-${s.id}`,children:e.jsx(d,{className:"py-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsxs("div",{className:"text-sm font-medium flex items-center gap-2",children:[s.name,a&&e.jsx(n,{variant:"outline",className:"text-xs bg-primary/10 text-primary",children:"Your Court"})]}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[s.courtType," #",s.courtNumber,s.coachName?` · Coach: ${s.coachName}`:""]})]}),e.jsx(n,{variant:"outline",className:s.status==="IN_USE"?"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400":s.status==="CLOSED"?"bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400":"bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400",children:s.status==="IN_USE"?"In Use":s.status})]})})},s.id)})})]}),t.games.filter(s=>s.status==="FINAL").length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(w,{className:"h-4 w-4 text-muted-foreground"}),"Completed Games"]}),t.games.filter(s=>s.status==="FINAL").map(s=>e.jsx(r,{className:"opacity-80","data-testid":`card-final-game-${s.id}`,children:e.jsxs(d,{className:"py-3",children:[e.jsxs("div",{className:"flex items-center justify-between mb-1",children:[e.jsxs("span",{className:"text-xs text-muted-foreground",children:["Game #",s.gameNumber]}),e.jsx(n,{variant:"outline",className:"text-xs",children:"Final"})]}),e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-center flex-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s.sideALabel||"Side A"}),e.jsx("div",{className:`text-lg font-bold ${s.winnerSide==="A"?"text-green-600":""}`,children:s.sideAScore})]}),e.jsx("div",{className:"text-muted-foreground text-xs",children:"vs"}),e.jsxs("div",{className:"text-center flex-1",children:[e.jsx("div",{className:"text-xs text-muted-foreground",children:s.sideBLabel||"Side B"}),e.jsx("div",{className:`text-lg font-bold ${s.winnerSide==="B"?"text-green-600":""}`,children:s.sideBScore})]})]})]})},s.id))]}),t.dates.length>0&&e.jsxs("div",{className:"space-y-3",children:[e.jsxs("h2",{className:"text-sm font-medium flex items-center gap-2",children:[e.jsx(U,{className:"h-4 w-4"}),"Schedule"]}),t.dates.map(s=>{const a=new Date(s.startDateTime),i=s.endDateTime?new Date(s.endDateTime):new Date(a.getTime()+7200*1e3),g=new Date,p=g>=a&&g<=i;return e.jsx(r,{className:p?"border-green-300 dark:border-green-700":"","data-testid":`card-date-${s.id}`,children:e.jsx(d,{className:"py-3",children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{children:[e.jsx("div",{className:"text-sm font-medium",children:s.dayLabel||a.toLocaleDateString("en-US",{weekday:"short",month:"short",day:"numeric"})}),e.jsxs("div",{className:"text-xs text-muted-foreground flex items-center gap-1",children:[e.jsx(E,{className:"h-3 w-3"}),a.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})," â ",i.toLocaleTimeString("en-US",{hour:"numeric",minute:"2-digit"})]})]}),p&&e.jsx(n,{className:"bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400",variant:"outline",children:"Now"})]})})},s.id)})]}),e.jsxs("div",{className:"text-center text-xs text-muted-foreground pt-2 pb-8","data-testid":"text-last-updated",children:["Auto-refreshing · Last updated ",A.toLocaleTimeString()]})]})]})}export{z 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.