diff --git a/app/features/tournament-bracket/components/BracketMapListDialog.tsx b/app/features/tournament-bracket/components/BracketMapListDialog.tsx index d30d362b6..3f75df21d 100644 --- a/app/features/tournament-bracket/components/BracketMapListDialog.tsx +++ b/app/features/tournament-bracket/components/BracketMapListDialog.tsx @@ -34,7 +34,6 @@ export function BracketMapListDialog({ bracket: Bracket; bracketIdx: number; }) { - const { t } = useTranslation(["tournament"]); const toSetMapPool = useTournamentToSetMapPool(); const fetcher = useFetcher(); const tournament = useTournament(); @@ -234,7 +233,7 @@ export function BracketMapListDialog({ _action="START_BRACKET" className="mx-auto" > - {t("tournament:bracket.finalize.action")} + Start the bracket ) : (
diff --git a/app/features/tournament-bracket/routes/to.$id.brackets.tsx b/app/features/tournament-bracket/routes/to.$id.brackets.tsx index 0f20ebb82..0b0dfba48 100644 --- a/app/features/tournament-bracket/routes/to.$id.brackets.tsx +++ b/app/features/tournament-bracket/routes/to.$id.brackets.tsx @@ -284,6 +284,12 @@ export default function TournamentBracketsPage() { return null; }; + const totalTeamsAvailableForTheBracket = () => + bracketIdx === 0 + ? tournament.ctx.teams.length + : (bracket.teamsPendingCheckIn ?? []).length + + bracket.data.participant.length; + return (
{visibility !== "hidden" && !tournament.everyBracketOver ? ( @@ -314,27 +320,30 @@ export default function TournamentBracketsPage() { {t("tournament:bracket.wip")} ) : ( - - {t("tournament:bracket.finalize.text")}{" "} - {bracket.canBeStarted ? ( - - ) : ( - {t("tournament:bracket.finalize.action")} - } - triggerClassName="tiny outlined" - > - {bracketIdx === 0 - ? t("tournament:bracket.beforeStart") - : t("tournament:bracket.waitingForResults")} - - )} - +
+ + {bracket.data.participant.length}/ + {totalTeamsAvailableForTheBracket()} teams checked in + {bracket.canBeStarted ? ( + + ) : null} + + {!bracket.canBeStarted ? ( +
+ ⚠️{" "} + {bracketIdx === 0 ? ( + <>Tournament start time is in the future + ) : ( + <>Teams pending from the previous bracket + )}{" "} + (blocks starting) +
+ ) : null} +
)}
) : null} @@ -413,7 +422,6 @@ function BracketStarter({ bracket: BracketType; bracketIdx: number; }) { - const { t } = useTranslation(["tournament"]); const [dialogOpen, setDialogOpen] = React.useState(false); const isMounted = useIsMounted(); @@ -433,7 +441,7 @@ function BracketStarter({ testId="finalize-bracket-button" onClick={() => setDialogOpen(true)} > - {t("tournament:bracket.finalize.action")} + Start the bracket ); diff --git a/app/features/tournament-bracket/tournament-bracket.css b/app/features/tournament-bracket/tournament-bracket.css index face89b65..f4b565222 100644 --- a/app/features/tournament-bracket/tournament-bracket.css +++ b/app/features/tournament-bracket/tournament-bracket.css @@ -11,6 +11,13 @@ line-height: 1.4; } +.tournament-bracket__mini-alert { + background-color: var(--theme-info-transparent); + font-size: var(--fonts-xxs); + border-radius: var(--rounded); + padding: var(--s-1) var(--s-2); +} + .tournament-bracket__infos { display: flex; flex-direction: column; diff --git a/locales/en/tournament.json b/locales/en/tournament.json index 167481641..41dc330a7 100644 --- a/locales/en/tournament.json +++ b/locales/en/tournament.json @@ -109,10 +109,6 @@ "bracket.waiting": "Bracket will be shown here when at least {{count}} teams have registered", "bracket.waiting.checkin": "Bracket will be shown here when at least {{count}} teams have checked in", "bracket.wip": "This bracket is a preview and subject to change", - "bracket.finalize.text": "When everything looks good, finalize the bracket to allow matches to be played", - "bracket.finalize.action": "Finalize", - "bracket.beforeStart": "Bracket can't be started yet as it is before the start time", - "bracket.waitingForResults": "Bracket can't be started yet as it is waiting for results of the previous bracket", "bracket.progress.thanksForPlaying": "Thanks for playing in {{eventName}}!", "bracket.progress.match": "Current opponent: {{opponent}}", diff --git a/locales/fr/tournament.json b/locales/fr/tournament.json index 40ce9f269..8b26dc767 100644 --- a/locales/fr/tournament.json +++ b/locales/fr/tournament.json @@ -98,8 +98,6 @@ "bracket.waiting": "Le bracket sera affiché ici quand au moins {{count}} équipes seront inscrites", "bracket.wip": "Ce bracket est un aperçu et sujet à changement", - "bracket.finalize.action": "Finaliser", - "bracket.beforeStart": "Le bracket ne peut pas encore démarrer car il est avant l'heure du début.", "bracket.progress.thanksForPlaying": "Merci d'avoir participé à {{eventName}} !", "bracket.progress.match": "Adversaire actuel: {{opponent}}", diff --git a/locales/he/tournament.json b/locales/he/tournament.json index eada0b544..54aae0425 100644 --- a/locales/he/tournament.json +++ b/locales/he/tournament.json @@ -98,8 +98,6 @@ "bracket.waiting": "מערכים יופיעו כאן כאשר לפחות {{count}} צוותים נרשמו", "bracket.wip": "מערך זה הוא תצוגה מקדימה ונתון לשינויים", - "bracket.finalize.action": "סיימו", - "bracket.beforeStart": "מערך עדיין לא ניתן להפעלה כפי שהוא לפני שעת ההתחלה", "bracket.progress.thanksForPlaying": "תודה ששיחקתם ב-{{eventName}}!", "bracket.progress.match": "יריב נוכחי: {{opponent}}", diff --git a/locales/ja/tournament.json b/locales/ja/tournament.json index 075b1dcbd..ccf2e66ca 100644 --- a/locales/ja/tournament.json +++ b/locales/ja/tournament.json @@ -98,8 +98,6 @@ "bracket.waiting": "ブラケットは、少なくとも {{count}} チームが登録した時点で表示されます", "bracket.wip": "このブラケットはまだプレビューで、変更される可能性があります", - "bracket.finalize.action": "確定", - "bracket.beforeStart": "開始時間前なのでブラケットを開始することができません", "bracket.progress.thanksForPlaying": "{{eventName}} への参加ありがとうございます!", "bracket.progress.match": "現在の対戦者: {{opponent}}", diff --git a/locales/pt-BR/tournament.json b/locales/pt-BR/tournament.json index afaf28e8f..90e70a1f7 100644 --- a/locales/pt-BR/tournament.json +++ b/locales/pt-BR/tournament.json @@ -98,8 +98,6 @@ "bracket.waiting": "O bracket será mostrado aqui quando ao menos {{count}} times estiverem registrados", "bracket.wip": "Esse bracket é uma prévia e poderá mudar", - "bracket.finalize.action": "Finalizar Bracket", - "bracket.beforeStart": "O bracket não pode ser iniciado pois ainda é antes da hora de início do torneio", "bracket.progress.thanksForPlaying": "Obrigado por participar do(a) {{eventName}}!", "bracket.progress.match": "Oponente atual: {{opponent}}", diff --git a/locales/zh/tournament.json b/locales/zh/tournament.json index 27be8d67a..d21943620 100644 --- a/locales/zh/tournament.json +++ b/locales/zh/tournament.json @@ -98,8 +98,6 @@ "bracket.waiting": "至少 {{count}} 支队伍报名后,对战表将显示在这里", "bracket.wip": "此对战表为可调整的预览", - "bracket.finalize.action": "生成", - "bracket.beforeStart": "还未到比赛开始时间,对战表目前无法开始", "bracket.progress.thanksForPlaying": "感谢您参与 {{eventName}}!", "bracket.progress.match": "当前对手: {{opponent}}",