theme_guess/frontend/src
Gabriel Franco f0d08f3b50 feat(frontend): add private room UI flow (create/join/repeat)
- frontend/src/ui/privateRoomFlow.ts: create-room sub-flow (time/theme
  mode form, large shareable code, copy-to-clipboard with graceful
  no-op fallback, waiting-for-opponent state) and enter-code sub-flow
  (numeric input + inline room:error retry, no dead end). Handles
  room:joined for both themeMode:'random' (straight into the live
  match) and 'chosen' (vote-wait placeholder, TODO(#16) for the real
  vote modal). Listens for round:nextMatch to show a brief 'Match N of
  5' transition, and room:closed to show the reason and return to the
  main menu. A room with no active session yet (waiting alone, or
  mid-vote) is abandoned via a socket disconnect/reconnect cycle, since
  player:quit is a no-op server-side without a session to attach to.
- frontend/src/game/multiplayerMatch.ts: MultiplayerMatch now owns
  #split-view visibility (shown in startRound, hidden in
  teardownRound), mirroring botMatch.ts's existing convention — nothing
  previously made the opponent pane visible for a real multiplayer
  match.
- frontend/src/net/client.ts: exports a shared `client` GameClient
  singleton (connects on import) so private rooms and matchmaking use
  one socket instead of each constructing their own.
- frontend/index.html: adds the #private-room-mount overlay container.
- frontend/src/style.css: private-room-* styles for the code display,
  join form, and error/status text.
- frontend/src/main.ts: replaces only the enterCodeBtn/createRoomBtn
  TODO stubs with real privateRoomFlow wiring; findMatchBtn line
  untouched.
2026-09-10 14:07:20 -03:00
..
data feat(frontend): expand code snippet catalog for random selection 2026-09-10 11:45:28 -03:00
engine feat(frontend): add bot AI engine for pacing and accuracy 2026-09-10 11:45:28 -03:00
game feat(frontend): add private room UI flow (create/join/repeat) 2026-09-10 14:07:20 -03:00
net feat(frontend): add matchmaking UI flow (Find Match) 2026-09-10 14:07:00 -03:00
preview refactor(frontend): move to frontend/, port to Vite + TypeScript 2026-09-10 10:37:44 -03:00
ui feat(frontend): add private room UI flow (create/join/repeat) 2026-09-10 14:07:20 -03:00
main.ts feat(frontend): add private room UI flow (create/join/repeat) 2026-09-10 14:07:20 -03:00
style.css feat(frontend): add private room UI flow (create/join/repeat) 2026-09-10 14:07:20 -03:00
types.ts refactor(frontend): move to frontend/, port to Vite + TypeScript 2026-09-10 10:37:44 -03:00
vite-env.d.ts feat(frontend): add WebSocket client service with identity and typed messages 2026-09-10 11:54:48 -03:00