Overview
-Tournament dashboard — detailed views coming in Plan N.
- {#if tournament.clock} -
-
- Players
- {tournament.remainingPlayers}/{tournament.totalPlayers}
+ {@const clock = tournament.clock}
+
+
+
+
+
+
+
+
+
+
+
{:else}
+
+
diff --git a/frontend/src/routes/tables/+page.svelte b/frontend/src/routes/tables/+page.svelte
index 55e8f9b..78898be 100644
--- a/frontend/src/routes/tables/+page.svelte
+++ b/frontend/src/routes/tables/+page.svelte
@@ -1,35 +1,234 @@
+ {tournament.remainingPlayers} / {tournament.totalPlayers}
+ remaining
-
- Tables
- {tournament.activeTables}
-
-
- Level
- {tournament.clock.level}
-
-
- Blinds
- {tournament.clock.small_blind}/{tournament.clock.big_blind}
+
+
+
+ {#if tournament.balanceStatus}
+ {#if tournament.isBalanced}
+
+ {tournament.bustedPlayers} busted
+ Avg: {formatNumber(tournament.averageStack)}
+ {#if tournament.totalChips > 0}
+
+ Total chips: {formatNumber(tournament.totalChips)}
+
+ {/if}
+
+ Tables balanced
+
+ {:else}
+
+ {/if}
+ {/if}
+
+
+ {#if tournament.financials}
+ {@const fin = tournament.financials}
+
+ {/if}
+
+
+ No active tournament. Start or join a tournament to see the overview.
{/if}
- String(item['id'])}
+
+ {#if moveSource}
+ {@const srcPlayer = tournament.players.find(
+ (p) => p.table_id === moveSource?.tableId && p.seat === moveSource?.seatNumber
+ )}
+
+ {/if}
+
+
+
+
+
+ {#if confirmingBreak}
+ {@const breakTable = tournament.tables.find((t) => t.id === confirmingBreak)}
+
+ {/if}
Tables
-Active tables and seating.
+
+
-
+
+ Tables
++ {tournament.tables.length} tables, {tournament.remainingPlayers} players seated +
+
+ {#if tournament.tables.length > 1}
+
+ {/if}
+
+
+
+
+ {/if}
+
+
+ {#if viewMode === 'oval'}
+ {#if tournament.tables.length === 0}
+
+
+ + Distribute {breakTable?.players.length ?? 0} players from Table {breakTable?.number ?? '?'} to remaining tables? +
+
+
+
+
+ No tables set up yet.
+ {:else} +
+ {#each tournament.tables as table (table.id)}
+
+ {/if}
+ {:else}
+
+
+
+ {/each}
+
+ {#if tournament.tables.length > 1}
+
+ {/if}
+
+