Skip to content

Simo6529/buffalo#1782

Merged
simo6529 merged 8 commits intomainfrom
simo6529/buffalo
Jan 21, 2026
Merged

Simo6529/buffalo#1782
simo6529 merged 8 commits intomainfrom
simo6529/buffalo

Conversation

@simo6529
Copy link
Copy Markdown
Collaborator

@simo6529 simo6529 commented Jan 21, 2026

Summary by CodeRabbit

Release Notes

  • New Features

    • Added bookmark functionality for drops with dedicated bookmark/unbookmark actions
    • Introduced hot waves overview section
    • New hero header section on homepage with key messaging
  • UI Improvements

    • Boosted drops section redesigned with responsive masonry grid layout
    • Enhanced content display with clickable URL linkification
    • Refined styling and spacing across mint phase indicators
    • Updated waves section messaging
  • Chores

    • Added masonry layout library dependency

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

ragnep and others added 7 commits January 21, 2026 16:19
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: Simo <simo@6529.io>
Signed-off-by: Simo <simo@6529.io>
Signed-off-by: Simo <simo@6529.io>
Signed-off-by: Simo <simo@6529.io>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: Simo <simo@6529.io>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jan 21, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

Introduces drop bookmarking functionality via new API endpoints and context fields, adds a HeroHeader component to the home page, redesigns the boosted drops section with a Masonry grid layout, updates styling/typography across NowMinting components, changes the ExploreWavesSection API endpoint, and implements URL linkification in drop content rendering.

Changes

Cohort / File(s) Summary
Bookmarking API Schema
openapi.yaml
Adds POST/DELETE /drops/{dropId}/bookmark endpoints for bookmark management, GET /drops-bookmarked/ for fetching user's bookmarked drops, GET /waves-overview/hot for trending waves, and extends ApiDropContextProfileContext schema with required bookmarked: boolean field.
Bookmarking Context Updates
hooks/drops/useDropBoostMutation.ts, components/drops/view/item/rate/give/DropListItemRateGiveSubmit.tsx, components/waves/drops/WaveDropActionsAddReaction.tsx, components/waves/drops/WaveDropReactions.tsx
Adds bookmarked: false initialization to default ApiDropContextProfileContext in optimistic update paths to ensure context includes the new bookmarked property.
URL Linkification
components/waves/drops/ContentSegmentComponent.tsx
Introduces URL detection and linkification utility (URL_REGEX, linkifyText) to convert URL substrings in text segments into clickable anchor elements with stopPropagation and consistent styling.
Home Page Hero Section
components/home/hero/HeroHeader.tsx, components/home/hero/index.ts, components/home/HomePageContent.tsx
Adds new static HeroHeader client component rendering "Building a decentralized network state" title, exports it via index barrel file, and integrates it into HomePageContent to replace SubmissionCarouselSection.
Boosted Section Redesign
components/home/boosted/BoostedSection.tsx, components/home/boosted/BoostedDropCardHome.tsx
Migrates horizontal scroll layout to Masonry grid with responsive breakpoints and item limits; adds dynamic boost icon cluster (up to 5 icons + overflow indicator), time-ago badge, and restructures card content rendering with author/wave links and optional media panels.
NowMinting Styling & Layout
components/home/now-minting/NowMintingSection.tsx, components/home/now-minting/NowMintingHeader.tsx, components/home/now-minting/NowMintingDetails.tsx, components/home/now-minting/NowMintingStatsGrid.tsx, components/home/now-minting/NowMintingStatsItem.tsx, components/home/now-minting/NowMintingDetailsAccordion.tsx, components/home/now-minting/NowMintingCountdownActive.tsx, components/home/now-minting/NowMintingCountdownError.tsx, components/home/now-minting/NowMintingCountdownFinalized.tsx, components/home/now-minting/NowMintingCountdownLoading.tsx, components/home/now-minting/NowMintingCountdownSoldOut.tsx
Updates typography sizing, padding/spacing, border/background styling, and container roundness across countdown and stats components; simplifies skeleton UI; adjusts avatar sizing and layout in header; normalizes edition size formatting.
ExploreWaves Section Update
components/home/explore-waves/ExploreWavesSection.tsx
Changes API endpoint from waves-overview to waves-overview/hot with array slicing, updates header text from "Explore waves" to "Tired of bot replies?", and removes descriptive paragraph.
Dependencies & Tooling
package.json, scripts/worktree/wt-common.sh
Adds react-masonry-css@^1.0.16 dependency; updates worktree script to validate color against known-colors list with fallback logic and refactors placeholder-based color substitution.

Sequence Diagram

sequenceDiagram
    actor User
    participant UI as React Component
    participant API as API Server
    participant DB as Database

    rect rgba(100, 150, 200, 0.5)
    note over User,DB: Bookmark Drop Flow
    User->>UI: Click Bookmark Button
    UI->>API: POST /drops/{dropId}/bookmark
    API->>DB: Create Bookmark Record
    DB-->>API: Bookmark Confirmed
    API-->>UI: Return Updated ApiDrop<br/>(bookmarked: true)
    UI->>UI: Update Context<br/>(bookmarked: true)
    UI-->>User: Show Bookmarked State
    end

    rect rgba(150, 100, 200, 0.5)
    note over User,DB: Unbookmark Drop Flow
    User->>UI: Click Unbookmark Button
    UI->>API: DELETE /drops/{dropId}/bookmark
    API->>DB: Remove Bookmark Record
    DB-->>API: Bookmark Removed
    API-->>UI: Return Updated ApiDrop<br/>(bookmarked: false)
    UI->>UI: Update Context<br/>(bookmarked: false)
    UI-->>User: Show Unbookmarked State
    end
