Skip to content

feat(deck): link username in eyebrow row to user profile page#78

Merged
jcserv merged 2 commits into
mainfrom
fm/link-user-profile-j8
Jun 30, 2026
Merged

feat(deck): link username in eyebrow row to user profile page#78
jcserv merged 2 commits into
mainfrom
fm/link-user-profile-j8

Conversation

@jcserv

@jcserv jcserv commented Jun 30, 2026

Copy link
Copy Markdown
Owner

Intent

The developer wanted to make the owner's username in the deck view header eyebrow row a clickable link to the user's profile page at /u/[username], rather than plain unclickable text. The change should use the project's internal Link wrapper from app/_components/link.tsx instead of next/link directly, per project conventions. The · separator should remain outside the link so it stays non-clickable. Styling should match existing muted text links in the eyebrow row, with hover underline and muted foreground color. The link should only render when deck.user?.username is truthy, preserving the existing guard.

What Changed

  • Made the owner username in the deck header eyebrow row a clickable link to /u/[username]
  • Uses the project's internal Link wrapper (app/_components/link.tsx) with default import (named import auto-fixed by pipeline review)
  • · separator kept outside the link; guard on deck.user?.username preserved

Risk Assessment

✅ Low: Fix applied correctly; import is now default, separator is outside the link, guard and styling preserved — no remaining issues.

Testing

Loaded the deck page end-to-end in a real browser via Playwright. The accessibility tree confirms link "wotc" href=/u/wotc in the eyebrow row with the · separator correctly outside the link element. The /u/wotc profile page loads successfully. All user intent is satisfied.

  • Evidence: Deck header with username link (full page) (local file: /var/folders/b2/rft4yv4177d6mpkbhbwj7svc0000gn/T/no-mistakes-evidence/01KWCB314QN2NG24FNTV7ZXH65/deck-header-full.png)
  • Evidence: User profile page at /u/wotc (local file: /var/folders/b2/rft4yv4177d6mpkbhbwj7svc0000gn/T/no-mistakes-evidence/01KWCB314QN2NG24FNTV7ZXH65/user-profile-wotc.png)
Evidence: Accessibility snapshot confirming link structure
link "wotc" [ref=f4e37] [cursor=pointer]:
/url: /u/wotc
(preceded by: generic [ref=f4e36]: · — separator outside the link)

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

🔧 **Review** - 1 issue found → auto-fixed ✅
  • 🚨 app/_components/deck/deck-header.tsx:17 - link.tsx only has export default function Link. Every other caller uses import Link from "@/app/_components/link". This named import breaks the link silently: the element renders nothing or throws.

🔧 Fix: fix named import of Link wrapper in deck-header
✅ Re-checked - no issues remain.

✅ **Test** - passed

✅ No issues found.

  • git show 3600665 and git show da2b81e — reviewed both commits
  • Confirmed app/_components/link.tsx uses export default function Link (not named export)
  • Started Next.js 16.2.6 dev server at localhost:3737 with local Postgres
  • Navigated to /deck/cmop0mtfy00cge8zbore46332 (Tyranid Swarm deck, owner: wotc)
  • Verified accessibility snapshot: link "wotc" [cursor=pointer]: /url: /u/wotc present in eyebrow row, with · separator outside the link
  • Navigated to /u/wotc to confirm the link target renders a profile page
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Summary by CodeRabbit

  • New Features
    • The deck creator’s username is now clickable and opens their profile page.
  • User Experience
    • Updated the deck header layout so the username and separator display more cleanly, with a hover underline for better discoverability.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 6264641f-fb98-411c-b969-7128f26f6ec6

📥 Commits

Reviewing files that changed from the base of the PR and between 8559708 and da2b81e.

📒 Files selected for processing (1)
  • app/_components/deck/deck-header.tsx

📝 Walkthrough

Walkthrough

The deck header now renders the creator's username as a navigable link to /u/<username> instead of plain muted text, using an imported Link component with a muted/hover-underline style.

Changes

Username Link in Deck Header

Layer / File(s) Summary
Username rendered as link
app/_components/deck/deck-header.tsx
Adds Link import and replaces the muted username span with a Link to /u/${deck.user.username}, separating the dot into its own span.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

A bunny hopped through the deck one day,
And found a name just sitting there—plain.
"A link!" it cried, with a joyful leap,
Now usernames click, no more asleep.
🐇✨ /u/username leads the way!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

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.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: linking the deck owner username to the profile page.
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.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fm/link-user-profile-j8

Warning

There were issues while running some tools. Please review the errors and either fix the tool's configuration or disable the tool if it's a critical failure.

🔧 ESLint

If the error stems from missing dependencies, add them to the package.json file. For unrecoverable errors (e.g., due to private dependencies), disable the tool in the CodeRabbit configuration.

app/_components/deck/deck-header.tsx

Parsing error: The keyword 'import' is reserved


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.

@jcserv jcserv merged commit 33a4683 into main Jun 30, 2026
5 checks passed
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