Skip to content

feat(myaccount): show Change Username only once a handle is claimed - #1343

Merged
bmc08gt merged 1 commit into
code/cashfrom
feat/conditional-change-username
Aug 27, 2026
Merged

feat(myaccount): show Change Username only once a handle is claimed#1343
bmc08gt merged 1 commit into
code/cashfrom
feat/conditional-change-username

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

The My Account row was unconditional, so an account with no handle got "Change Username" — a change of nothing. Tapping it landed on the username step with an empty field, which is the claim flow reached through a row that says it isn't.

Claiming a first handle already has its own entrance: the You tab's progress card, which carries the minimum-balance gate and disappears the moment usernameGate reads Claimed. This row now appears at exactly that point, so the two are complementary rather than overlapping.

MyAccountScreenViewModel reads userProfile.username off UserManager and folds it into the same buildItemList filter that already hides the biometrics and staff rows. It starts hidden, so the row doesn't flash in before the profile loads — the same reason staff rows start hidden.

No balance gate on this row. The minimum exists to stop squatting at claim time; an account holding a handle has already cleared it, and re-gating a change would hold someone's handle hostage to a balance that has since moved.

Parity

Matches iOS SettingsMyAccountScreen, which wraps its row in if let username = session.profile?.username for the same reason.

Base

Branched off 2e571e2d4build: release Flipcash 2026.8.5 (4377), the build currently on the production and internal tracks — so this can go out as an internal build updating the one approved for release. It does not include #1340, which landed after 4377.

Tests

MyAccountScreenViewModelStateTest gains five cases: the row's absence when unclaimed, its appearance on claim, its removal if the handle goes away, and that claiming interacts correctly with the beta-unlock and biometrics filters.

The row was unconditional, so an account with no handle got "Change
Username" — a change of nothing. Claiming a first handle already has its
own entrance in the You tab's progress card, which carries the
minimum-balance gate and disappears once the handle exists; the My
Account row now appears at exactly that point.

MyAccountScreenViewModel reads userProfile.username off UserManager and
folds it into the same buildItemList filter that already hides the
biometrics and staff rows. It starts hidden, so the row doesn't flash in
before the profile loads.

Matches iOS SettingsMyAccountScreen, which wraps its row in
`if let username = session.profile?.username`.
@bmc08gt bmc08gt self-assigned this Aug 27, 2026
@github-actions github-actions Bot added the type: feature New functionality label Aug 27, 2026
@bmc08gt
bmc08gt merged commit 48f7fb9 into code/cash Aug 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant