Skip to content

refactor(assets): name the mascot a mascot, not a logo#2327

Merged
kushagrasarathe merged 1 commit into
devfrom
chore/rename-mascot-assets
Jul 2, 2026
Merged

refactor(assets): name the mascot a mascot, not a logo#2327
kushagrasarathe merged 1 commit into
devfrom
chore/rename-mascot-assets

Conversation

@kushagrasarathe

Copy link
Copy Markdown
Contributor

Summary

PEANUTMAN_LOGO was the peanut-character illustration mislabeled as a "logo" — a distinct asset from the app icon (peanut-icon.svg) and the PEANUT wordmark (PEANUT_LOGO). The name described where it was first used (a header), not what it depicts. This untangles the three overlapping "logo" meanings so the names say what the assets are.

Changes (no behavior change — same pixels, accurate names):

  • Rename export PEANUTMAN_LOGOPEANUTMAN and file mascot/peanut-logo.svgmascot/peanutman.svg; update all call sites, the local ASSET_ var, and the mascot alt text ("logo""Peanut mascot").
  • Move PEANUT_LOGO_BLACK out of illustrations/ into logos/ (it's the brand logo); fix the one subpath import.
  • public/peanutman-logo.svg is retained unchanged as the external email/embed alias — no public path added or removed.

Risks / breaking changes

  • Low. Pure rename; PEANUTMAN is a new token (no collision) and consumers import via the @/assets barrel which re-exports it unchanged. Typecheck enforces completeness.
  • No public URL broken: public/peanutman-logo.svg is untouched.
  • Deliberately NOT touched: public/logo-favicon.png — the favicon/app-icon, load-bearing for the Card Beta email drip.
  • No cross-repo impact.

Notes

QA

  • npm run typecheck — clean (catches any missed rename).
  • Grep sanity: grep -rn PEANUTMAN_LOGO src → no hits.
  • Visual: mascot renders unchanged on loading screen, public profile, claim/link, card + share asset, tx details, QR scanner, notifications, CTAs.

PEANUTMAN_LOGO was the peanut-character illustration mislabeled as a
"logo" — distinct from the app icon (peanut-icon.svg) and the PEANUT
wordmark (PEANUT_LOGO). The name described where it was first used (a
header), not what it depicts.

- Rename export PEANUTMAN_LOGO -> PEANUTMAN and file
  mascot/peanut-logo.svg -> mascot/peanutman.svg; update all call sites,
  the local ASSET_ var, and the mascot alt text ("logo" -> "Peanut mascot").
- Move PEANUT_LOGO_BLACK out of illustrations/ into logos/ (it's the brand
  logo); fix the one subpath import.

No behavior change — same pixels, accurate names. public/peanutman-logo.svg
is retained unchanged as the external email/embed alias.

Co-authored-by: kushagrasarathe <kushagrasarathe@gmail.com>
@vercel

vercel Bot commented Jul 2, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated (UTC)
peanut-wallet Building Building Preview, Comment Jul 2, 2026 7:04am

Request Review

@kushagrasarathe

Copy link
Copy Markdown
Contributor Author

@coderabbitai review in depth.

Evaluate:

  • risk of introducing new bugs and breaking existing functionality
  • performance impact and latency
  • code quality and DRY

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Important

Review skipped

No new commits to review since the last review.

⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 3a8c349f-12e6-4693-9929-ee1697c85057

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

Walkthrough

The mascot asset export PEANUTMAN_LOGO is renamed to PEANUTMAN, backed by a new peanutman.svg source. All consuming files across pages, components, and one test comment update their imports and rendered image sources accordingly. Additionally, PEANUT_LOGO_BLACK export moves from illustrations to logos index.

Changes

Mascot asset rename and consumer updates

Layer / File(s) Summary
Asset export changes
src/assets/mascot/index.ts, src/assets/illustrations/index.ts, src/assets/logos/index.ts
Renames PEANUTMAN_LOGO to PEANUTMAN (new peanutman.svg source) and moves PEANUT_LOGO_BLACK export from illustrations to logos index.
Core shared components
src/components/Badges/badge.utils.ts, src/components/Card/CardFace.tsx, src/components/Card/share-asset/PixelatedCardFace.tsx, src/components/Global/PeanutLoading/index.tsx, src/components/Global/PeanutLoading/CyclingLoading.tsx
Updates badge fallback icon, card face rendering, pixelated card asset constants, and loading mascot images to use PEANUTMAN.
Claim/Link and send flows
src/components/Claim/Link/Initial.view.tsx, src/components/Claim/Link/SendLinkActionList.tsx
Swaps mascot import and rendered image source from PEANUTMAN_LOGO to PEANUTMAN.
Modals and account/CTA buttons
src/components/Global/ConfirmInviteModal/index.tsx, src/components/Global/CreateAccountButton/index.tsx, src/components/Global/NoMoreJailModal/index.tsx, src/components/Global/QRScanner/index.tsx, src/features/payments/shared/components/SendWithPeanutCta.tsx
Updates imports and rendered image sources to PEANUTMAN, with size classes added in a couple of cases.
Profile and transaction detail views
src/components/Profile/components/PublicProfile.tsx, src/components/TransactionDetails/TransactionCard.tsx, src/components/TransactionDetails/TransactionDetailsHeaderCard.tsx
Updates mascot imports and rendered images for guest/test-transaction views to use PEANUTMAN.
Pages and test references
src/app/(mobile-ui)/notifications/page.tsx, src/app/dev/loading-words/page.tsx, src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx
Updates fallback icon, preview image, and a test comment reference to PEANUTMAN.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: jjramirezn

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the asset renaming refactor and matches the main change set.
Description check ✅ Passed The description accurately explains the mascot asset rename and related logo export move.
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.

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

@kushagrasarathe

Copy link
Copy Markdown
Contributor Author

QA testing guide (concise)

Pure asset rename (PEANUTMAN_LOGOPEANUTMAN, PEANUT_LOGO_BLACK moved to logos/). Same pixels — no visual change expected. Verify the mascot still renders (not a broken-image icon) on:

  • Loading spinner — any in-app loading state (e.g. payment flow); also /dev/loading-words.
  • Card face/card: mascot top-left; and the share/save asset (/dev/share-builder) renders the pixelated mascot.
  • Claim link — "Receive on 🥜 Peanut" mascot + wordmark row.
  • CTA buttons — "Create account" / "Join" / "Send with Peanut" show mascot + wordmark.
  • QR scanner — scan sheet lists Peanut with its mascot icon.
  • Transactions — a test transaction row/detail shows the mascot.
  • Notifications/notifications: items with no icon fall back to the mascot.
  • Public profile (logged out, mobile) — header mascot + wordmark.
  • Badges — a badge with no custom art falls back to the mascot.

Pass criteria: every spot shows the peanut mascot, no broken images, no layout shift.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 5860.07 → 5862.92 (+2.85)
Findings: 0 net (+2 new, -2 resolved)

🆕 New findings (2)

  • high hotspot — src/components/Badges/badge.utils.ts — 33 commits, +328/-108 lines since 6 months ago
  • medium hotspot — src/components/TransactionDetails/TransactionCard.tsx — 27 commits, +192/-140 lines since 6 months ago

✅ Resolved (2)

  • src/components/Badges/badge.utils.ts — 32 commits, +326/-106 lines since 6 months ago
  • src/components/TransactionDetails/TransactionCard.tsx — 26 commits, +190/-138 lines since 6 months ago

@coderabbitai

coderabbitai Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor
🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
gh pr view 2327 --repo peanutprotocol/peanut-ui --json files,additions,deletions,changedFiles -q '.'
echo "---DIFF---"
gh pr diff 2327 --repo peanutprotocol/peanut-ui > /tmp/pr.diff
wc -l /tmp/pr.diff
cat /tmp/pr.diff

Length of output: 26942


🏁 Script executed:

#!/bin/bash
cd /tmp && rm -rf repo && gh repo clone peanutprotocol/peanut-ui repo -- -q 2>&1 | tail -5
cd repo && gh pr checkout 2327 -q 2>&1 | tail -5

echo "---grep PEANUTMAN_LOGO---"
rg -n 'PEANUTMAN_LOGO' -g '!**/*.diff' || echo "none found"

echo "---assets barrel---"
cat src/assets/index.ts 2>/dev/null | head -50
fd index.ts src/assets

echo "---public peanutman-logo.svg---"
fd -a 'peanutman-logo.svg' public
git log -1 --format=%H -- public/peanutman-logo.svg
git diff main -- public/peanutman-logo.svg | head -20

echo "---check mascot index full---"
cat src/assets/mascot/index.ts

echo "---logos index full---"
cat src/assets/logos/index.ts

echo "---illustrations index full---"
cat src/assets/illustrations/index.ts

Length of output: 1294


🏁 Script executed:

#!/bin/bash
cd /tmp/repo 2>/dev/null && pwd && git status | head -5
echo "---retry checkout---"
gh pr checkout 2327 2>&1 | tail -10
echo "---grep PEANUTMAN_LOGO---"
rg -n 'PEANUTMAN_LOGO' || echo "none found"
echo "---assets barrel---"
fd index.ts src/assets
cat src/assets/index.ts 2>/dev/null | head -80
echo "---public peanutman-logo.svg diff vs main---"
git fetch origin main -q
git diff origin/main -- public/peanutman-logo.svg | head -20
echo "(no output means unchanged)"
echo "---mascot index---"
cat src/assets/mascot/index.ts
echo "---logos index---"
cat src/assets/logos/index.ts
echo "---illustrations index---"
cat src/assets/illustrations/index.ts

Length of output: 1111


🏁 Script executed:

#!/bin/bash
cd /tmp/repo
echo "---assets barrel---"
fd index.ts src/assets
echo "---src/assets/index.ts---"
cat src/assets/index.ts 2>/dev/null
echo "---public peanutman-logo.svg diff vs main---"
git fetch origin main -q
git diff origin/main -- public/peanutman-logo.svg
echo "(no output above means unchanged)"
echo "---mascot index---"
cat src/assets/mascot/index.ts
echo "---logos index---"
cat src/assets/logos/index.ts
echo "---illustrations index---"
cat src/assets/illustrations/index.ts
echo "---check duplicate/typo refs, PEANUT_LOGO_BLACK usage---"
rg -n "PEANUT_LOGO_BLACK" src
echo "---check other refs to old paths---"
rg -n "mascot/peanut-logo|illustrations/peanut-logo-dark" src

Length of output: 6817


Everything checks out. Verification confirms the rename is clean and low-risk.

Review findings

Risk of breaking functionality: Low

  • rg -n 'PEANUTMAN_LOGO' returns zero hits across the codebase — no stale references remain.
  • All 14 consumers correctly switched to PEANUTMAN, importing either via the @/assets barrel or @/assets/mascot directly, both of which re-export the renamed symbol.
  • PEANUT_LOGO_BLACK was cleanly relocated from illustrations/ to logos/; the one importer in SendLinkActionList.tsx was updated to the new subpath (@/assets/logos), and it's now correctly re-exported from the logos/index.ts barrel too, so barrel-level imports (@/assets) keep working.
  • public/peanutman-logo.svg is verified byte-identical to main (git diff origin/main -- public/peanutman-logo.svg produced no output) — the external email/embed alias is untouched, as claimed.
  • File renames (git mv-style, similarity index 100%) preserve history correctly for both peanut-logo.svgpeanutman.svg and peanut-logo-dark.svg's directory move.
  • The jest test mock comment in qr-pay-states.test.tsx was updated in sync with the rename, avoiding a stale/misleading comment.

Performance impact: None

  • Pure identifier/path renames with no logic changes — zero runtime or bundle-size impact. SVGs are unchanged pixel-for-pixel.

Code quality / DRY

  • Good catch fixing the alt text from generic "logo"/"Peanut Logo" to more accurate "Peanut mascot" in PeanutLoading/index.tsx and PublicProfile.tsx — though note this wasn't applied uniformly (e.g., CyclingLoading.tsx Line 30 still has alt="logo", and several CTA components keep alt="Peanut Logo" on the mascot image). Not a bug, but a minor inconsistency worth a follow-up if full alt-text accuracy is desired.
  • The ASSET_PEANUTMAN_LOGOASSET_PEANUTMAN local var rename in PixelatedCardFace.tsx keeps naming consistent with the new export.
  • No new duplication introduced; this is a scoped, mechanical rename with a clear single responsibility.

Overall this is a clean, well-scoped rename with no behavioral risk. Nice work confirming the QA checklist alongside it.

✅ Action performed

Review finished.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@github-actions

github-actions Bot commented Jul 2, 2026

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 1643 ran, 0 failed, 0 skipped, 25.4s

📊 Coverage (unit)

metric %
statements 54.6%
branches 37.4%
functions 42.4%
lines 54.6%
⏱ 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.3s src/app/actions/__tests__/api-headers-extended.test.ts › should not include apiKey in updateUserById body
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/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid US account with spaces
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle invalid ETH address (missing 0x prefix)
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid ETH address
0.1s src/components/Request/__tests__/request-states.test.tsx › renders request form with nav header, action card, QR code, amount input, and create button
0.1s src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx › Perk claim in progress shows disabled button + progress
📍 Inline annotations are in the **Unit test report** check above. Coverage artifact: `coverage-unit`. Generated by `.github/workflows/tests.yml`.

@kushagrasarathe kushagrasarathe merged commit 9e7741c into dev Jul 2, 2026
15 of 19 checks passed

@coderabbitai coderabbitai 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.

Actionable comments posted: 6

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/components/TransactionDetails/TransactionCard.tsx (1)

169-175: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the alt text to match the mascot rename.

The src change is correct, but the accessibility label still says “Logo.” Use “Peanut mascot” here so the test-transaction state matches the rest of the rename.

♻️ Suggested tweak
-                                <Image
-                                    src={PEANUTMAN}
-                                    alt="Peanut Logo"
-                                    className="size-8 object-contain"
-                                    width={30}
-                                    height={30}
-                                />
+                                <Image
+                                    src={PEANUTMAN}
+                                    alt="Peanut mascot"
+                                    className="size-8 object-contain"
+                                    width={30}
+                                    height={30}
+                                />
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/TransactionDetails/TransactionCard.tsx` around lines 169 -
175, The Image alt text in TransactionCard still uses the old “Peanut Logo”
label, which does not match the mascot rename. Update the alt prop on the
PEANUTMAN Image in TransactionCard to “Peanut mascot” so the accessibility text
and test-transaction state are consistent with the new naming.
🧹 Nitpick comments (1)
src/app/(mobile-ui)/notifications/page.tsx (1)

12-12: 🚀 Performance & Scalability | 🔵 Trivial

Import the mascot from the narrow asset module.

This page only needs PEANUTMAN, but @/assets re-exports every asset and needlessly bloats the bundle/build work. Prefer the mascot subpath here.

♻️ Proposed fix
-import { PEANUTMAN } from '`@/assets`'
+import { PEANUTMAN } from '`@/assets/mascot`'
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/app/`(mobile-ui)/notifications/page.tsx at line 12, The notifications
page imports PEANUTMAN from the broad assets barrel, which pulls in unnecessary
exports and increases bundle/build work. Update the import in the notifications
page to use the narrow mascot asset module instead of `@/assets`, keeping only
PEANUTMAN referenced in this file.

Source: Linters/SAST tools

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@src/components/Claim/Link/Initial.view.tsx`:
- Line 45: The import in Initial.view.tsx is using the lint-restricted `@/assets`
barrel, which should be replaced with direct submodule imports to match
SendLinkActionList.tsx and QRScanner/index.tsx. Update the PEANUT_LOGO_BLACK and
PEANUTMAN imports to come from their specific asset modules under `@/assets`
instead of the barrel, keeping the same symbols but avoiding the broad re-export
path.
- Line 825: Update the PEANUTMAN image alt text in Initial.view.tsx to match the
new mascot naming used elsewhere, changing the current “Peanut Logo” text to
“Peanut mascot”. Use the existing <Image src={PEANUTMAN} /> element as the
locator and keep the wording consistent with PublicProfile.tsx.

In `@src/components/Global/PeanutLoading/CyclingLoading.tsx`:
- Line 29: The CyclingLoading component still uses the old image alt text, so
update the <img> in CyclingLoading to match the PR’s mascot wording. In the
component identified by PEANUTMAN and the CyclingLoading JSX, change the alt
attribute from the generic logo text to "Peanut mascot" so it stays consistent
with the sibling PeanutLoading/index.tsx update.

In `@src/components/Global/PeanutLoading/index.tsx`:
- Line 1: The import in PeanutLoading uses the assets barrel instead of the
specific module, which violates the project convention. Update the PEANUTMAN
import in this component to come directly from the mascot asset module, matching
the pattern used by sibling components like CardFace and CyclingLoading. Keep
the change scoped to the PEANUTMAN symbol so the component no longer pulls in
the full barrel.

In `@src/components/Profile/components/PublicProfile.tsx`:
- Line 3: The import in PublicProfile still uses the restricted `@/assets` barrel,
so replace it with direct imports from the owning asset modules. Update the
PublicProfile component’s asset import to pull PEANUT_LOGO_BLACK and PEANUTMAN
from their specific module(s), and move HandThumbsUpV2 off the barrel as well if
it is still re-exported there, so the component no longer depends on the broader
asset graph.

In `@src/components/TransactionDetails/TransactionDetailsHeaderCard.tsx`:
- Around line 210-214: The image alt text in TransactionDetailsHeaderCard’s
test-transaction header still uses the old “Logo” label even though the
PEANUTMAN asset was renamed; update the Image alt string to “Peanut mascot” so
the naming is consistent in this component.

---

Outside diff comments:
In `@src/components/TransactionDetails/TransactionCard.tsx`:
- Around line 169-175: The Image alt text in TransactionCard still uses the old
“Peanut Logo” label, which does not match the mascot rename. Update the alt prop
on the PEANUTMAN Image in TransactionCard to “Peanut mascot” so the
accessibility text and test-transaction state are consistent with the new
naming.

---

Nitpick comments:
In `@src/app/`(mobile-ui)/notifications/page.tsx:
- Line 12: The notifications page imports PEANUTMAN from the broad assets
barrel, which pulls in unnecessary exports and increases bundle/build work.
Update the import in the notifications page to use the narrow mascot asset
module instead of `@/assets`, keeping only PEANUTMAN referenced in this file.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dbc1ab21-96bf-4e69-9d60-9d9200eb3c8b

📥 Commits

Reviewing files that changed from the base of the PR and between 6287bb5 and 2bb2dd8.

⛔ Files ignored due to path filters (2)
  • src/assets/logos/peanut-logo-dark.svg is excluded by !**/*.svg
  • src/assets/mascot/peanutman.svg is excluded by !**/*.svg
📒 Files selected for processing (21)
  • src/app/(mobile-ui)/notifications/page.tsx
  • src/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsx
  • src/app/dev/loading-words/page.tsx
  • src/assets/illustrations/index.ts
  • src/assets/logos/index.ts
  • src/assets/mascot/index.ts
  • src/components/Badges/badge.utils.ts
  • src/components/Card/CardFace.tsx
  • src/components/Card/share-asset/PixelatedCardFace.tsx
  • src/components/Claim/Link/Initial.view.tsx
  • src/components/Claim/Link/SendLinkActionList.tsx
  • src/components/Global/ConfirmInviteModal/index.tsx
  • src/components/Global/CreateAccountButton/index.tsx
  • src/components/Global/NoMoreJailModal/index.tsx
  • src/components/Global/PeanutLoading/CyclingLoading.tsx
  • src/components/Global/PeanutLoading/index.tsx
  • src/components/Global/QRScanner/index.tsx
  • src/components/Profile/components/PublicProfile.tsx
  • src/components/TransactionDetails/TransactionCard.tsx
  • src/components/TransactionDetails/TransactionDetailsHeaderCard.tsx
  • src/features/payments/shared/components/SendWithPeanutCta.tsx
💤 Files with no reviewable changes (1)
  • src/assets/illustrations/index.ts

import { Button } from '@/components/0_Bruddle/Button'
import Image from 'next/image'
import { PEANUT_LOGO_BLACK, PEANUTMAN_LOGO } from '@/assets'
import { PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'

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.

📐 Maintainability & Code Quality | 🟠 Major | ⚡ Quick win

Import from @/assets barrel is lint-restricted.

ESLint flags this as an error: importing from the @/assets barrel forces loading every re-export and hurts build perf. Other files in this same PR (SendLinkActionList.tsx, QRScanner/index.tsx) already import from the specific submodules (@/assets/mascot, @/assets/logos) — this file should follow suit.

🛠️ Proposed fix
-import { PEANUT_LOGO_BLACK, PEANUTMAN } from '`@/assets`'
+import { PEANUTMAN } from '`@/assets/mascot`'
+import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import { PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'
import { PEANUTMAN } from '`@/assets/mascot`'
import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
🧰 Tools
🪛 ESLint

[error] 45-45: '@/assets' import is restricted from being used. Import from a specific file instead of the '@/assets' barrel — barrels force the bundler to load every re-export and hurt build perf. See CLAUDE.md.

(no-restricted-imports)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/Claim/Link/Initial.view.tsx` at line 45, The import in
Initial.view.tsx is using the lint-restricted `@/assets` barrel, which should be
replaced with direct submodule imports to match SendLinkActionList.tsx and
QRScanner/index.tsx. Update the PEANUT_LOGO_BLACK and PEANUTMAN imports to come
from their specific asset modules under `@/assets` instead of the barrel, keeping
the same symbols but avoiding the broad re-export path.

Source: Linters/SAST tools

<div>Receive on </div>
<div className="flex items-center gap-1">
<Image src={PEANUTMAN_LOGO} alt="Peanut Logo" className="size-5" />
<Image src={PEANUTMAN} alt="Peanut Logo" className="size-5" />

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Alt text still says "logo" despite PR's stated rename intent.

The PR objective states the mascot alt text should change from "logo" to "Peanut mascot" (confirmed in PublicProfile.tsx which already uses alt="Peanut mascot"), but this <Image src={PEANUTMAN} .../> still uses alt="Peanut Logo".

✏️ Proposed fix
-                        <Image src={PEANUTMAN} alt="Peanut Logo" className="size-5" />
+                        <Image src={PEANUTMAN} alt="Peanut mascot" className="size-5" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<Image src={PEANUTMAN} alt="Peanut Logo" className="size-5" />
<Image src={PEANUTMAN} alt="Peanut mascot" className="size-5" />
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/Claim/Link/Initial.view.tsx` at line 825, Update the PEANUTMAN
image alt text in Initial.view.tsx to match the new mascot naming used
elsewhere, changing the current “Peanut Logo” text to “Peanut mascot”. Use the
existing <Image src={PEANUTMAN} /> element as the locator and keep the wording
consistent with PublicProfile.tsx.

<div className="flex w-full items-center justify-center self-center">
<div className="animate-spin">
<img src={PEANUTMAN_LOGO.src} alt="logo" className="h-10" />
<img src={PEANUTMAN.src} alt="logo" className="h-10" />

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Alt text not updated to "Peanut mascot".

Per the PR objective, mascot alt text should change from "logo" to "Peanut mascot". The sibling PeanutLoading/index.tsx was updated but this one was missed.

💚 Proposed fix
-                    <img src={PEANUTMAN.src} alt="logo" className="h-10" />
+                    <img src={PEANUTMAN.src} alt="Peanut mascot" className="h-10" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<img src={PEANUTMAN.src} alt="logo" className="h-10" />
<img src={PEANUTMAN.src} alt="Peanut mascot" className="h-10" />
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/Global/PeanutLoading/CyclingLoading.tsx` at line 29, The
CyclingLoading component still uses the old image alt text, so update the <img>
in CyclingLoading to match the PR’s mascot wording. In the component identified
by PEANUTMAN and the CyclingLoading JSX, change the alt attribute from the
generic logo text to "Peanut mascot" so it stays consistent with the sibling
PeanutLoading/index.tsx update.

@@ -1,4 +1,4 @@
import { PEANUTMAN_LOGO } from '@/assets'
import { PEANUTMAN } from '@/assets'

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Barrel import violates project convention.

ESLint flags this: importing PEANUTMAN from '@/assets' pulls in the whole barrel instead of the specific module, unlike sibling consumers (e.g. CardFace.tsx, CyclingLoading.tsx) that import from '@/assets/mascot'.

🔧 Proposed fix
-import { PEANUTMAN } from '`@/assets`'
+import { PEANUTMAN } from '`@/assets/mascot`'
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
import { PEANUTMAN } from '@/assets'
import { PEANUTMAN } from '`@/assets/mascot`'
🧰 Tools
🪛 ESLint

[error] 1-1: '@/assets' import is restricted from being used. Import from a specific file instead of the '@/assets' barrel — barrels force the bundler to load every re-export and hurt build perf. See CLAUDE.md.

(no-restricted-imports)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/Global/PeanutLoading/index.tsx` at line 1, The import in
PeanutLoading uses the assets barrel instead of the specific module, which
violates the project convention. Update the PEANUTMAN import in this component
to come directly from the mascot asset module, matching the pattern used by
sibling components like CardFace and CyclingLoading. Keep the change scoped to
the PEANUTMAN symbol so the component no longer pulls in the full barrel.

Source: Linters/SAST tools

'use client'

import { HandThumbsUpV2, PEANUT_LOGO_BLACK, PEANUTMAN_LOGO } from '@/assets'
import { HandThumbsUpV2, PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'

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.

🚀 Performance & Scalability | 🟠 Major | ⚡ Quick win

Avoid the @/assets barrel import.

This still trips the repo’s restricted-imports rule and pulls in the broader asset re-export graph. Split the mascot/logo symbols onto their owning modules instead, and move HandThumbsUpV2 off the barrel too if it still comes from there.

🧰 Tools
🪛 ESLint

[error] 3-3: '@/assets' import is restricted from being used. Import from a specific file instead of the '@/assets' barrel — barrels force the bundler to load every re-export and hurt build perf. See CLAUDE.md.

(no-restricted-imports)

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/Profile/components/PublicProfile.tsx` at line 3, The import in
PublicProfile still uses the restricted `@/assets` barrel, so replace it with
direct imports from the owning asset modules. Update the PublicProfile
component’s asset import to pull PEANUT_LOGO_BLACK and PEANUTMAN from their
specific module(s), and move HandThumbsUpV2 off the barrel as well if it is
still re-exported there, so the component no longer depends on the broader asset
graph.

Source: Linters/SAST tools

Comment on lines 210 to 214
{isTestTransaction ? (
<div className="flex items-center gap-3">
<div>
<Image src={PEANUTMAN_LOGO} alt="Peanut Logo" width={64} height={64} className="size-8" />
<Image src={PEANUTMAN} alt="Peanut Logo" width={64} height={64} className="size-8" />
</div>

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.

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Update the alt text to match the mascot rename.

The image source was renamed, but the label still says “Logo.” Switch this to “Peanut mascot” so the header card stays consistent with the new naming.

♻️ Suggested tweak
-                        <Image src={PEANUTMAN} alt="Peanut Logo" width={64} height={64} className="size-8" />
+                        <Image src={PEANUTMAN} alt="Peanut mascot" width={64} height={64} className="size-8" />
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
{isTestTransaction ? (
<div className="flex items-center gap-3">
<div>
<Image src={PEANUTMAN_LOGO} alt="Peanut Logo" width={64} height={64} className="size-8" />
<Image src={PEANUTMAN} alt="Peanut Logo" width={64} height={64} className="size-8" />
</div>
{isTestTransaction ? (
<div className="flex items-center gap-3">
<div>
<Image src={PEANUTMAN} alt="Peanut mascot" width={64} height={64} className="size-8" />
</div>
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@src/components/TransactionDetails/TransactionDetailsHeaderCard.tsx` around
lines 210 - 214, The image alt text in TransactionDetailsHeaderCard’s
test-transaction header still uses the old “Logo” label even though the
PEANUTMAN asset was renamed; update the Image alt string to “Peanut mascot” so
the naming is consistent in this component.

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