Skip to content

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

Draft
0xkkonrad wants to merge 2 commits into
devfrom
chore/rename-mascot-logo-assets
Draft

refactor(assets): name the mascot a mascot, not a logo#2317
0xkkonrad wants to merge 2 commits into
devfrom
chore/rename-mascot-logo-assets

Conversation

@0xkkonrad

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 18 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.
  • Add public/peanutman.svg (correct name) while keeping public/peanutman-logo.svg as an alias, so external consumers hardcoding peanut.me/peanutman-logo.svg keep resolving.

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: the old public/peanutman-logo.svg path is retained as an alias.
  • Deliberately NOT touched: public/logo-favicon.png — it's the favicon/app-icon (accurately named) and is load-bearing for the pending Card Closed Beta email drip (16 templates hardcode its URL). Renaming it was verified unsafe (OneSignal templates clean, but the email drafts hardcode it).
  • No cross-repo impact.

QA

  • npm run typecheck — clean (catches any missed rename).
  • npm test — green (the countryCurrencyMapping flag suite needs the copy-flags prebuild, which CI/build runs).
  • Grep sanity: grep -rn PEANUTMAN_LOGO src → no hits.
  • Visual: mascot renders unchanged on the loading screen, public profile, claim/link, card share, tx details.

Local build compiles (webpack + SW bundle OK); the content-gen step OOMs on my box (~5 GB free) — the known worktree build-OOM, deferred to CI.

0xkkonrad added 2 commits July 1, 2026 08:08
PEANUTMAN_LOGO was the peanut-character illustration mislabeled as a
"logo" — a distinct asset from the app icon (peanut-icon) and the PEANUT
wordmark. The name described where it was first used (a header), not what
it depicts.

- rename export PEANUTMAN_LOGO → PEANUTMAN and file peanut-logo.svg →
  peanutman.svg; update all 18 call sites, the local ASSET_ var, and the
  mascot alt text ("logo" → "Peanut mascot")
- move PEANUT_LOGO_BLACK out of illustrations/ into logos/ where the brand
  logo belongs; fix the one subpath import (@/assets/illustrations → logos)

No behavior change — same pixels, accurate names.
Adds the correctly-named public copy of the mascot while KEEPING
public/peanutman-logo.svg in place, so any external consumer that
hardcodes peanut.me/peanutman-logo.svg (marketing emails, embeds, the
native app) keeps resolving. Public asset paths are an external API —
rename by adding, never by moving.

Note: public/logo-favicon.png is intentionally left untouched — it is the
favicon/app-icon (accurately named) and is load-bearing for the pending
Card Closed Beta email drip (16 templates hardcode its URL).
@vercel

vercel Bot commented Jul 1, 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 1, 2026 8:14am

Request Review

@coderabbitai

coderabbitai Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

The mascot asset export PEANUTMAN_LOGO is renamed to PEANUTMAN, backed by a different SVG source file. All consumers across pages and components update imports and rendered image sources accordingly. Additionally, PEANUT_LOGO_BLACK is moved from the illustrations index to the logos index.

Changes

Mascot Asset Rename and Consumer Updates

Layer / File(s) Summary
Asset export rename and reorganization
src/assets/mascot/index.ts, src/assets/illustrations/index.ts, src/assets/logos/index.ts
Mascot module renames PEANUTMAN_LOGO to PEANUTMAN pointing to ./peanutman.svg; PEANUT_LOGO_BLACK export is removed from illustrations and added to logos.
Core UI components and cards
src/components/Badges/badge.utils.ts, src/components/Card/CardFace.tsx, src/components/Card/share-asset/PixelatedCardFace.tsx, src/components/TransactionDetails/TransactionCard.tsx, src/components/TransactionDetails/TransactionDetailsHeaderCard.tsx, src/components/Profile/components/PublicProfile.tsx
Badge fallback icon, card faces, pixelated card rendering, transaction avatars, and public profile header switch to the PEANUTMAN asset.
Claim and send flows
src/components/Claim/Link/Initial.view.tsx, src/components/Claim/Link/SendLinkActionList.tsx, src/features/payments/shared/components/SendWithPeanutCta.tsx
Claim receive button, send-link continue button, and send-with-Peanut CTA update their logo imports and rendered image sources to PEANUTMAN.
Modals, buttons, and loading indicators
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
Modal and button logos, cycling/loading indicators, and QR scanner payment method icon switch to PEANUTMAN, with a sizing class and alt-text tweak added.
Pages and test comment updates
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
Notifications fallback icon and loading-words preview switch to PEANUTMAN; a test comment reference is updated with no logic change.

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

Possibly related PRs

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 40.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly summarizes the asset rename refactor and matches the main change.
Description check ✅ Passed The description accurately describes the mascot asset rename and related path updates.
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.
✨ 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

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

