Files
Cs2-Mapveto/client/src/lib/labels.js
T
SPP UserandClaude Opus 5.5 568ccf9b09 Frontend, README und Konfigurationsvorlage
React-Oberfläche mit Übersicht, Match-Erstellung, Beitritt über Team- und
Zuschauercodes, Teamkarten, visuellem Map-Veto, Serie und Serverpanel.
README beschreibt Einrichtung, Umgebungsvariablen, Rollen, Veto-Abläufe,
Serveradapter und CSTV-Zuschauerzugang.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 17:02:18 +01:00

52 lines
1.9 KiB
JavaScript

export const FORMAT_LABEL = { bo1: 'Best of 1', bo3: 'Best of 3', bo5: 'Best of 5' };
export const ROLE_LABEL = {
organizer: 'Organisator',
captain: 'Captain',
player: 'Spieler',
spectator: 'Zuschauer',
public: 'Gast',
};
/** Serverstatus in Worte fassen. Simulierte Server werden nie als laufend bezeichnet. */
export function serverLabel(server) {
if (!server) return { text: 'Kein Server', tone: 'muted' };
const sim = server.simulated;
switch (server.status) {
case 'starting':
return { text: sim ? 'Demo: Start wird simuliert' : 'Server startet', tone: 'pending' };
case 'ready':
return { text: sim ? 'Demo: simuliert bereit' : 'Server bereit', tone: sim ? 'demo' : 'ok' };
case 'configuring':
return { text: sim ? 'Demo: Konfiguration simuliert' : 'Server wird konfiguriert', tone: 'pending' };
case 'configured':
return { text: sim ? 'Demo: simuliert konfiguriert' : 'Server läuft', tone: sim ? 'demo' : 'ok' };
case 'start_failed':
return { text: 'Serverstart fehlgeschlagen', tone: 'error' };
case 'config_failed':
return { text: 'Konfiguration fehlgeschlagen', tone: 'error' };
case 'failed':
return { text: 'Server ausgefallen', tone: 'error' };
case 'stopped':
return { text: 'Server gestoppt', tone: 'muted' };
default:
return { text: server.status, tone: 'muted' };
}
}
export const STEP_VERB = { ban: 'bannt eine Map', pick: 'wählt eine Map', side: 'wählt die Startseite', decider: 'Entscheidungsmap' };
export function timeAgo(ts) {
const s = Math.round((Date.now() - ts) / 1000);
if (s < 60) return 'gerade eben';
const m = Math.round(s / 60);
if (m < 60) return `vor ${m} Min.`;
const h = Math.round(m / 60);
if (h < 24) return `vor ${h} Std.`;
return new Date(ts).toLocaleDateString('de-DE');
}
export function clock(ts) {
return new Date(ts).toLocaleTimeString('de-DE', { hour: '2-digit', minute: '2-digit', second: '2-digit' });
}