refactor(assets): name the mascot a mascot, not a logo#2317
Conversation
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).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
WalkthroughThe mascot asset export ChangesMascot Asset Rename and Consumer Updates
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
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. Comment |
Code-analysis diffPainscore total: 5839.07 → 5841.93 (+2.86) 🆕 New findings (2)
✅ Resolved (2)
|
🧪 UI test report — ✅ all greenSuites
📊 Coverage (unit)
⏱ 10 slowest test cases
|
There was a problem hiding this comment.
Actionable comments posted: 10
🧹 Nitpick comments (2)
src/app/(mobile-ui)/notifications/page.tsx (1)
12-12: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueConsider importing from
@/assets/mascotdirectly to resolve the barrel import violation.The static analysis flags
@/assetsas a restricted barrel import. While this file already used@/assetsforPEANUTMAN_LOGO, the rename is a good opportunity to align with the project rule and importPEANUTMANfrom@/assets/mascotinstead, matching whatsrc/app/dev/loading-words/page.tsxdoes.-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 winStale alt text "logo".
PR objective states the mascot alt text is updated from
"logo"to"Peanut mascot";PeanutLoading/index.tsxwas updated accordingly but this sibling component still usesalt="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
⛔ Files ignored due to path filters (3)
public/peanutman.svgis excluded by!**/*.svgsrc/assets/logos/peanut-logo-dark.svgis excluded by!**/*.svgsrc/assets/mascot/peanutman.svgis excluded by!**/*.svg
📒 Files selected for processing (21)
src/app/(mobile-ui)/notifications/page.tsxsrc/app/(mobile-ui)/qr-pay/__tests__/qr-pay-states.test.tsxsrc/app/dev/loading-words/page.tsxsrc/assets/illustrations/index.tssrc/assets/logos/index.tssrc/assets/mascot/index.tssrc/components/Badges/badge.utils.tssrc/components/Card/CardFace.tsxsrc/components/Card/share-asset/PixelatedCardFace.tsxsrc/components/Claim/Link/Initial.view.tsxsrc/components/Claim/Link/SendLinkActionList.tsxsrc/components/Global/ConfirmInviteModal/index.tsxsrc/components/Global/CreateAccountButton/index.tsxsrc/components/Global/NoMoreJailModal/index.tsxsrc/components/Global/PeanutLoading/CyclingLoading.tsxsrc/components/Global/PeanutLoading/index.tsxsrc/components/Global/QRScanner/index.tsxsrc/components/Profile/components/PublicProfile.tsxsrc/components/TransactionDetails/TransactionCard.tsxsrc/components/TransactionDetails/TransactionDetailsHeaderCard.tsxsrc/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' |
There was a problem hiding this comment.
📐 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.
| 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" /> |
There was a problem hiding this comment.
🎯 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.
| <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" /> |
There was a problem hiding this comment.
🎯 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.
| <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' |
There was a problem hiding this comment.
📐 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.
| 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' |
There was a problem hiding this comment.
📐 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.
| 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' |
There was a problem hiding this comment.
📐 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.
| 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' | |||
There was a problem hiding this comment.
📐 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.
| 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' |
There was a problem hiding this comment.
📐 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.
| 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' |
There was a problem hiding this comment.
📐 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.
| 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" /> |
There was a problem hiding this comment.
🎯 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.
| <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.
Summary
PEANUTMAN_LOGOwas 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):
PEANUTMAN_LOGO→PEANUTMANand filemascot/peanut-logo.svg→mascot/peanutman.svg; update all 18 call sites, the localASSET_var, and the mascotalttext ("logo"→"Peanut mascot").PEANUT_LOGO_BLACKout ofillustrations/intologos/(it's the brand logo); fix the one subpath import.public/peanutman.svg(correct name) while keepingpublic/peanutman-logo.svgas an alias, so external consumers hardcodingpeanut.me/peanutman-logo.svgkeep resolving.Risks / breaking changes
PEANUTMANis a new token (no collision) and consumers import via the@/assetsbarrel which re-exports it unchanged. Typecheck enforces completeness.public/peanutman-logo.svgpath is retained as an alias.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).QA
npm run typecheck— clean (catches any missed rename).npm test— green (thecountryCurrencyMappingflag suite needs thecopy-flagsprebuild, which CI/build runs).grep -rn PEANUTMAN_LOGO src→ no hits.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.