Skip to content

Frontend: mustering in the staging list and on the game card #1272

Description

@johnpooch

Goal

Surface mustering games in the My Games staging list and on the game card, including the inline confirm action.

Context

Step 5 of the mustering series, and the first user-visible one. Implementation on claude/game-mustering-state-ah1fw2 (PR #1235). Depends on step 4 for the wire fields.

Approach

packages/web/src/screens/Home/MyGames.tsx: the Staging tab's statusFilter becomes pending,mustering, and mustering games are pulled out into a "Ready to start" section above a "Waiting for players" heading, with a muted line explaining that these games begin once every player confirms.

packages/web/src/components/GameCard.tsx: a MUSTER_STATUS_CONFIG badge (confirmation required / ready), a countdown to musterDeadline via RemainingTimeDisplay in the place the phase deadline line occupies, and an inline Confirm button in the join button's position, calling useGameMusterCreate.

Tests: the mustering games block added to packages/web/src/components/GameCard.test.tsx and the MyGames mustering section block added to packages/web/src/screens/Home/MyGames.test.tsx.

Screenshots are required in the PR description — see CLAUDE.md and the screenshots skill.

One thing to decide rather than copy: the branch changes the card's badge cluster gate from (game.sandbox || isActive || isFinished) && badgeCluster to an unconditional badgeCluster (GameCard.tsx), which affects pending cards too, not just mustering ones. Either justify that as an intended change or narrow the gate to include isMustering only.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions