Skip to content

fix(withdraw): amount card says 'You're withdrawing', not 'You're sending'#2409

Merged
Hugo0 merged 1 commit into
devfrom
fix/withdraw-copy
Jul 13, 2026
Merged

fix(withdraw): amount card says 'You're withdrawing', not 'You're sending'#2409
Hugo0 merged 1 commit into
devfrom
fix/withdraw-copy

Conversation

@0xkkonrad

Copy link
Copy Markdown
Contributor

Summary

The withdraw amount card sits under a Withdraw header but read "You're sending". This is a copy seam: the page frame is named by the user's intent (Withdraw — how they got there), while the card was named by the mechanism (a crypto withdrawal is, under the hood, a sendMoney/charge send of USDC to an external address). Both are "true", but they collide in one viewport and read as a bug.

Two things made it clearly wrong rather than merely debatable:

  • It clashes with the sibling ADD_MONEY"You're adding", which does match its own header.
  • The bank withdraw path (WITHDRAW_BANK_ACCOUNT) reuses the same string — and you don't "send" to a bank.

Unify both WITHDRAW and WITHDRAW_BANK_ACCOUNT to "You're withdrawing" — matches the header and the ADD_MONEY sibling, and reads correctly for crypto and bank.

Changes (copy-only, no architecture change)

  • PeanutActionDetailsCardWITHDRAW / WITHDRAW_BANK_ACCOUNT branch → "You're withdrawing" (covers the crypto withdraw + [country]/bank screens, which render the shared card).
  • withdraw/manteca/page.tsx — two hardcoded literals (the regional/bank withdraw review + status cards) → "You're withdrawing".

The internal PaymentSuccessView type="SEND" semantic key is intentionally left as-is — it's a routing key, not user-visible copy.

Design notes / accepted trade-offs

The shared money-movement components (PeanutActionDetailsCard, PaymentSuccessView, sendMoney/charges) being reused across send/withdraw/add/claim is deliberate, correct factoring — not touched. This is a label fix at that shared seam, not a flow change.

Risk

Minimal — three string literals, no logic/type/import changes. Blast radius = the withdraw amount card title on crypto + bank withdraw screens.

QA

  • Local gate green: typecheck (exit 0), prettier --check (clean), jest (withdraw-states + add-money-states pass; full suite green after copy-flags prebuild).
  • Verify: /withdraw → crypto → amount card header reads "You're withdrawing"; same on the Manteca/bank withdraw review + status cards.

…ding'

The withdraw amount card sat under a 'Withdraw' header but read 'You're
sending' — a copy seam where the frame is named by user intent while the
card was named by the underlying mechanism (a crypto withdrawal is a send
to an address). It also clashed with the ADD_MONEY sibling ('You're
adding') and was plainly wrong for the bank (WITHDRAW_BANK_ACCOUNT) path,
which doesn't 'send' to a bank. Unify to 'You're withdrawing'.
@vercel

vercel Bot commented Jul 13, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
peanut-wallet Ready Ready Preview, Comment Jul 13, 2026 5:02pm

Request Review

@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Changes

Withdrawal wording alignment

Layer / File(s) Summary
Update withdrawal labels
src/app/(mobile-ui)/withdraw/manteca/page.tsx, src/components/Global/PeanutActionDetailsCard/index.tsx
Withdrawal amount displays and transaction detail cards now use “You're withdrawing” instead of “You're sending”.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested labels: enhancement

Suggested reviewers: hugo0, jjramirezn, facubozzi

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main copy change in the withdrawal amount card.
Description check ✅ Passed The description matches the PR changes and explains the withdrawal copy fix.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 6129.29 → 6129.55 (+0.26)
Findings: 0 net (+1 new, -1 resolved)

🆕 New findings (1)

  • high hotspot — src/app/(mobile-ui)/withdraw/manteca/page.tsx — 67 commits, +611/-370 lines since 6 months ago

✅ Resolved (1)

  • src/app/(mobile-ui)/withdraw/manteca/page.tsx — 66 commits, +609/-368 lines since 6 months ago

@github-actions

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 1837 ran, 0 failed, 0 skipped, 28.8s

📊 Coverage (unit)

metric %
statements 57.9%
branches 42.0%
functions 47.1%
lines 58.0%
⏱ 10 slowest test cases
time test
3.8s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › never places two stickers in heavy overlap (broad seed sweep)
0.5s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › every sticker stays within canvas at any count
0.4s src/app/actions/__tests__/api-headers-extended.test.ts › should not include apiKey in updateUserById body
0.3s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › keeps stickers off the username pill (final pass respects the keep-out)
0.3s src/app/actions/__tests__/api-headers.test.ts › should include Content-Type in updateUserById
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid 9-digit US account
0.1s src/components/Global/SupportDrawer/__tests__/SupportDrawer.test.tsx › shows the mailto fallback + retry when the proxy reports CRISP_FAILED
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle invalid ETH address (too short)
0.1s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Perk claim in progress shows disabled button + progress
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle maximum length (17 digits) US account
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@coderabbitai coderabbitai Bot added the enhancement New feature or request label Jul 13, 2026
@Hugo0
Hugo0 marked this pull request as ready for review July 13, 2026 17:31
@Hugo0
Hugo0 merged commit ce7ac76 into dev Jul 13, 2026
18 of 20 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants