PageSourceSearch

https://sunset-spike.up.railway.app/assets/index-D9To0h-o.js

js sunset-spike.up.railway.app collected 2026-10-03 12:15:40 UTC 5,444 bytes, 1 lines download raw bytes

1import{u as D,m as A,ai as E,j as e,cS as P,cT as L,B as j,cU as $,cV as O,cW as f,X as K,cu as R,dK as _,cY as B,dL as X,dM as Y,bC as q,bJ as H,l as J,dN as Q,dO as U,g as V}from"./index-onZ-siV6.js";import{r as l}from"./sentry-CwTBLAGw.js";import{A as W}from"./AdminPageHeader-DMjmiDyT.js";import{D as z}from"./data-table-CvtVVMM-.js";import{T as G,a as Z,C as ee}from"./TournamentAdminShell-Cr-RZZxh.js";import{E as ae}from"./ellipsis-CqZmNbLA.js";import{M as te}from"./message-square-PFdoGffr.js";import"./utils-SJutkBrZ.js";import"./posthog-C-TxGGwT.js";import"./table-Cdw6YMfO.js";import"./ImageSection-ECMjbBdW.js";import"./useTournamentAdminAction-0dlDqpK3.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"36665b27cc5c935a9a1384aae7c036cb424779c4"};var r=new a.Error().stack;r&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[r]="92825a84-2a50-4460-98ea-1e0a9e241d92",a._sentryDebugIdIdentifier="sentry-dbid-92825a84-2a50-4460-98ea-1e0a9e241d92")}catch{}})();function ne({onManageAnnouncements:a,onCancelTournament:r}){const{t}=D("tournaments",{keyPrefix:"admin"}),{formatDate:o}=A(),i=E();return l.useMemo(()=>[{accessorKey:"eventTitle",header:t("management.columns.tournament"),cell:({row:s})=>e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"font-medium",children:s.original.eventTitle}),e.jsxs("div",{className:"text-xs text-muted-foreground",children:[o(s.original.eventFromDate)," · ",s.original.location]})]})},{accessorKey:"status",header:t("management.columns.status"),cell:({row:s})=>e.jsx(G,{status:s.original.status})},{accessorKey:"confirmedTeamsCount",header:t("management.columns.teams"),cell:({row:s})=>`${s.original.confirmedTeamsCount}/${s.original.maxTeams??"∞"}`},{accessorKey:"registrationClosesAt",header:t("management.columns.registrationCloses"),cell:({row:s})=>o(s.original.registrationClosesAt)},{id:"actions",meta:{interactive:!0},header:()=>e.jsx("span",{className:"float-right",children:t("management.rowActions.label")}),cell:({row:s})=>{const c=s.original,m=c.eventSlug;return e.jsxs(P,{children:[e.jsx(L,{asChild:!0,className:"float-right",children:e.jsxs(j,{variant:"ghost",className:"h-8 w-8 p-0",children:[e.jsx("span",{className:"sr-only",children:t("management.rowActions.openMenu")}),e.jsx(ae,{className:"h-4 w-4"})]})}),e.jsxs($,{align:"end",children:[e.jsx(O,{children:t("management.rowActions.label")}),e.jsxs(f,{onClick:()=>i({to:"/manage/tournaments/$tournamentId",params:{tournamentId:c.id}}),children:[e.jsx(K,{className:"h-4 w-4"}),t("management.rowActions.manage")]}),m&&e.jsxs(f,{onClick:()=>i({to:"/events/$slug",params:{slug:m}}),children:[e.jsx(R,{className:"h-4 w-4"}),t("management.rowActions.viewPublicPage")]}),e.jsxs(f,{onClick:()=>a(c),children:[e.jsx(te,{className:"h-4 w-4"}),t("management.rowActions.announcements")]}),_(c.status)&&e.jsxs(e.Fragment,{children:[e.jsx(B,{}),e.jsxs(f,{onClick:()=>r(c),className:"text-destructive focus:text-destructive",children:[e.jsx(X,{className:"h-4 w-4"}),t("cancel.action")]})]})]})]})}}],[t,o,i,a,r])}const N=V("/manage/tournaments/");function se(a,{search:r,status:t,timeframe:o}){if(t!=="all"&&a.status!==t)return!1;if(o!=="all"){const i=new Date().toISOString().slice(0,10),s=a.eventFromDate<i;if(o==="past"?!s:s)return!1}if(r){const i=r.toLowerCase();if(!`${a.eventTitle} ${a.location}`.toLowerCase().includes(i))return!1}return!0}function re(){const{t:a}=D("tournaments",{keyPrefix:"admin"}),r=N.useSearch(),t=N.useNavigate(),{data:o,isLoading:i,isError:s}=Y(),[c,m]=l.useState(!1),[T,w]=l.useState(null),[x,v]=l.useState(null),u=r.search??"",h=r.status??"all",p=r.timeframe??"all",[d,y]=l.useState(u);l.useEffect(()=>{if(d===u)return;const n=setTimeout(()=>{t({search:g=>({...g,search:d||void 0}),replace:!0})},500);return()=>clearTimeout(n)},[d,u,t]);const b=(n,g)=>{t({search:k=>({...k,[n]:g&&g!=="all"?g:void 0}),replace:!0})},S=()=>{y(""),t({search:{},replace:!0})},C=!!d||h!=="all"||p!=="all",M=l.useMemo(()=>(o??[]).filter(n=>se(n,{search:u,status:h,timeframe:p})),[o,u,h,p]),F=ne({onManageAnnouncements:l.useCallback(n=>w(n.eventId),[]),onCancelTournament:l.useCallback(n=>v(n),[])}),I=e.jsxs(j,{onClick:()=>m(!0),children:[e.jsx(q,{className:"h-4 w-4"}),a("management.createButton")]});
1return e.jsxs(H,{children:[e.jsx(W,{title:a("management.title"),description:a("management.description"),action:I}),e.jsx(z,{data:M,columns:F,isLoading:i,isError:s,errorMessage:a("management.error"),toolbar:e.jsx(Q,{searchTerm:d,onSearchChange:y,status:h,onStatusChange:n=>b("status",n),timeframe:p,onTimeframeChange:n=>b("timeframe",n),showClearFilters:C,onClearFilters:S}),emptyState:e.jsxs("div",{className:"flex flex-col items-center gap-3 py-16 text-center",children:[e.jsx(J,{className:"h-8 w-8 text-muted-foreground"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:a(C?"management.filters.noResults":"management.empty")}),C?e.jsx(j,{variant:"outline",onClick:S,children:a("management.filters.clear")}):I]}),rowLink:n=>({to:"/manage/tournaments/$tournamentId",params:{tournamentId:n.id}})}),e.jsx(Z,{open:c,onOpenChange:m,onSuccess:n=>t({to:"/manage/tournaments/$tournamentId",params:{tournamentId:n}})}),T&&e.jsx(U,{eventId:T,open:!0,onClose:()=>w(null)}),e.jsx(ee,{tournamentId:x?.id??null,eventId:x?.eventId,open:!!x,onOpenChange:n=>{n||v(null)}})]})}const Ce=re;export{Ce 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.