Skip to content

profile waves feed button#2335

Merged
ragnep merged 6 commits intomainfrom
curation-ux-improvements
Apr 30, 2026
Merged

profile waves feed button#2335
ragnep merged 6 commits intomainfrom
curation-ux-improvements

Conversation

@ragnep
Copy link
Copy Markdown
Contributor

@ragnep ragnep commented Apr 30, 2026

Summary by CodeRabbit

Release Notes

New Features

  • Added configurable profile feed shortcut in the sidebar, automatically hidden on mobile devices
  • Introduced improved quote display behavior that flattens nested quotes from the same author

UI/UX Updates

  • Rebranded "Community Curations" section to "Profile Waves" with updated messaging

ragnep added 2 commits April 30, 2026 11:54
Signed-off-by: ragnep <ragneinfo@gmail.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 30, 2026

Warning

Rate limit exceeded

@ragnep has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 32 minutes and 5 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 5a29ba7f-9762-4a64-b14c-a6172d4d073f

📥 Commits

Reviewing files that changed from the base of the PR and between baba098 and 826a1d6.

📒 Files selected for processing (2)
  • components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx
  • components/community-curations/CommunityCurationsMasonry.tsx
📝 Walkthrough

Walkthrough

This PR introduces a "Profile Waves" feature by adding conditional display of a profile feed shortcut in the waves sidebar, refactoring the infinite-scroll ref pattern in wave components, creating a new context system for quote display behavior, and updating UI text from "Community Curations" to "Profile Waves" terminology.

Changes

Cohort / File(s) Summary
Left-sidebar prop drilling
components/brain/left-sidebar/web/WebBrainLeftSidebarWaves.tsx, components/brain/left-sidebar/web/WebLeftSidebar.tsx, components/brain/left-sidebar/web/WebUnifiedWavesList.tsx, components/shared/WavesMessagesWrapper.tsx
Added showProfileFeedShortcut boolean prop across the sidebar hierarchy to control conditional rendering of the profile feed shortcut, with defaults to true unless on mobile.
Infinite-scroll ref refactoring
components/brain/left-sidebar/web/WebDirectMessagesList.tsx, components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx
Replaced WebUnifiedWavesListWavesHandle forwardRef pattern with a local sentinelRef prop (HTMLDivElement) passed both to useInfiniteScroll and down to the component, converting WebUnifiedWavesListWaves from forwardRef to a regular React.FC. Adjusted CreateDirectMessageModal rendering to always render (while still passing profile={connectedProfile}).
Profile waves shortcut UI
components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx
Added conditional rendering of a "Profile Waves Feed" shortcut with tooltip, supporting both collapsed and expanded layouts via next/link and useMyStream integration for wave selection. Centralized tooltip styling into TOOLTIP_STYLE constant and added wave validation in the virtualized list.
Quote display context
components/waves/drops/WaveDropQuoteDisplayContext.tsx, components/waves/drops/WaveDropQuote.tsx, components/community-curations/CommunityCurationsMasonry.tsx
Introduced WaveDropQuoteDisplayContext and WaveDropQuoteDisplayProvider to drive quote rendering behavior via useWaveDropQuoteDisplay(), refactored WaveDropQuote with a new WaveDropQuoteBody subcomponent, and wrapped drops in the provider to conditionally flatten quotes when author matches context identity.
Text and terminology updates
components/community-curations/CommunityCurations.tsx
Changed user-facing copy from "Community Curations" to "Profile Waves" terminology in main heading, subtitle, and empty-state messages.

Sequence Diagram

sequenceDiagram
    participant CMasonryItem as CommunityCurationsMasonryItem
    participant Provider as WaveDropQuoteDisplayProvider
    participant Drop as Drop Component
    participant Quote as WaveDropQuote
    participant Context as useWaveDropQuoteDisplay

    CMasonryItem->>Provider: Render with flattenWhenAuthorSameAs={drop.author}
    Provider->>Drop: Wrap drop.jsx
    Drop->>Quote: Render quote
    Quote->>Context: Call hook to get display context
    Context-->>Quote: Return flattenWhenAuthorSameAs
    alt shouldFlattenQuote = true
        Quote->>Quote: Return markdown content only
    else shouldFlattenQuote = false
        Quote->>Quote: Render full quote with body
    end
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related PRs

Suggested reviewers

  • simo6529
  • prxt6529
  • GelatoGenesis

🐰 Profile Waves flow through the sidebar,
Context whispers which quotes to render,
Refs dance with sentinels with care,
No more forwardRef fuss—just a function fair! 📡✨

🚥 Pre-merge checks | ✅ 3 | ❌ 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 'profile waves feed button' is vague and does not clearly summarize the main changes. The PR involves much broader refactoring including context providers, display logic, ref handling, and terminology changes, not just a button. Consider a more descriptive title that captures the main objective, such as 'Add conditional profile waves feed shortcut to sidebar' or 'Refactor waves sidebar with profile feed shortcut support'.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
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.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch curation-ux-improvements

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
Review rate limit: 0/1 reviews remaining, refill in 32 minutes and 5 seconds.

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: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx`:
- Around line 152-160: The collapsed shortcut Link (in WebUnifiedWavesListWaves)
is missing the active-page signal—add an aria-current attribute to the Link (the
same way the expanded shortcut does) so screen readers know when it’s active:
compute an isActive boolean (e.g., compare current pathname to basePath using
the existing routing hook or prop) and set aria-current={isActive ? 'page' :
undefined} on the Link that uses basePath, handleClick, PROFILE_FEED_LABEL and
PROFILE_FEED_TOOLTIP_ID.
🪄 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: defaults

Review profile: CHILL

Plan: Pro

Run ID: d1f66da7-a7e9-4e57-a72b-b1faaa0251a1

📥 Commits

Reviewing files that changed from the base of the PR and between fe6bcd5 and baba098.

📒 Files selected for processing (10)
  • components/brain/left-sidebar/web/WebBrainLeftSidebarWaves.tsx
  • components/brain/left-sidebar/web/WebDirectMessagesList.tsx
  • components/brain/left-sidebar/web/WebLeftSidebar.tsx
  • components/brain/left-sidebar/web/WebUnifiedWavesList.tsx
  • components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx
  • components/community-curations/CommunityCurations.tsx
  • components/community-curations/CommunityCurationsMasonry.tsx
  • components/shared/WavesMessagesWrapper.tsx
  • components/waves/drops/WaveDropQuote.tsx
  • components/waves/drops/WaveDropQuoteDisplayContext.tsx

Comment thread components/brain/left-sidebar/web/WebUnifiedWavesListWaves.tsx
ragnep added 4 commits April 30, 2026 12:06
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
Signed-off-by: ragnep <ragneinfo@gmail.com>
@sonarqubecloud
Copy link
Copy Markdown

@ragnep ragnep merged commit e51b9fd into main Apr 30, 2026
8 checks passed
@ragnep ragnep deleted the curation-ux-improvements branch April 30, 2026 11:41
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