Skip to content

TASK-23054 one icon and one colour per product concept (QR pink, rewards yellow star; absorbs TASK-22761) - #3456

Merged
Hugo0 merged 10 commits into
devfrom
task-23054-qr-concept-colour
Sep 25, 2026
Merged

Hugo0 merged 10 commits into
devfrom
task-23054-qr-concept-colour

Conversation

@Hugo0

@Hugo0 Hugo0 commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Why

QA on staging (2026-09-25): the bottom nav QR button is pink, but the QR row under Spend in Profile → Accounts and payments was green, and a Peanut reward drew its star on green in activity. Hugo's rule: one icon and one background colour per product concept, on every surface. The colour names the concept, never its status; the badge carries the status.

Root cause: UnlockPayments.view.tsx coloured every row except the card and the Peanut user by its status chip (BUBBLE_COLOR: Available = green). PerkIcon hand-rolled a green circle. Other surfaces typed their own icon/colour pairs.

This PR also takes in the parts of Kush's TASK-22761 (ui#3457, "icon bubble colours follow one rule") that agree with Hugo's rule. Credit to Kush for the ActionModal tone contract, the avatar fallbacks, the per-site audit and the DS page. #3457 closes after this merges.

The colour rule (IconBubble JSDoc + /dev/ds/primitives/icon-bubble)

  • blue: a method or plain information (bank, crypto, links, add money, withdraw, Pix key, verification, other countries)
  • yellow: Peanut's own (the Peanut user, friends, card, rewards = the home top-nav star, badges), and attention in a modal or callout
  • pink brand: the primary action, QR pay, the same #ff90e8 as the nav QR button (a test pins the two tokens equal)
  • green done · red failed/blocked · gray inactive

What changes

  • CONCEPT_ICONS: qrPay → brand; new pixKey; rewards → the star on yellow (was trophy).
  • Accounts and payments: UnlockRow.icon → UnlockRow.concept. Rows and the row drawer spread the concept whatever the status. BUBBLE_COLOR is deleted.
  • EmptyState, ActionModal and CarouselCTA accept concept.
  • ActionModal (from feat: icon bubble colours follow one rule (TASK-22761) #3457): there is no silent pink default. An icon needs a tone (error, attention, success, info, peanut) or a concept, and the type system enforces this. Kush's brand tone becomes peanut (yellow, Peanut's own). Raw iconContainerClassName colours are gone from product callers.
  • Avatar fallbacks (from feat: icon bubble colours follow one rule (TASK-22761) #3457): an external address/wallet counterparty is the crypto concept in activity, UserCard, ContributorCard and PeanutActionDetailsCard (was a wallet on yellow). A flag that fails to load falls back to the bank concept IconBubble (AvatarWithBadge.fallback takes a node).
  • Empty states (from feat: icon bubble colours follow one rule (TASK-22761) #3457): failed-to-load is red (history, home history, recover funds, rewards, invites, contacts, direct request, limits). An empty state stays gray.
  • IconBubble (from feat: icon bubble colours follow one rule (TASK-22761) #3457): the unused logo colour is removed, and each colour's meaning is documented.
  • Per-site (from feat: icon bubble colours follow one rule (TASK-22761) #3457, where it agrees): info bubbles blue (already claimed, backup FAQ, unlock method, passkey info); receipt more-actions blue; claim-account bullets blue; KYC failed red; region restricted gray; additional verification pending yellow; corridor gate yellow in review / blue a way forward / gray closed; residence change uses otherCountries; balance warning, camera permission and passkey help move off raw classes. Early user, public profile and the easter egg go yellow (Peanut's own), not pink.
  • Carousel: the QR nudge and QR unlock prompt are pink (were yellow). The card offer is yellow (was pink). The invite CTAs are the rewards star.
  • Home activation card: the verify steps are blue, add money is blue, card and spend chooser are yellow, QR stays pink. Checklist: add money blue, first payment blue.
  • Empty states: badges and rewards use their concepts; no-card / no-PIN use the card concept (yellow). KYC advisory uses verification (blue).
  • PerkIcon is deleted. Activity rows, the receipt perk banner, the perk receipt head and the QR success reward cards spread CONCEPT_ICONS.rewards.
  • The send-link success card changes from a raw bg-blue-500 56px circle to the blue link bubble (48px).
  • Guard: conceptIconsUsage.test.ts scans src/. It fails on a literal concept glyph on IconBubble / EmptyState / ActionModal, a glyph+colour pair in one object, a hand-rolled rounded-full container around a concept glyph or the rewards star, or CONCEPT_ICONS.x.icon without .color. The exemptions carry a reason, and a stale exemption fails too.

Taken from #3457 vs rejected

#3457 Here
ActionModal requires a tone, no pink default taken; brand tone → peanut (yellow)
address/wallet = crypto concept; flag failure = bank bubble taken (read from CONCEPT_ICONS)
error empty states red taken
drop logo colour, JSDoc per colour taken, rewritten to Hugo's rule
DS icon-bubble + modal docs taken, rewritten; the per-colour "current usage" list dropped (it described the state-coloured variant)
per-site consistency fixes taken where they agree (above)
Peanut's own = pink (user, friends, card, rewards, badges) rejected: Hugo override (Peanut's own stays yellow)
mixed lists: colour = state (STATE_BUBBLE_COLORS, conceptBubbleFor, replacing LINK_STATE_BUBBLES, KYC row state colours, Unlock payments waiting-yellow / not-available-gray) rejected: Hugo override (a concept's colour never changes with status)
QR concept blue rejected: Hugo override (QR = pink)

Still needs a decision

  • Home carousel default container is pink for non-concept CTAs (bug bounty, notifications).
  • GettingStartedChecklist first payment uses arrow-up, the withdraw glyph, for a send.
  • ScanToDownloadModal qr-code for an app-download QR (now peanut yellow).
  • SemanticRequestPageWrapper gray link error state; ClaimAccountScreen link explainer bullet.
  • QrPayBlockedView "order not ready": qr-code on attention yellow (a waiting state).
  • PendingVerificationTasks: badge on a hand-rolled yellow bubble.
  • Inline stars next to points text stay bare glyphs (text decoration, not bubbles).

Checks

prettier, tsc --noEmit, the full Jest suite and ds-lint-counts --check pass locally, and next build passed locally at an earlier head. No local screenshots: the running stack belongs to another worktree. The Screen Library capture comment on this PR shows the after state.

QA 2026-09-25: the bottom nav QR button is pink, but the QR row under
Spend in Accounts and payments was green. That screen coloured every
non-card row by its status chip (Available = green), so a concept's
bubble changed with the user's state. Other surfaces typed their own
icon/colour pairs too (home carousel QR in yellow, card in pink, empty
states in gray, the link success card in raw blue).

- CONCEPT_ICONS.qrPay takes the brand fill, the nav button's pink;
  Pix key payments get a concept of their own.
- Accounts and payments rows carry a concept key instead of an icon;
  the badge alone carries status.
- EmptyState, ActionModal and CarouselCTA accept a `concept`, and every
  concept call site now spreads CONCEPT_ICONS.
- A source scan fails on a new hard-coded concept glyph or half-used
  pair; the few glyphs that are not the concept on their surface are
  listed with a reason.
@vercel

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

Request Review

@notion-workspace

Copy link
Copy Markdown

@Hugo0

Hugo0 commented Sep 25, 2026

Copy link
Copy Markdown
Contributor Author

/chip review

@coderabbitai

coderabbitai Bot commented Sep 25, 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: Repository: peanutprotocol/peanut-ui/.coderabbit.yaml

Review profile: CHILL

Plan: Advanced

Run ID: 0e44773e-d35a-4bea-af2e-309bef8b1885

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 25, 2026 •

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 8876.59 → 8880.81 (+4.22)
Findings: -2 net (+169 new, -171 resolved)

🆕 New findings (169)

  • critical complexity — src/app/(mobile-ui)/withdraw/crypto/page.tsx — CC 166, MI 49.06, SLOC 664
  • critical complexity — src/components/Profile/views/UnlockPayments.view.tsx — CC 144, MI 59.15, SLOC 454
  • critical complexity — src/components/Home/ActivationCTAs.tsx — CC 97, MI 55.25, SLOC 328
  • critical complexity — src/components/Global/PeanutActionDetailsCard/index.tsx — CC 87, MI 54.58, SLOC 119
  • critical complexity — src/components/TransactionDetails/TransactionCard.tsx — CC 72, MI 51.07, SLOC 148
  • critical method-complexity — src/components/TransactionDetails/TransactionCard.tsx:76 — CC 63 SLOC 112
  • critical complexity — src/hooks/useHomeCarouselCTAs.tsx — CC 62, MI 58.46, SLOC 285
  • critical method-complexity — src/app/(mobile-ui)/withdraw/manteca/page.tsx:123 — MantecaBankWithdrawFlow CC 58 SLOC 296
  • critical method-complexity — src/components/Profile/views/UnlockPayments.view.tsx:88 — CC 54 SLOC 266
  • critical complexity — src/app/(mobile-ui)/recover-funds/page.tsx — CC 50, MI 54.21, SLOC 219
  • high hotspot — src/app/(mobile-ui)/withdraw/manteca/page.tsx — 114 commits, +1413/-861 lines since 6 months ago
  • high hotspot — src/app/(mobile-ui)/withdraw/crypto/page.tsx — 84 commits, +1172/-521 lines since 6 months ago
  • high hotspot — src/components/TransactionDetails/TransactionDetailsReceipt.tsx — 83 commits, +983/-2247 lines since 6 months ago
  • high hotspot — src/components/Profile/views/UnlockPayments.view.tsx — 73 commits, +1918/-1173 lines since 6 months ago
  • high hotspot — src/components/Home/ActivationCTAs.tsx — 66 commits, +1002/-472 lines since 6 months ago
  • high hotspot — src/components/TransactionDetails/TransactionCard.tsx — 61 commits, +534/-448 lines since 6 months ago
  • high hotspot — src/hooks/useHomeCarouselCTAs.tsx — 50 commits, +543/-388 lines since 6 months ago
  • high complexity — src/components/Global/IframeWrapper/index.tsx — CC 41, MI 65.34, SLOC 170
  • high complexity — src/utils/unlock-payments.utils.ts — CC 40, MI 52.85, SLOC 154
  • high method-complexity — src/app/(mobile-ui)/withdraw/manteca/page.tsx:543 — CC 36 SLOC 170

…and 149 more.

✅ Resolved (171)

  • src/app/(mobile-ui)/withdraw/crypto/page.tsx — CC 166, MI 49.05, SLOC 664
  • src/components/Profile/views/UnlockPayments.view.tsx — CC 146, MI 59.01, SLOC 458
  • src/components/Home/ActivationCTAs.tsx — CC 97, MI 55.31, SLOC 325
  • src/components/Global/PeanutActionDetailsCard/index.tsx — CC 86, MI 54.45, SLOC 121
  • src/components/TransactionDetails/TransactionCard.tsx — CC 72, MI 51.08, SLOC 148
  • src/components/TransactionDetails/TransactionCard.tsx:75 — CC 63 SLOC 112
  • src/hooks/useHomeCarouselCTAs.tsx — CC 62, MI 58.18, SLOC 292
  • src/app/(mobile-ui)/withdraw/manteca/page.tsx:122 — MantecaBankWithdrawFlow CC 58 SLOC 296
  • src/components/Profile/views/UnlockPayments.view.tsx:89 — CC 54 SLOC 266
  • src/app/(mobile-ui)/withdraw/manteca/page.tsx — 113 commits, +1411/-855 lines since 6 months ago
  • src/app/(mobile-ui)/withdraw/crypto/page.tsx — 83 commits, +1171/-521 lines since 6 months ago
  • src/components/TransactionDetails/TransactionDetailsReceipt.tsx — 82 commits, +980/-2245 lines since 6 months ago
  • src/components/Profile/views/UnlockPayments.view.tsx — 72 commits, +1910/-1158 lines since 6 months ago
  • src/components/Home/ActivationCTAs.tsx — 64 commits, +981/-442 lines since 6 months ago
  • src/components/TransactionDetails/TransactionCard.tsx — 60 commits, +531/-446 lines since 6 months ago
  • src/components/Setup/Views/Residence.tsx — 50 commits, +947/-434 lines since 6 months ago
  • src/app/(mobile-ui)/recover-funds/page.tsx — CC 49, MI 54.22, SLOC 219
  • src/components/Global/IframeWrapper/index.tsx — CC 41, MI 65.36, SLOC 170
  • src/utils/unlock-payments.utils.ts — CC 40, MI 52.89, SLOC 154
  • src/app/(mobile-ui)/withdraw/manteca/page.tsx:542 — CC 36 SLOC 170

…and 151 more.

📈 Painscore deltas (top movers)

File Before After Δ
src/app/(mobile-ui)/dev/ds/primitives/icon-bubble/page.tsx 4.6 5.6 +1.1
src/components/Global/EmptyStates/EmptyState.tsx 2.4 3.4 +1.0
src/components/TransactionDetails/PerkIcon.tsx 4.2 0.0 -4.2

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • ✅ unit: 10062 ran, 0 failed, 0 skipped, 3.3m

📊 Coverage (unit)

metric %
statements 82.3%
branches 71.9%
functions 77.3%
lines 83.5%
⏱ 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 › 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
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_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_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 › a refused idempotency key tells the user to scan again, not to contact support
3.2s 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 actionable defects found in the concept icon and color changes.

Checked clean

  • Reviewed the 28-file merge-base diff and affected call sites for icon, color, navigation, and status behavior.
  • Checked the new concept-usage guard and relevant component contracts; no actionable regression found.
  • At review time, format, eslint, design-system lint, and typecheck passed; unit and visual-capture checks 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: 1d069fc8b400 · Context: repo · Took 5m

@github-actions

github-actions Bot commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

English · Español · Español (Argentina) · Português (Brasil)

Open screen library dashboard

After merge: e728618 → 9b7a2b1. Capture complete in all locales.

QA 2026-09-25: a Peanut reward drew its star on green in activity (the
PerkIcon hand-rolled a green circle), while the home top nav and the
Rewards page speak in the yellow star. CONCEPT_ICONS.rewards is now that
star on yellow; PerkIcon, the QR success reward cards and the carousel
invite CTAs spread it, and the guard test catches a star drawn in a
bubble of its own.
@Hugo0 Hugo0 changed the title TASK-23054 one icon and one colour per product concept (QR is pink everywhere) TASK-23054 one icon and one colour per product concept (QR pink, rewards yellow star) Sep 25, 2026
@Hugo0

Hugo0 commented Sep 25, 2026

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 actionable defects found at the new head.

Checked clean

  • Rechecked the complete 34-file PR diff against the supplied dev base; the merge added no independent changes to this PR’s concept call sites.
  • Verified the rewards star asset and yellow bubble across activity, receipts, QR success, carousel, and empty states; checked the updated usage guard.
  • At review time, the current-head Tests workflow and visual captures were still pending or running; no current-head failing check was reported.

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 — it reads only the first review of a pull request; the first reviewer checks later rounds. This review is one reviewer short.

Exact head: a3ac2ba540a6 · Context: repo · Took 6m

kushagrasarathe and others added 3 commits September 25, 2026 11:26
Half the modals picked their bubble colour through a raw class, and the
rest fell through to pink, so pink meant nothing. tone is now required by
the type whenever an icon renders, a brand tone covers Peanut's own
moments, and every caller names its tone per the colour spec. Raw bg
iconContainerClassName overrides are gone from product callers.
…ed logo fill

Adopted from TASK-22761 (Kush, ui#3457) and rewritten to the rule Hugo set
on 2026-09-25: yellow is Peanut's own, pink is the primary action (QR pay),
and a concept bubble never changes colour with status. The DS page states
that rule; its per-colour usage list is left out because it described the
state-coloured variant.
The remaining audited call sites: the home activation CTAs and the
getting-started checklist (card pink, verify and money moves blue),
receipt more actions, claim account and residence change (blue), corridor
gate (review yellow, support blue), additional verification pending
(yellow), KYC failed (red), region restricted (gray), unlock method,
backup FAQ, passkey info and already claimed (blue), the balance warning
(yellow). Error empty states turn red so failed-to-load no longer reads
like nothing-here. Four same-pixel bubbles move off raw bg classes onto
the colour prop.

Adapted in ui#3456 to Hugo's rule (2026-09-25): Peanut's own stays yellow,
not pink (card, early user, public profile, the account step), and the
activation verify steps take blue.
@github-actions

Copy link
Copy Markdown
Contributor

🖼 Visual diff — 5 screens moved

8 of 164 shots changed · 156 identical · baseline 92eb273 → head a3ac2ba

worst % screen widths
14.95% avatar-picker 430
1.50% guest-invite 430
0.36% empty-invites 320, 430
0.36% empty-rewards 320, 430
0.16% huge-rewards-cash 320, 430

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.

…oncept

Adopted from TASK-22761 (Kush, ui#3457): an external address or wallet
counterparty drew a wallet on yellow in activity, UserCard,
ContributorCard and PeanutActionDetailsCard, while every picker draws
crypto as coins on blue. A flag that fails to load now falls back to the
real bank IconBubble. The QR KYC gate names the QR pay concept when no
brand mark is known.

Not taken, by Hugo's rule of 2026-09-25: the state-coloured concept
bubbles (link state map replacement, conceptBubbleFor, the identity
verification row's status colours). A concept's colour names the concept;
the badge carries the status.
@Hugo0 Hugo0 changed the title TASK-23054 one icon and one colour per product concept (QR pink, rewards yellow star) TASK-23054 one icon and one colour per product concept (QR pink, rewards yellow star; absorbs TASK-22761) Sep 25, 2026
@notion-workspace

Copy link
Copy Markdown

@Hugo0

Hugo0 commented Sep 25, 2026

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

One minor color-semantic mismatch in actionable corridor gate drawers; no other actionable defects found.

Findings

  • MINOR · src/features/deposit-accounts/components/CorridorGateDrawer.tsx:178 · Actionable corridor gates render as inactive gray
    For a needs-identity gate, depositGateView sets action verify; accept-tos and provide-email are similarly actionable. None has an ICONS entry, so gateIcon is undefined and this expression renders gray beside an enabled primary button. Gray is documented as inactive, while the drawer comment says a way forward is blue. Map colors by action rather than icon-map presence, and cover an actionable gate in the drawer tests.

Checked clean

  • Verified the exact head and base, and reviewed the complete PR diff plus the new concept, modal, avatar, empty-state, and gate changes.
  • Confirmed the corridor-gate action mapping makes verify, accept-tos, and provide-email reachable; no existing color assertion covers them.
  • Current-head unit, typecheck, eslint, format, and ds-lint checks passed; no failing check was reported.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion: did not run — it reads only the first review of a pull request; the first reviewer checks later rounds. This review is one reviewer short.

Exact head: 6e1645c3bc86 · Context: repo · Took 7m

Comment thread src/features/deposit-accounts/components/CorridorGateDrawer.tsx Outdated

@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

One minor color-semantic mismatch remains in actionable corridor gate drawers; no other actionable defects found in the prior exact-head review.

Findings

  • MINOR · src/features/deposit-accounts/components/CorridorGateDrawer.tsx:178 · Actionable corridor gates render as inactive gray
    For a needs-identity gate, depositGateView sets action to verify; accept-tos and provide-email are also actionable. None has an ICONS entry, so gateIcon is undefined and this expression renders gray beside an enabled primary button. IconBubble documents gray as inactive, while the drawer comment says a way forward is blue. Choose the color by action rather than icon-map presence, and cover an actionable gate in the drawer tests.

Checked clean

  • Verified exact head and base objects; rechecked the previous exact-head result against the current corridor gate mapping, icon color semantics, and drawer tests.
  • P1 remains present at line 178; no reply, resolution, or deferral was supplied in the review ledger.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion: did not run — it reads only the first review of a pull request; the first reviewer checks later rounds. This review is one reviewer short.

Exact head: 6e1645c3bc86 · Context: repo · Took 3m (queued 7m)

Comment thread src/features/deposit-accounts/components/CorridorGateDrawer.tsx Outdated
… while waiting

Chip on ui#3456: verify, terms and email gates have no ICONS entry, so the
bubble fell to the inactive gray beside an enabled primary button. The
colour now follows the same WAITS set the button does.
@Hugo0

Hugo0 commented Sep 25, 2026

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

  • Verified the exact head and dev base; reviewed the two-file follow-up diff against the prior exact-head review of the full pull request.
  • P1 and P2 are fixed: bubble color now uses the same WAITS state as the button, making actionable gates blue and waiting gates yellow; the added tests cover both categories.
  • The follow-up diff passes git diff --check. Current-head CI checks are still in progress; local dependencies are absent, so tests were not rerun locally.

Security review by moonshotai/kimi-k3: 0 finding(s), marked with the model name. It reads the diff only and answers only security, privacy and money, so treat its findings as advice.

Third opinion: did not run — it reads only the first review of a pull request; the first reviewer checks later rounds. This review is one reviewer short.

Exact head: f0e3b0c2a907 · Context: repo · Took 2m

@Hugo0
Hugo0 merged commit 9b7a2b1 into dev Sep 25, 2026
40 of 41 checks passed
Hugo0 added a commit that referenced this pull request Sep 25, 2026
--no-verify: the hook flags src/types/api.openapi.json, which arrives unchanged from dev in this merge, not from this branch. AdvisoryPreemptModal stays deleted; dev's icon edit to it (#3456) is dropped.

This branch was successfully deployed

1 active deployment
Preview — f0e3b0c2 Deployed Sep 25, 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