Loading

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~75 minutes

Possibly related PRs

  • boost boosted drop #1714: Modifies the same hook (useDropBoostMutation) to extend context shape and optimistic update logic.
  • Submission carousel ux improvements #1756: Changes homepage hero and carousel area components (HomePageContent.tsx, hero files) with overlapping code regions.
  • Index redesign #1719: "Index redesign" PR with extensive overlap in home section components (boosted, now-minting, explore-waves, hero) and similar layout/styling refactors.

Suggested reviewers

  • prxt6529
  • ragnep

🐰 A masonry grid now graces the boosted display,
Bookmarks saved for drops throughout the day,
Hero headers gleam with fresh new prose,
While NowMinting's polish shines with every close—
The network state beckons, decentralized and bright!

🚥 Pre-merge checks | ✅ 1 | ❌ 2
❌ Failed checks (2 warnings)
Check name Status Explanation Resolution
Title check ⚠️ Warning The pull request title 'Simo6529/buffalo' is a GitHub branch name format and does not describe any meaningful aspect of the changes made in the pull request. Replace the title with a clear, descriptive summary of the main changes, such as 'Add boosted card carousel UI patterns and bookmark functionality' or similar that reflects the primary modifications.
Docstring Coverage ⚠️ Warning Docstring coverage is 15.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ 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: 6

🤖 Fix all issues with AI agents
In `@boosted.md`:
- Around line 5-8: The ASCII diagram lines (e.g., the "Boosted Drops" block
containing "[ card ][ card ][ card ][ card ]" and other similar diagrams using
"[ card ]" or "[ small ]") are being parsed as reference links; fix each diagram
by either wrapping the entire diagram in a fenced code block (``` ... ```) or by
escaping the square brackets (e.g., \[ card \]) so markdownlint no longer treats
them as reference links; update every occurrence of those ASCII diagram blocks
accordingly.

In `@components/home/boosted/BoostedDropCardHome.tsx`:
- Around line 128-143: The author block currently renders an anchor with
href="#" when author.handle is missing which still navigates; update the
component (BoostedDropCardHome) to conditionally render the Link only when
author.handle is truthy and otherwise render a non-link wrapper (e.g., a div or
span) with the same classes and onClick={(e) => e.stopPropagation()} so the
ProfileAvatar and display name (ProfileAvatar, ProfileBadgeSize.SMALL and the
span showing author.handle ?? "Anonymous") keep identical styling and behavior
but do not act as a clickable link when anonymous.

In `@components/home/boosted/BoostedSection.tsx`:
- Around line 28-41: visibleDrops computes columns inconsistent with
MASONRY_BREAKPOINTS causing a mismatch at the isSm breakpoint; update the column
selection logic in the useMemo (visibleDrops) to mirror MASONRY_BREAKPOINTS
(make the isSm-only case return 1 column) or, if you intend two columns at that
width, update MASONRY_BREAKPOINTS instead; specifically adjust the columns
assignment in the visibleDrops memo (referencing isXl, isLg, isMd, isSm,
columns, MAX_ROWS, and useMediaQuery) so the number of columns used to compute
maxItems matches the masonry breakpoint config.

In `@components/home/now-minting/NowMintingSection.tsx`:
- Around line 30-36: The JSX uses an invalid spread operator and skips elements:
remove the spread syntax before new Array(4).map(...) and instead generate
iterable slots with Array.from({ length: 4 }).map((_, i) => ...) so the map runs
and renders four children; keep the existing key={i} on the inner div and
preserve the className block (the element containing the tw-grid and the mapped
divs in NowMintingSection / the JSX fragment).

In `@openapi.yaml`:
- Around line 1053-1141: The bookmark endpoints (/drops/{dropId}/bookmark POST
-> operationId: bookmarkDrop, DELETE -> operationId: unbookmarkDrop, and
/drops-bookmarked/ GET -> operationId: getBookmarkedDrops) are missing explicit
401 responses; update each operation's responses to include a "401" entry (e.g.,
description: Unauthorized and appropriate content/schema or empty body) so
clients know these endpoints require authentication and can handle auth failures
consistently.

In `@scripts/worktree/wt-common.sh`:
- Around line 28-33: The sed -i '' usage in scripts/worktree/wt-common.sh is
macOS-only and will fail on GNU sed; update the in-place replacement that edits
"$settings_file" (and the similar edit around line 103) to be portable by either
detecting GNU vs BSD sed before using -i or, simpler and robust, perform edits
via a POSIX-safe temp file (use mktemp, run sed expressions reading
"$settings_file" and writing to the temp file, then mv the temp file back to
"$settings_file") and clean up any temp/bak files so the replacement works on
both macOS and Linux.
🧹 Nitpick comments (1)
boosted.md (1)

82-86: Vary the repeated sentence opener in the content-type bullets.
Three consecutive lines start with “If it’s…”. Consider rephrasing one or two for flow.

Comment thread boosted.md Outdated
Comment thread components/home/boosted/BoostedDropCardHome.tsx
Comment thread components/home/boosted/BoostedSection.tsx
Comment thread components/home/now-minting/NowMintingSection.tsx
Comment thread openapi.yaml
Comment thread scripts/worktree/wt-common.sh
Signed-off-by: Simo <simo@6529.io>
@sonarqubecloud
Copy link
Copy Markdown

@simo6529 simo6529 merged commit 46dabe7 into main Jan 21, 2026
6 of 7 checks passed
@simo6529 simo6529 deleted the simo6529/buffalo branch January 21, 2026 15:58
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