Skip to content

feat(dev): preview shake-to-pay nearby search - #3148

Draft
innolope-dev wants to merge 1 commit into
devfrom
innolope/shake-pay-nearby
Draft

innolope-dev wants to merge 1 commit into
devfrom
innolope/shake-pay-nearby

Conversation

@innolope-dev

@innolope-dev innolope-dev commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add a dev-only mobile preview for the Shake to pay nearby receiver search.
  • Draw the animated phone and ripple illustration with semantic design-system tokens.
  • Render selectable receiver cards using the shipped UserAvatar sticker assets.
  • Register the preview in /dev.

Scope

This is a UI prototype only. It does not add device discovery or wire the view into the production send flow.

Validation

  • Focused Jest test: 2 passed.
  • Targeted ESLint.
  • Prettier check.
  • Design-system lint counts check.
  • Mobile visual verification at 393 × 852.

Environment caveats

  • Full typecheck reaches unrelated existing/environment errors outside the changed files, including Sentry/native-canary types and missing shared dependency or asset modules under Node 26.
  • The aggregate components documentation check reports the existing components.md as stale; this change adds no design-system primitive.

@vercel

vercel Bot commented Sep 13, 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 13, 2026 11:03am UTC

Request Review

@coderabbitai

coderabbitai Bot commented Sep 13, 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: 232fb70e-f51d-4b72-98c5-c978c5895bbe

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.

@innolope-dev innolope-dev self-assigned this Sep 13, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 8347.4 → 8351.9 (+4.5)
Findings: +4 net (+6 new, -2 resolved)

🆕 New findings (6)

  • medium high-mdd — src/app/(mobile-ui)/dev/page.tsx:9 — DevToolsPage: MDD 51.3 (uses across many lines from declarations)
  • medium complexity — src/app/(mobile-ui)/dev/page.tsx — CC 4, MI 50.51, SLOC 81
  • low high-mdd — src/app/(mobile-ui)/dev/shake-pay-nearby/NearbyReceiverSearch.tsx:106 — NearbyReceiverSearch: MDD 10.0 (uses across many lines from declarations)
  • low high-mdd — src/app/(mobile-ui)/dev/shake-pay-nearby/NearbyReceiverSearch.tsx:126 — : MDD 10.1 (uses across many lines from declarations)
  • low missing-return-type — src/app/(mobile-ui)/dev/shake-pay-nearby/NearbyReceiverSearch.tsx:106 — NearbyReceiverSearch: exported fn missing return type annotation
  • low missing-return-type — src/app/(mobile-ui)/dev/shake-pay-nearby/page.tsx:3 — ShakePayNearbyPreviewPage: exported fn missing return type annotation

✅ Resolved (2)

  • src/app/(mobile-ui)/dev/page.tsx:9 — DevToolsPage: MDD 49.3 (uses across many lines from declarations)
  • src/app/(mobile-ui)/dev/page.tsx — CC 4, MI 51.09, SLOC 77

📈 Painscore deltas (top movers)

File Before After Δ
src/app/(mobile-ui)/dev/shake-pay-nearby/NearbyReceiverSearch.tsx 0.0 3.9 +3.9

@github-actions

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 7432 ran, 0 failed, 0 skipped, 2.6m

📊 Coverage (unit)

metric %
statements 77.8%
branches 64.5%
functions 71.9%
lines 78.9%
⏱ 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_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 › 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 › 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 › 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 › routes the KYC rejection on its wire code, and does not retry it
3.1s src/components/Card/share-asset/__tests__/shareAssetLayout.test.ts › never places two stickers in heavy overlap (broad seed sweep)
3.0s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Scan that recovers on the retry lands on the payment screen, not an error
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@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 in the gated Shake to pay nearby-search prototype.

Checked clean

  • Confirmed the detached worktree head and merge base match the supplied exact SHAs, and PR metadata matches the trusted author and dev base.
  • Reviewed the dev-route production gate, receiver selection behavior, avatar rendering, responsive page composition, animation fallbacks, and focused test coverage.
  • Exact-head required CI is green, including unit, typecheck, ESLint, formatting, design-system lint, native export, and ci-success; advisory screenshot jobs were still running.

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: did not run — claude-api_error. This review is one reviewer short.

Exact head: 2af6c63d911c · Context: repo · Took 11m

@github-actions

Copy link
Copy Markdown
Contributor

🖼 Visual diff — 19 screens moved

23 of 84 shots changed · 61 identical · baseline a27c3f0 → head 2af6c63

worst % screen widths
15.39% avatar-picker 320, 430
3.43% setup-pending 320, 430
3.07% guest-invite 430
0.07% limits 320
0.07% request 320
0.07% withdraw 320, 430
0.03% add-money-crypto 430
0.03% add-money 430
0.03% card-access 430
0.03% empty-home 430
0.03% home-avatar 430
0.03% identity-verification 430
0.03% kyc-action-required 430
0.03% profile-edit 430
0.03% settings-language 320, 430
0.01% empty-accounts 320
0.01% profile-edit-unverified 320
0.01% withdraw-bank-form 320
0.00% send 320

job summary · before/after/diff images — artifact

Fixture screenshots, no backend. Advisory — this check never blocks a merge. Posted from the default branch by ds-shots-comment.yml; the report it renders is untrusted data.

@innolope-dev
innolope-dev marked this pull request as draft September 13, 2026 11:16
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