feat(lobby): port the cu-03 lobby screen with all three states#22
Merged
Conversation
Wires the Lobby destination to a real screen rendering the success, loading and error variants from the mockup. The success state uses the StackCard/BalancePill/Skeleton/ErrorState components shipped in #21. - Header: avatar, greeting and notifications button with unread badge. - Balance hero: AVAILABLE label, PnL chip on its own slot (fades to alpha 0 on hide so the row never shifts), session stats on a second line, amount stacked with the masked dots so toggling visibility does not shift any surrounding layout, currency dropdown switching USDC and USDT, and the locked column on the right. - Games grid: Roulette, Blackjack, Crash (LAST PLAYED, badge inset 8dp with the icon dropped 16dp and a shorter icon-to-title gap so the card height matches its row siblings), Mines and a full-width Coinflip card. - Quick Actions: Deposit (down arrow, ok-green) and Withdraw (up arrow, warn-amber) routing to the wallet. - Recent activity: three rows backed by StackCard with the win/loss left accent stripe. - Nep FAB overlay aligned to the bottom-right of the scroll area. LobbyPreviewData seeds the @Preview composables and the live nav-host until the Firestore-backed ViewModel ships in a later card. Promotes Modifier.gridBackground out of LoginScreenEffects into ui/components so the lobby and the upcoming primary screens share it.
4 tasks
netqo
added a commit
that referenced
this pull request
May 27, 2026
* refactor(lobby): drop dead Coinflip icon fallback GameKey.iconRes() returned the Crash drawable for Coinflip with a note that the branch only existed to keep the when exhaustive. That was a latent bug: RecentRoundRow walks every GameKey, so a Coinflip round would render with the wrong icon. Adds a proper coinflip drawable (two overlapping circles) and points the when branch at it. Also drops the leftover "notifications sheet deferred" comment at the LobbyHeader call site since the empty lambda already documents the intent. * fix(lobby): baseline-align the two labels under each game card title The right meta label (RTP / Last / Up to) uses tnum digits while the left meta label (European, Classic, Multiplier, 5x5 Grid) uses only letters. Plain Top / Bottom row alignment renders the two with a visible vertical offset because the two glyph sets report different line metrics. alignByBaseline pins them to the typographic baseline so they read as a single label pair. Coinflip's HEADS . TAILS keeps the explicit Alignment.Bottom modifier because its row mixes the badge, the title+subtitle column and the meta label - baseline alignment would tie it to the title row.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
LobbyUiState. StaticLobbyPreviewDatadrives previews and the live nav-host until a Firestore VM lands.Modifier.gridBackgroundout ofLoginScreenEffectsintoui/componentsso every primary screen shares one implementation.Notes
DropdownMenutoggling between USDC and USDT; the network label stays put since both live on Polygon.Test plan