Merge feature/public-live-view in main

This commit is contained in:
mregosar committed 2026-10-29 14:37:04 +01:00
commit 1a0ab7ef00
2 files changed
+6 -6

No files matched your search

+5 -5
View File
@@ -127,7 +127,7 @@ export default function MatchPage() {
{viewer.role === 'public' && <PublicNotice />} {viewer.role === 'public' && <PublicNotice />}
<div className={`match-grid ${state.status !== 'lobby' && viewer.role !== 'public' ? 'stage-wide' : ''}`}> <div className={`match-grid ${state.status !== 'lobby' ? 'stage-wide' : ''}`}>
<TeamCard team={state.teams.A} side="A" {...ctx} /> <TeamCard team={state.teams.A} side="A" {...ctx} />
<section className="stage"> <section className="stage">
<Stage {...ctx} /> <Stage {...ctx} />
@@ -156,8 +156,8 @@ function describeViewer(viewer, teams) {
function Stage(ctx) { function Stage(ctx) {
const { state, isOrg, act, busy } = ctx; const { state, isOrg, act, busy } = ctx;
if (state.viewer.role === 'public') { if (state.viewer.role === 'public' && state.status === 'lobby') {
return <div className="stage-note"><h2>{state.statusLabel}</h2><p className="muted">Details sehen nur Teilnehmer.</p></div>; return <div className="stage-note"><h2>{state.statusLabel}</h2><p className="muted">Das Veto und der Spielstand erscheinen hier, sobald das Match startet.</p></div>;
} }
if (state.status === 'lobby') { if (state.status === 'lobby') {
const { A, B } = state.teams; const { A, B } = state.teams;
@@ -230,8 +230,8 @@ function MapPoolPreview({ maps }) {
function PublicNotice() { function PublicNotice() {
return ( return (
<div className="alert"> <div className="alert">
Du siehst diese Lobby ohne Zugang. Spieler treten über den Einladungslink ihres Teams bei, Du siehst dieses Match ohne Zugang. Veto, Serienstand und Ergebnisse sind öffentlich.
Zuschauer über den Zuschauerlink. Beides bekommst du vom Organisator. Teamdetails und Verbindungsdaten gibt es nur für Teilnehmer.
</div> </div>
); );
} }
+1 -1
View File
@@ -892,7 +892,7 @@ export class MatchService extends EventEmitter {
requireFullTeams: this.config.requireFullTeams, requireFullTeams: this.config.requireFullTeams,
autoAdvanceSeconds: this.config.autoAdvanceSeconds, autoAdvanceSeconds: this.config.autoAdvanceSeconds,
maps: pool.maps, maps: pool.maps,
veto: publicView veto: publicView && match.status === 'lobby'
? null ? null
: { : {
started: match.status !== 'lobby', started: match.status !== 'lobby',