Skip to content

fix(TASK-22713): restore playful QR payment messages - #3233

Merged
kushagrasarathe merged 2 commits into
devfrom
codex/TASK-22713-qr-loading-copy
Sep 17, 2026
Merged

kushagrasarathe merged 2 commits into
devfrom
codex/TASK-22713-qr-loading-copy

Conversation

@jjramirezn

@jjramirezn jjramirezn commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

QR payments lost their rotating messages when #3225 adopted the shared processing screen. Restore the existing translated message pool at the original 1.8-second cadence in the QR Paying view, while keeping the shared mascot and layout.

Adds the real QR processing view to /dev/loading-words for visual checks. Payment execution, the Paying transition, rewards and other payment flows are unchanged. No backend dependency or release flag.

Task: TASK-22713

Validation: full formatting check, TypeScript, changed-file ESLint, and all 629 unit suites passed (7,780 tests; 7 skipped). Actual component checked at a 375×667 viewport in English, Latin American Spanish, Argentine Spanish and Brazilian Portuguese: messages rotate, translations render, reduced motion stops the mascot, and there are no browser page errors. This is a presentation preview, not a payment end-to-end test.

Production build passed after syncing with the latest dev mascot update. Existing upstream build warnings remain.

Screenshots

Actual QR processing component at a mobile viewport. Images are from the presentation preview.

English Argentine Spanish
QR processing in English QR processing in Argentine Spanish

Screenshots use immutable commit links. The temporary screenshot branch is no longer present.

@notion-workspace

Copy link
Copy Markdown

@vercel

vercel Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

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

Project Deployment Actions Updated
peanut-wallet Ready Ready Preview Sep 17, 2026 12:41pm UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: b1e885e9-aa70-4f69-b476-4c6b24452aa0

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

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

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 8046.23 → 8051.06 (+4.83)
Findings: +2 net (+7 new, -5 resolved)

🆕 New findings (7)

  • medium complexity — src/app/dev/loading-words/page.tsx — CC 18, MI 72.57, SLOC 53
  • medium complexity — src/features/payments/flows/qr-pay/QrPayPage.tsx — CC 16, MI 59.97, SLOC 41
  • medium react-effect-derives-state — src/features/payments/flows/qr-pay/views/QrPayProcessingView.tsx:27 — useEffect with empty deps + setState — derived state anti-pattern
  • low high-mdd — src/features/payments/flows/qr-pay/QrPayPage.tsx:20 — QrPayFlowContent: MDD 19.5 (uses across many lines from declarations)
  • low missing-return-type — src/app/dev/loading-words/page.tsx:20 — LoadingWordsPreview: exported fn missing return type annotation
  • low missing-return-type — src/features/payments/flows/qr-pay/QrPayPage.tsx:62 — QrPayPage: exported fn missing return type annotation
  • low missing-return-type — src/features/payments/flows/qr-pay/views/QrPayProcessingView.tsx:20 — QrPayProcessingView: exported fn missing return type annotation

✅ Resolved (5)

  • src/features/payments/flows/qr-pay/QrPayPage.tsx:20 — QrPayFlowContent: MDD 20.5 (uses across many lines from declarations)
  • src/app/dev/loading-words/page.tsx — CC 18, MI 72.58, SLOC 53
  • src/features/payments/flows/qr-pay/QrPayPage.tsx — CC 16, MI 59.32, SLOC 43
  • src/app/dev/loading-words/page.tsx:19 — LoadingWordsPreview: exported fn missing return type annotation
  • src/features/payments/flows/qr-pay/QrPayPage.tsx:65 — QrPayPage: exported fn missing return type annotation

📈 Painscore deltas (top movers)

File Before After Δ
src/features/payments/flows/qr-pay/views/QrPayProcessingView.tsx 0.0 4.8 +4.8

@github-actions

github-actions Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • ✅ unit: 7787 ran, 0 failed, 0 skipped, 2.8m

📊 Coverage (unit)

metric %
statements 79.3%
branches 66.9%
functions 73.7%
lines 80.4%
⏱ 10 slowest test cases
time test
🐢 9.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Network failure keeps loading while retries remain, then shows the generic error
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_RECENT_REFUND fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_USER_NOT_PROVISIONED fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_MERCHANT_VOLUME_NEAR_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › User KYC not approved fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › MANTECA_SOURCE_OVER_MONTHLY_CAP fails fast with copy that names the real cause
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › a refused idempotency key tells the user to scan again, not to contact support
4.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › routes the KYC rejection on its wire code, and does not retry it
3.1s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Going offline blames the connection, and reconnecting clears it for the recovered scan
3.1s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › never places two stickers in heavy overlap (broad seed sweep)
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@jjramirezn

Copy link
Copy Markdown
Contributor Author

/chip review

@chip-peanut-bot chip-peanut-bot Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Chip review — no blocking findings — this is not an approval

No findings.

Checked clean

  • Confirmed the detached worktree head and merge base match the supplied SHAs, then reviewed all three changed files and their relevant history.
  • Verified the Paying view still follows the existing QR payment state transition and only replaces its presentation component.
  • Checked the translated loading-word catalogs and es-AR fallback, random non-repeating selection, 1.8-second cadence, and interval cleanup.
  • Exact-head format, typecheck, lint, unit, native-export, and aggregate CI checks passed. The non-gating ds-shots job exited during its build step before screenshots with no code-specific diagnostic; locale capture jobs were still running when reviewed.
  • The detached worktree has no installed dependencies, so a local targeted Jest rerun was unavailable; the exact-head unit CI suite passed.

Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 2c7827777a6d · Context: repo · Took 7m

@jjramirezn

Copy link
Copy Markdown
Contributor Author

/chip review

@kushagrasarathe
kushagrasarathe marked this pull request as ready for review September 17, 2026 12:46
@kushagrasarathe
kushagrasarathe merged commit 7690a33 into dev Sep 17, 2026
32 of 33 checks passed
@chip-peanut-bot

Copy link
Copy Markdown
Contributor

This pull request was already closed when the review finished, so these findings are follow-up work rather than a gate.

Chip review — no blocking findings — this is not an approval

No findings in the QR payment processing-message restoration.

Checked clean

  • Exact head and merge base matched the supplied SHAs; the detached worktree was clean.
  • QR Paying view selection, payment-state transitions, timer cleanup, hydration behavior, and no-repeat rotation were checked.
  • The existing translated payment-loading pool and es-AR fallback merge were checked across en, es-419, es-AR, and pt-BR.
  • Shared ProcessingScreen layout and reduced-motion mascot behavior remain intact.
  • Exact-head unit, typecheck, ESLint, formatting, native export, screen-test, build-analysis, and deployment checks were green; visual capture jobs were still running when reviewed.

Security review: did not run — this change has no security, privacy or money surface, so it was not asked. This review is one reviewer short.

Third opinion by claude-opus: 0 finding(s), marked with the model name. It answers only product truth, missing tests and the cross-repo contract, so treat its findings as advice.

Exact head: 0e5f3ef2666b · Context: repo · Took 6m

This branch was successfully deployed

1 active deployment
Preview — 0e5f3ef2 Deployed Sep 17, 2026 by vercel[bot]
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.

2 participants