Skip to content

feat(rounddetail): port the cu-11 round detail screen#35

Merged
netqo merged 1 commit into
devfrom
feat/round-detail-screen
Jun 12, 2026
Merged

feat(rounddetail): port the cu-11 round detail screen#35
netqo merged 1 commit into
devfrom
feat/round-detail-screen

Conversation

@netqo

@netqo netqo commented Jun 12, 2026

Copy link
Copy Markdown
Owner

Summary

Ports the cu-11 round detail screen (mockup/js/screens/round-detail.js) and wires it into the nav graph in place of the placeholder. It is a static, full-screen view reached from the history list: the result banner, the three-up stats grid, the crash position bar with the cashout and crash markers, the round timeline, a collapsible provably-fair block whose seeds copy to the clipboard, and the audit-log reference.

Rationale

  • No ViewModel (KISS): the screen renders RoundDetailData directly, seeded from roundDetailPreviewData() until a rounds repository can resolve a round by id. The same approach Lobby and Wallet use for their pre-data-layer states.
  • It lives in its own feature/rounddetail package rather than feature/history: co-locating it would have collided its internal layout tokens with the history screen's private tokens of the same name. The new package also separates the concerns cleanly and has no dependency back on feature.history.
  • Tapping a provably-fair value copies the full (untruncated) seed to the clipboard and flips the row to a transient "Copied" confirmation, reproducing the cu-11 seed-copied state. Display values are shortened in the middle via truncateMiddle.
  • The now-unused requireStringArg nav helper was dropped with the placeholder it served.

Verification

  • ./gradlew ktlintCheck detekt testDebugUnitTest -> BUILD SUCCESSFUL
  • ./gradlew assembleDebug -> BUILD SUCCESSFUL
  • ./gradlew compileDebugAndroidTestKotlin -> BUILD SUCCESSFUL
  • On device: History -> tap a round opens the detail; banner / stats / crash bar / timeline render; Provably Fair expands and a seed tap copies it and shows "Copied"; Back returns to History.

Test plan

  • ktlint + detekt clean
  • RoundDetailFormatTest green (truncateMiddle: short untouched, long shortened, head/tail honored)
  • RoundDetailScreenTest compiles (instrumented; not run in the CI matrix)
  • Debug APK assembles
  • Manual device walkthrough of the flow above

Checklist

  • Commit messages follow Conventional Commits (see CONTRIBUTING.md).
  • Branch name follows the naming convention (feat/).
  • The change is scoped: round detail only.
  • If user-visible behavior changed, CHANGELOG.md has been updated under [Unreleased].
  • If a new dependency was added, it is justified in the PR description. (No new dependency.)

Notes

The screen ignores the roundId nav argument for now and always shows the static preview round; resolving the real round by id arrives with the rounds repository in a later entrega.

A static, full-screen view reached from the history list: the result
banner, the three-up stats grid, the crash position bar with cashout and
crash markers, the round timeline, a collapsible provably-fair block
whose seeds copy to the clipboard, and the audit-log reference. Replaces
the round detail placeholder in StackNavHost and drops the now-unused
requireStringArg helper.

The screen has no ViewModel: it renders RoundDetailData directly, seeded
from roundDetailPreviewData() until a rounds repository can resolve a
round by id. It lives in its own feature/rounddetail package so its
internal layout tokens do not collide with the history screen's.

Tests: RoundDetailFormatTest (the truncateMiddle seed shortener) and
RoundDetailScreenTest (banner / stats / timeline render, the
provably-fair expand, and the back callback).
@netqo netqo merged commit 963a040 into dev Jun 12, 2026
3 checks passed
@netqo netqo deleted the feat/round-detail-screen branch June 12, 2026 05:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant