Skip to content

Index page ux fixes#1781

Closed
ragnep wants to merge 2 commits intomainfrom
homepage-ux-fixes
Closed

Index page ux fixes#1781
ragnep wants to merge 2 commits intomainfrom
homepage-ux-fixes

Conversation

@ragnep
Copy link
Copy Markdown
Contributor

@ragnep ragnep commented Jan 21, 2026

Summary by CodeRabbit

  • New Features

    • Added a new hero header to the home page with "Where art meets community" messaging.
  • Style

    • Streamlined Now Minting area: more compact cards, tighter spacing, refined typography, and simplified layout for loading, live, error, sold-out, and finalized states.
    • Adjusted paddings, gaps, and avatar/header presentation for improved visual consistency.

✏️ Tip: You can customize this high-level summary in your review settings.

Signed-off-by: ragnep <ragneinfo@gmail.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 21, 2026

📝 Walkthrough

Walkthrough

Adds a new client-side HeroHeader component and re-exports it; HomePageContent now renders before the NowMintingSection. Multiple NowMinting* components receive styling and layout refinements and minor data-formatting/local-variable updates.

Changes

Cohort / File(s) Summary
Hero component & export
components/home/hero/HeroHeader.tsx, components/home/hero/index.ts
New client-side HeroHeader default component (numeric label, heading "Where art meets community", paragraph) and a named re-export added to the hero barrel.
Homepage integration
components/home/HomePageContent.tsx
Imported and inserted <HeroHeader /> into the home page JSX immediately before NowMintingSection, changing render order.
Now-minting: section & layout
components/home/now-minting/NowMintingSection.tsx, components/home/now-minting/...
Broad visual/layout adjustments across NowMinting components: reduced paddings/gaps, replaced rounded-xl → rounded-lg in many cards, simplified grid/divider structures, adjusted column spans and padding. Affects many files in components/home/now-minting/ (CountdownActive/Error/Finalized/Loading/SoldOut, Details, DetailsAccordion, Header, StatsGrid, StatsItem).
Now-minting: small logic/formatting
components/home/now-minting/NowMintingDetails.tsx, components/home/now-minting/NowMintingStatsGrid.tsx, components/home/now-minting/NowMintingStatsItem.tsx
Introduced local floorPrice constant (uses formatEth) and reused it; editionSize formatting updated to remove spaces around /; value typography and nowrap behavior adjusted.

Sequence Diagram(s)

(omitted — changes are primarily UI composition and styling, not new multi-component control flow)

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Suggested reviewers

  • simo6529
  • prxt6529

Poem

🐰
I hopped in bright at break of day,
A tiny badge to lead the way.
"Where art meets community" I sing,
With rounded cards and tidied string.
thump-thump — celebrate the play!

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (1 warning, 1 inconclusive)
Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ❓ Inconclusive The title 'Index page ux fixes' is vague and generic, using non-descriptive terms that don't convey meaningful information about the specific changes. Use a more specific title that describes the main changes, such as 'Add HeroHeader component and refactor NowMinting styling' to better reflect the primary modifications in the changeset.
✅ Passed checks (1 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ 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.

❤️ Share

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

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

Caution

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

⚠️ Outside diff range comments (1)
components/home/now-minting/NowMintingSection.tsx (1)

31-36: Incorrect spread operator usage will render nothing.

The spread syntax {...new Array(4).map(...)} doesn't work as intended for rendering JSX arrays. The spread operator on an array in JSX context won't render the elements—it will spread the array indices as props to the parent, effectively rendering nothing.

Additionally, new Array(4) creates an array with 4 empty slots, and .map() won't iterate over empty slots.

Proposed fix
                <div className="tw-grid tw-grid-cols-2 tw-gap-4">
-                  {...new Array(4).map((_, i) => (
+                  {Array.from({ length: 4 }).map((_, i) => (
                    <div key={i} className="tw-space-y-2">
                      <div className="tw-h-4 tw-w-16 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
                      <div className="tw-h-6 tw-w-24 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
                    </div>
                  ))}
                </div>
🧹 Nitpick comments (1)
components/home/hero/HeroHeader.tsx (1)

1-1: Consider removing "use client" directive.

This component has no client-side interactivity—no hooks, event handlers, or browser APIs. It can be rendered as a Server Component, which would reduce the client bundle size.

Proposed fix
-"use client";
-
 export default function HeroHeader() {

Signed-off-by: ragnep <ragneinfo@gmail.com>
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
1 Security Hotspot

See analysis details on SonarQube Cloud

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@components/home/now-minting/NowMintingSection.tsx`:
- Around line 30-37: The JSX uses {...new Array(4).map(...)} which both creates
a sparse array that map will skip and incorrectly spreads properties into JSX;
replace this with a dense iterable and map directly: e.g., use
Array.from({length: 4}) or [...Array(4)] and call .map on that expression
(without the spread) to render the four placeholders, keeping the existing
key={i} and inner markup (refer to the mapping expression around the placeholder
divs).
🧹 Nitpick comments (1)
components/home/now-minting/NowMintingHeader.tsx (1)

54-62: Hover styling may not apply consistently to the ArtistProfileHandle child.

The desktop-hover:hover:tw-text-iron-100 class on the outer <span> won't affect the text color of the ArtistProfileHandle component if it renders its own text elements with their own color classes. The hover effect will only work for the plain artistName text (line 60).

Consider either:

  1. Passing a className prop to ArtistProfileHandle to inherit hover styles, or
  2. Moving the hover styling to a parent wrapper that uses CSS inheritance (e.g., via group utilities)

Comment on lines +30 to 37
<div className="tw-grid tw-grid-cols-2 tw-gap-3">
{...new Array(4).map((_, i) => (
<div key={i} className="tw-space-y-2">
<div className="tw-h-4 tw-w-16 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
<div className="tw-h-6 tw-w-24 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
</div>
))}
</div>
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Bug: Incorrect array creation and spread syntax.

Two issues here:

  1. new Array(4).map() creates a sparse array with empty slots - map() skips empty slots, so nothing will render
  2. The spread operator {...array} in JSX spreads object properties, not array elements
🐛 Proposed fix
-                <div className="tw-grid tw-grid-cols-2 tw-gap-3">
-                  {...new Array(4).map((_, i) => (
+                <div className="tw-grid tw-grid-cols-2 tw-gap-3">
+                  {Array.from({ length: 4 }, (_, i) => (
                     <div key={i} className="tw-space-y-2">
                       <div className="tw-h-4 tw-w-16 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
                       <div className="tw-h-6 tw-w-24 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
                     </div>
                   ))}
                 </div>
📝 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
<div className="tw-grid tw-grid-cols-2 tw-gap-3">
{...new Array(4).map((_, i) => (
<div key={i} className="tw-space-y-2">
<div className="tw-h-4 tw-w-16 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
<div className="tw-h-6 tw-w-24 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
</div>
))}
</div>
<div className="tw-grid tw-grid-cols-2 tw-gap-3">
{Array.from({ length: 4 }, (_, i) => (
<div key={i} className="tw-space-y-2">
<div className="tw-h-4 tw-w-16 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
<div className="tw-h-6 tw-w-24 tw-animate-pulse tw-rounded tw-bg-iron-800/50" />
</div>
))}
</div>
🤖 Prompt for AI Agents
In `@components/home/now-minting/NowMintingSection.tsx` around lines 30 - 37, The
JSX uses {...new Array(4).map(...)} which both creates a sparse array that map
will skip and incorrectly spreads properties into JSX; replace this with a dense
iterable and map directly: e.g., use Array.from({length: 4}) or [...Array(4)]
and call .map on that expression (without the spread) to render the four
placeholders, keeping the existing key={i} and inner markup (refer to the
mapping expression around the placeholder divs).

@ragnep ragnep closed this Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant