Skip to content

feat(layout-v2): sidebar rail rework + Slack-style add rows - #6240

Merged
tsahimatsliah merged 11 commits into
mainfrom
claude/reverent-maxwell-291988
Jul 29, 2026
Merged

feat(layout-v2): sidebar rail rework + Slack-style add rows#6240
tsahimatsliah merged 11 commits into
mainfrom
claude/reverent-maxwell-291988

Conversation

@tsahimatsliah

@tsahimatsliah tsahimatsliah commented Jun 24, 2026

Copy link
Copy Markdown
Member

Reworks the v2 dual-sidebar based on the latest design review, plus consistent add-action affordances for the squad/folder/feed panels. All changes are v2-only — the v1 sidebar and the shared MainSection are untouched.

This is the production-ready port of the design mock-up in #6218, rebased on current main (keeps the Upvote / Downvote tooltip copy from #6238) with a cleanup pass over dead code.

Rail layout (top → bottom)

  • Logo moved to the very top.
  • Avatar is now a tab opening a Profile panel (no dropdown): profile header + stats, Plus CTA, Following / History / Happening Now / Analytics / Jobs / DevCard, Pinned squads, Custom feeds.
  • Home — new flat button → the For You feed.
  • Search → Explore · Squads · Quests · Saved (+ Notifications/More overflow) · New post.
  • Bottom: Invite · Support · ⚙️ Settings (theme, settings, appearance, feed settings, billing, log out).

Panels

  • Explore panel lists the /posts sub-tabs (Popular, By upvotes, By comments, By date, Best of) + Recent pages, reusing urlToTab from FeedExploreHeader so it can't drift.
  • Profile panel hosts everything "you", reusing existing section components.

Add affordances (squads / folders / feeds)

  • A dedicated Slack-style add row at the bottom of each list (New Squad / New folder / New feed).
  • The top "+" appears only once the list grows past a few entries (shared SIDEBAR_ADD_TOP_THRESHOLD), so short lists stay clean.

Cleanup vs. the mock-up

  • Removed the unused useSidebarDragStateValue hook and the write-only outsideRailRef in the shortcuts dock.
  • ReadingStreakPopup now uses the shared 30-day history hook instead of an inline duplicate query; renamed it to useReadingStreak30Days to avoid colliding with the existing useReadingHistory hook.
  • Trimmed unreachable entries from ExploreHubHeader.hubTitles.

Verification

  • typecheck-strict-changed clean; eslint --max-warnings 0 clean for changed files.
  • Sidebar Jest suites pass (added Profile path-mapping cases to sidebarCategory.spec.ts).

🤖 Generated with Claude Code

Preview domain

https://claude-reverent-maxwell-291988.preview.app.daily.dev

tsahimatsliah and others added 2 commits June 24, 2026 10:35
Port of mock-up PR #6218 onto current main.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…ory query

- Remove unused useSidebarDragStateValue hook
- Remove write-only outsideRailRef in shortcuts dock
- Replace inline 30-day streak history query in ReadingStreakPopup with the
  shared hook; rename it to useReadingStreak30Days to avoid colliding with the
  existing useReadingHistory hook
- Trim unreachable entries from ExploreHubHeader.hubTitles

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
daily-webapp Ready Ready Preview Jul 29, 2026 1:27pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
storybook Ignored Ignored Jul 29, 2026 1:27pm

Request Review

…ll-291988

# Conflicts:
#	packages/webapp/pages/settings/customization/gamification.tsx
#	packages/webapp/pages/settings/customization/streaks.tsx
Neither field is read by any consumer of useSidebarShortcutItems; they
remain as internal memoized values used by addCatalog/pinPage/isPinned.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@capJavert capJavert 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.

This branch currently has merge conflicts with the base branch, so it is not eligible for final approval and a code review against the current app would be misleading. Please rebase/resolve the conflicts and rerun CI, then request review again with the resulting diff.

tsahimatsliah and others added 2 commits July 29, 2026 09:07
…ll-291988

# Conflicts:
#	packages/shared/src/components/streak/popup/ReadingStreakPopup.tsx
#	packages/webapp/pages/settings/customization/streaks.tsx
…xture

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

@capJavert capJavert 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.

Re-reviewed the current conflict-free diff after the main merges. CI is green and I found no remaining code blocker. Approved; GitHub still marks the branch behind main, so update it before merge if required by branch protection.

@tsahimatsliah
tsahimatsliah merged commit edd4c16 into main Jul 29, 2026
12 checks passed
@tsahimatsliah
tsahimatsliah deleted the claude/reverent-maxwell-291988 branch July 29, 2026 13:30
tsahimatsliah added a commit that referenced this pull request Jul 30, 2026
…ates, dnd fixes

Iteration pass on the production layout v2 sidebar, on top of #6240.

Rail
- The daily.dev logo doubles as Home: logo at rest, crossfading to the home
  glyph on hover/focus; click goes to the For You feed and keeps the
  extension's feed-reset contract.
- New post moved below the rail tabs and became a reorderable rail item.
- Rail tabs drag via a DragOverlay ghost with the real element parked in-list
  as a slot skeleton, so the notifications tab's live anchor is never under the
  pointer at release and can't natively navigate on drop.
- Restored the design-system Bubble on the rail notifications bell.

Streak
- StreakBadge is a 24px circle matching the other rail glyphs: the ring takes
  the flame's colour, and read-today fills pink with a white flame.
- Restored the weekend auto-freeze / used-freeze tooltips on the 30-day
  calendar.
- Freeze row follows sidebar guidelines: title + subtitle with a neutral
  Subtle button instead of link-blue text.

Panels
- Dropped the duplicate Get API Access CTA, plus the Jobs and DevCard rows,
  from the You panel; Feed settings now uses the filter icon.
- Hot Takes no longer false-highlights on the home feed.
- /daily resolves to the same Profile panel as the feed.
- Compact quest rows route to each quest's own completion surface via a
  shared questDestinations module.
- Shortcuts dock accepts a drop below the last icon.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
tsahimatsliah added a commit that referenced this pull request Jul 30, 2026
…ates, dnd fixes

Iteration pass on the production layout v2 sidebar, on top of #6240.

Rail
- The daily.dev logo doubles as Home: logo at rest, crossfading to the home
  glyph on hover/focus; click goes to the For You feed and keeps the
  extension's feed-reset contract.
- New post moved below the rail tabs and became a reorderable rail item.
- Rail tabs drag via a DragOverlay ghost with the real element parked in-list
  as a slot skeleton, so the notifications tab's live anchor is never under the
  pointer at release and can't natively navigate on drop.
- Restored the design-system Bubble on the rail notifications bell.

Streak
- StreakBadge is a 24px circle matching the other rail glyphs: the ring takes
  the flame's colour, and read-today fills pink with a white flame.
- Restored the weekend auto-freeze / used-freeze tooltips on the 30-day
  calendar.
- Freeze row follows sidebar guidelines: title + subtitle with a neutral
  Subtle button instead of link-blue text.

Panels
- Dropped the duplicate Get API Access CTA, plus the Jobs and DevCard rows,
  from the You panel; Feed settings now uses the filter icon.
- Hot Takes no longer false-highlights on the home feed.
- /daily resolves to the same Profile panel as the feed.
- Compact quest rows route to each quest's own completion surface via a
  shared questDestinations module.
- Shortcuts dock accepts a drop below the last icon.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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