Code-analysis diff

Painscore total: 5839.07 → 5841.93 (+2.86)
Findings: 0 net (+2 new, -2 resolved)

🆕 New findings (2)

  • high hotspot — src/components/Badges/badge.utils.ts — 31 commits, +319/-104 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 — 30 commits, +317/-102 lines since 6 months ago
  • src/components/TransactionDetails/TransactionCard.tsx — 26 commits, +190/-138 lines since 6 months ago

@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown
Contributor

🧪 UI test report — ✅ all green

Suites

  • unit: 1596 ran, 0 failed, 0 skipped, 23.5s

📊 Coverage (unit)

metric %
statements 54.2%
branches 36.7%
functions 41.6%
lines 54.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.4s 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.test.ts › should include Content-Type in updateUserById
0.3s src/app/actions/__tests__/api-headers-extended.test.ts › should not include apiKey in updateUserById body
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 valid 9-digit US account
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle valid ETH address with surrounding 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 UK IBAN with spaces
0.1s src/components/Global/GeneralRecipientInput/__tests__/GeneralRecipientInput.test.tsx › should handle too long for 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 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: 10

🧹 Nitpick comments (2)
src/app/(mobile-ui)/notifications/page.tsx (1)

12-12: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low value

Consider importing from @/assets/mascot directly to resolve the barrel import violation.

The static analysis flags @/assets as a restricted barrel import. While this file already used @/assets for PEANUTMAN_LOGO, the rename is a good opportunity to align with the project rule and import PEANUTMAN from @/assets/mascot instead, matching what src/app/dev/loading-words/page.tsx does.

-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 import in the
notifications page is using the restricted barrel entry for the mascot asset.
Update the `PEANUTMAN` import in the `notifications/page.tsx` module to come
directly from `@/assets/mascot`, matching the existing project pattern used
elsewhere, and keep the rest of the asset imports aligned with the direct-path
rule.

Source: Linters/SAST tools

src/components/Global/PeanutLoading/CyclingLoading.tsx (1)

29-29: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Stale alt text "logo".

PR objective states the mascot alt text is updated from "logo" to "Peanut mascot"; PeanutLoading/index.tsx was updated accordingly but this sibling component still uses alt="logo".

✏️ Suggested fix
-                    <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 alt
text in CyclingLoading still uses the stale value "logo"; update the <img> in
CyclingLoading.tsx to match the mascot wording used elsewhere, aligning it with
the existing PeanutLoading/index.tsx change by using the same descriptive alt
text for PEANUTMAN.src.
🤖 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 restricted `@/assets`
barrel, so replace it with direct source imports for PEANUT_LOGO_BLACK and
PEANUTMAN. Update the import near the top of the component to reference the
specific asset modules instead of the barrel, keeping the same identifiers so
the rest of the file (including Initial.view.tsx usage) remains unchanged.
- Line 825: The mascot image in Initial.view.tsx still uses the old alt text, so
update the PEANUTMAN Image element in the relevant Claim/Link markup to use
"Peanut mascot" instead of "Peanut Logo". Locate the change by the Image
component with src={PEANUTMAN} and adjust only its alt attribute to match the PR
objective.

In `@src/components/Claim/Link/SendLinkActionList.tsx`:
- Line 240: The PEANUTMAN image in SendLinkActionList still uses the wrong alt
text, so update the Image element’s alt prop from the current logo wording to
"Peanut mascot" to match the PR objective. Use the PEANUTMAN reference in
SendLinkActionList.tsx to locate the JSX and replace only the alt text value.

In `@src/components/Global/ConfirmInviteModal/index.tsx`:
- Line 4: The import in ConfirmInviteModal is using the `@/assets` barrel, which
violates the ESLint import rule. Update the top-level import in the
ConfirmInviteModal component to pull PEANUT_LOGO_BLACK and PEANUTMAN from their
specific asset modules instead of the aggregated barrel, using the existing
asset names to locate the correct source files.

In `@src/components/Global/CreateAccountButton/index.tsx`:
- Line 3: The CreateAccountButton module is importing assets through the barrel
export, which violates the ESLint import rule. Update the import in
CreateAccountButton/index.tsx to use the direct asset module paths instead of
the aggregated `@/assets` barrel, keeping the referenced symbols PEANUT_LOGO_BLACK
and PEANUTMAN intact.

In `@src/components/Global/NoMoreJailModal/index.tsx`:
- Line 6: The import in NoMoreJailModal should avoid the barrel module and use
direct asset imports instead. Update the import in the component to reference
the specific asset source for PEANUT_LOGO_BLACK and PEANUTMAN, matching the same
ESLint-friendly pattern used elsewhere in this cohort.

In `@src/components/Global/PeanutLoading/index.tsx`:
- Line 1: The import in PeanutLoading is using the barrel export from the assets
module, which violates the ESLint barrel-import rule. Update the PEANUTMAN
import in the PeanutLoading component to point to the direct asset source
instead of importing from '`@/assets`', and keep the symbol name unchanged so the
component continues to reference PEANUTMAN correctly.

In `@src/components/Profile/components/PublicProfile.tsx`:
- Line 3: The import in PublicProfile.tsx is using the `@/assets` barrel, which
violates the no-restricted-imports rule and can pull in unnecessary re-exports.
Update the imports for HandThumbsUpV2, PEANUT_LOGO_BLACK, and PEANUTMAN to come
directly from their specific asset files instead of the barrel, keeping the rest
of PublicProfile unchanged.

In `@src/features/payments/shared/components/SendWithPeanutCta.tsx`:
- Line 103: Update the PEANUTMAN image in SendWithPeanutCta so its alt text
matches the PR objective: change the Image component’s alt from “Peanut Logo” to
“Peanut mascot”. Use the existing PEANUTMAN usage in SendWithPeanutCta to locate
the change and keep the rest of the component unchanged.
- Line 11: The import in SendWithPeanutCta should not use the restricted
`@/assets` barrel; replace the combined asset import with direct source imports
for PEANUT_LOGO_BLACK and PEANUTMAN. Update the import statement in
SendWithPeanutCta to reference the specific asset modules directly so the
component no longer depends on the barrel.

---

Nitpick comments:
In `@src/app/`(mobile-ui)/notifications/page.tsx:
- Line 12: The import in the notifications page is using the restricted barrel
entry for the mascot asset. Update the `PEANUTMAN` import in the
`notifications/page.tsx` module to come directly from `@/assets/mascot`,
matching the existing project pattern used elsewhere, and keep the rest of the
asset imports aligned with the direct-path rule.

In `@src/components/Global/PeanutLoading/CyclingLoading.tsx`:
- Line 29: The alt text in CyclingLoading still uses the stale value "logo";
update the <img> in CyclingLoading.tsx to match the mascot wording used
elsewhere, aligning it with the existing PeanutLoading/index.tsx change by using
the same descriptive alt text for PEANUTMAN.src.
🪄 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: 7099a9d4-7279-4d94-b5e5-943f317f14b3

📥 Commits

Reviewing files that changed from the base of the PR and between efbb2bd and 8e5802d.

