Dashboard

The home page (/) shows the authenticated user's game dashboard.

Component hierarchy

Welcome → Main → Me
File Role
Welcome.js Home page wrapper
Main.js Layout shell for dashboard
Me.js Dashboard logic and tables

Data loading

Me.js fetches the full me auth query on mount and when refresh increments. The response drives:

Partial me data may already be in Zustand globalMe from navbar login; Me merges and extends it.

Tables

Component Content
MyTurnTable.js Games where it is the user's turn
TheirTurnTable.js Games waiting on opponent
CompletedGamesTable.js Finished games
StandingChallengeTable.js Active standing challenges

Challenges

Modal flows for creating and responding to challenges:

Backend semantics: Challenges.

Profile creation

If the user has no profile, NewProfile.js is shown before the dashboard tables.

WebSocket refresh

Dashboard tables update when WebSocket messages arrive (e.g. opponent moved, new challenge). See WebSockets.

Related