import { ChevronDown } from "lucide-react"
import {
DropdownMenu,
DropdownMenuContent,
DropdownMenuItem,
DropdownMenuTrigger,
} from "@/components/ui/dropdown-menu"
import { cn } from "@/lib/utils"
export type TournamentStatus = "draft" | "active" | "completed" | "archived"
const STATUS_CONFIG: Record<
TournamentStatus,
{ label: string; dot: string; badge: string }
> = {
draft: {
label: "Utkast",
dot: "bg-muted-foreground",
badge: "bg-muted text-foreground",
},
active: {
label: "Aktiv",
dot: "bg-primary",
badge: "bg-primary/15 text-foreground",
},
completed: {
label: "Fullført",
dot: "bg-brand-orange",
badge: "bg-brand-orange/12 text-foreground",
},
archived: {
label: "Arkivert",
dot: "bg-muted-foreground/50",
badge: "border border-border bg-transparent text-muted-foreground",
},
}
export function TournamentStatusBadge({ status }: { status: TournamentStatus }) {
const config = STATUS_CONFIG[status]
return (
{config.label}
)
}
// Redigerbar variant -- lar organisator sette status via PATCH
// /orgs/{id}/tournaments/{id} (ingen egen tilstandsmaskin/overgangsregler,
// samme tillitsnivå som resten av appen). Brukt i tournament-detail.tsx sin
// header; den skrivebeskyttede TournamentStatusBadge over brukes fortsatt i
// dashbordets read-only kortliste.
export function TournamentStatusPicker({
status,
onChange,
}: {
status: TournamentStatus
onChange: (status: TournamentStatus) => void
}) {
const config = STATUS_CONFIG[status]
return (
{config.label}
{(Object.keys(STATUS_CONFIG) as TournamentStatus[]).map((s) => (
onChange(s)}
className="flex cursor-pointer items-center gap-2 rounded-xl px-3 py-2.5 text-sm font-semibold"
>
{STATUS_CONFIG[s].label}
))}
)
}