⛔ Files ignored due to path filters (3)
  • public/peanutman.svg is excluded by !**/*.svg
  • 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

Use specific import paths instead of the @/assets barrel.

The @/assets barrel import is restricted (see no-restricted-imports in CLAUDE.md). Split this into direct source imports:

-import { PEANUT_LOGO_BLACK, PEANUTMAN } from '`@/assets`'
+import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
+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 { PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'
import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
import { PEANUTMAN } from '`@/assets/mascot`'
🧰 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 restricted `@/assets` barrel, so replace it with
direct source imports for PEANUT_LOGO_BLACK and PEANUTMAN. Update the import
near the top of the component to reference the specific asset modules instead of
the barrel, keeping the same identifiers so the rest of the file (including
Initial.view.tsx usage) remains unchanged.

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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update mascot alt to "Peanut mascot" per PR objectives.

The PR description states mascot alt text should change to "Peanut mascot". The PEANUTMAN image here still carries alt="Peanut Logo".

-                        <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, The mascot image in
Initial.view.tsx still uses the old alt text, so update the PEANUTMAN Image
element in the relevant Claim/Link markup to use "Peanut mascot" instead of
"Peanut Logo". Locate the change by the Image component with src={PEANUTMAN} and
adjust only its alt attribute to match the PR objective.

{showDevconnectMethod ? <div>Claim on</div> : <div>Continue with </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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update mascot alt to "Peanut mascot" per PR objectives.

The PEANUTMAN image here still carries alt="Peanut Logo" instead of "Peanut mascot" as described in the PR summary.

-                        <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/SendLinkActionList.tsx` at line 240, The PEANUTMAN
image in SendLinkActionList still uses the wrong alt text, so update the Image
element’s alt prop from the current logo wording to "Peanut mascot" to match the
PR objective. Use the PEANUTMAN reference in SendLinkActionList.tsx to locate
the JSX and replace only the alt text value.

import { type FC } from 'react'
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

Fix barrel import per ESLint rule.

Importing from @/assets barrel is flagged by the lint rule; import from the specific file (e.g. @/assets/mascot, @/assets/logos) instead.

🔧 Suggested 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] 4-4: '@/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/ConfirmInviteModal/index.tsx` at line 4, The import in
ConfirmInviteModal is using the `@/assets` barrel, which violates the ESLint
import rule. Update the top-level import in the ConfirmInviteModal component to
pull PEANUT_LOGO_BLACK and PEANUTMAN from their specific asset modules instead
of the aggregated barrel, using the existing asset names to locate the correct
source files.

Source: Linters/SAST tools

'use client'

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

Fix barrel import per ESLint rule.

Same barrel-import violation as elsewhere in this cohort.

🔧 Suggested 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] 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/Global/CreateAccountButton/index.tsx` at line 3, The
CreateAccountButton module is importing assets through the barrel export, which
violates the ESLint import rule. Update the import in
CreateAccountButton/index.tsx to use the direct asset module paths instead of
the aggregated `@/assets` barrel, keeping the referenced symbols PEANUT_LOGO_BLACK
and PEANUTMAN intact.

Source: Linters/SAST tools

import { ANALYTICS_EVENTS, MODAL_TYPES } from '@/constants/analytics.consts'
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

Fix barrel import per ESLint rule.

Same barrel-import violation as elsewhere in this cohort.

🔧 Suggested 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] 6-6: '@/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/NoMoreJailModal/index.tsx` at line 6, The import in
NoMoreJailModal should avoid the barrel module and use direct asset imports
instead. Update the import in the component to reference the specific asset
source for PEANUT_LOGO_BLACK and PEANUTMAN, matching the same ESLint-friendly
pattern used elsewhere in this cohort.

Source: Linters/SAST tools

@@ -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 | 🟠 Major | ⚡ Quick win

Fix barrel import per ESLint rule.

Same barrel-import violation flagged by ESLint elsewhere in this cohort.

🔧 Suggested 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 is using the barrel export from the assets module, which violates
the ESLint barrel-import rule. Update the PEANUTMAN import in the PeanutLoading
component to point to the direct asset source instead of importing from
'`@/assets`', and keep the symbol name unchanged so the component continues to
reference PEANUTMAN correctly.

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.

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

Barrel import violates no-restricted-imports lint rule.

ESLint flags import { HandThumbsUpV2, PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets' as restricted; imports must come from specific asset files instead of the @/assets barrel to avoid loading every re-export.

🔧 Proposed fix
-import { HandThumbsUpV2, PEANUT_LOGO_BLACK, PEANUTMAN } from '`@/assets`'
+import { HandThumbsUpV2 } from '`@/assets/illustrations`'
+import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
+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 { HandThumbsUpV2, PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'
import { HandThumbsUpV2 } from '`@/assets/illustrations`'
import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
import { PEANUTMAN } from '`@/assets/mascot`'
🧰 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.tsx is using the `@/assets` barrel, which violates the
no-restricted-imports rule and can pull in unnecessary re-exports. Update the
imports for HandThumbsUpV2, PEANUT_LOGO_BLACK, and PEANUTMAN to come directly
from their specific asset files instead of the barrel, keeping the rest of
PublicProfile unchanged.

Source: Linters/SAST tools

*/

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

Use specific import paths instead of the @/assets barrel.

The @/assets barrel import is restricted. Split into direct source imports:

-import { PEANUT_LOGO_BLACK, PEANUTMAN } from '`@/assets`'
+import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
+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 { PEANUT_LOGO_BLACK, PEANUTMAN } from '@/assets'
import { PEANUT_LOGO_BLACK } from '`@/assets/logos`'
import { PEANUTMAN } from '`@/assets/mascot`'
🧰 Tools
🪛 ESLint

[error] 11-11: '@/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/features/payments/shared/components/SendWithPeanutCta.tsx` at line 11,
The import in SendWithPeanutCta should not use the restricted `@/assets` barrel;
replace the combined asset import with direct source imports for
PEANUT_LOGO_BLACK and PEANUTMAN. Update the import statement in
SendWithPeanutCta to reference the specific asset modules directly so the
component no longer depends on the barrel.

Source: Linters/SAST tools

return (
<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.

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Update mascot alt to "Peanut mascot" per PR objectives.

The PEANUTMAN image here still carries alt="Peanut Logo" instead of "Peanut mascot" as described in the PR summary.

-                <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/features/payments/shared/components/SendWithPeanutCta.tsx` at line 103,
Update the PEANUTMAN image in SendWithPeanutCta so its alt text matches the PR
objective: change the Image component’s alt from “Peanut Logo” to “Peanut
mascot”. Use the existing PEANUTMAN usage in SendWithPeanutCta to locate the
change and keep the rest of the component unchanged.

@0xkkonrad 0xkkonrad added the chore Maintenance / tooling / renames — no product behavior change label Jul 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance / tooling / renames — no product behavior change

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant