1. Migrasjon — kjør 013_messaging.sql mot ekte teecup_db (ny message-tabell, RLS, ingen endring av eksisterende data). 2. Backend + frontend — docker compose up -d --build teecup_api teecup_frontend. 3. Caddy — legger til /ws/*-ruten i /opt/teeoff/deploy/Caddyfile (allerede skrevet og syntaks-validert). Som i alle tidligere runder som har rørt denne filen: en graceful reload plukker historisk IKKE opp endringen (stale bind-mount-inode), så det trengs en full docker restart teeoff_caddy — det gir noen sekunders nedetid for teeoff.no også, ikke bare teecup.teeoff.no. Etter alt dette: sjekke /health + /dashboard → 200, en reell WebSocket-tilkobling fungerer over wss://teecup.teeoff.no/ws/..., og teeoff.no er tilbake på 200.
36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import { TeamChat } from "@/components/team-chat"
|
|
|
|
export default async function TeamChatPage({
|
|
params,
|
|
searchParams,
|
|
}: {
|
|
params: Promise<{ id: string; teamId: string }>
|
|
searchParams: Promise<{ org?: string; name?: string; team?: string }>
|
|
}) {
|
|
const { id, teamId } = await params
|
|
const { org, name, team } = await searchParams
|
|
const tournamentName = name?.trim() || "Turnering"
|
|
const teamName = team?.trim() || "Laget"
|
|
|
|
// Samme grunn som de andre turnering-undersidene: API-et krever
|
|
// organization_id på alle team-scopede endepunkter (RLS, se ADR-001/003).
|
|
if (!org) {
|
|
return (
|
|
<main className="flex min-h-[100dvh] flex-col items-center justify-center gap-2 bg-background px-5 text-center">
|
|
<p className="text-sm font-medium text-destructive">
|
|
Mangler organisasjon i lenken. Gå tilbake til dashbordet og prøv igjen.
|
|
</p>
|
|
</main>
|
|
)
|
|
}
|
|
|
|
return (
|
|
<TeamChat
|
|
organizationId={org}
|
|
tournamentId={id}
|
|
teamId={teamId}
|
|
teamName={teamName}
|
|
tournamentName={tournamentName}
|
|
/>
|
|
)
|
|
}
|