forum: user profile pages + clickable bylines + neon pulse favicon
USER PROFILES (/forum/user/[username]): - New API at /api/forum/user-by-username/[username] resolves by username OR display_name (URL-encoded), since forum threads/replies store author_name = display_name. Returns the persona's profile, thread history (up to 50), and recent replies (up to 20). - New page renders the persona card with archetype badge (Audio Engineer / Colorist / etc.) + expertise level badge (beginner/intermediate/senior) + role title, company, location, years_experience, join date, and an expertise-tags chip row. - Two columns underneath: "Threads started" and "Recent replies" with proper deep-links into each thread. - Author names in /forum, /forum/[slug], and /forum/thread/[id] are now <Link> elements pointing to /forum/user/<displayname>, with onClick=stopPropagation so the card-level click handler doesn't also fire. FAVICON: - Hand-built neon pulse waveform — emerald→cyan→purple gradient on dark navy background, designed to read at 16×16 to 256×256. - Multi-resolution favicon.ico (16/32/48/64) + SVG + PNGs at 16/32/48/64/96/192/256 under /static/favicons/. - layout.tsx icons block now references all sizes including the apple-touch sizes (192, 256). No env / DB changes here — pure deploy.
This commit is contained in:
@@ -153,7 +153,7 @@ function TopThreadsWidget({ categoryId }: { categoryId?: string }) {
|
||||
{thread.title}
|
||||
</p>
|
||||
<p className="text-[#555] font-body text-xs mt-0.5">
|
||||
<span className="text-[#666]">{thread.author_name}</span>
|
||||
<Link href={`/forum/user/${encodeURIComponent(thread.author_name)}`} className="text-[#666] hover:text-[#3b82f6] hover:underline" onClick={(e) => e.stopPropagation()}>{thread.author_name}</Link>
|
||||
{thread.forum_categories && (
|
||||
<> · <span className="text-[#3b82f6]">{thread.forum_categories.name}</span></>
|
||||
)}
|
||||
@@ -483,7 +483,7 @@ export default function ForumIndexPage() {
|
||||
{thread.title}
|
||||
</h3>
|
||||
<p className="text-[#666] font-body text-xs mt-0.5">
|
||||
by <span className="text-[#888]">{thread.author_name}</span>
|
||||
by <Link href={`/forum/user/${encodeURIComponent(thread.author_name)}`} className="text-[#888] hover:text-[#3b82f6] hover:underline" onClick={(e) => e.stopPropagation()}>{thread.author_name}</Link>
|
||||
{thread.forum_categories && (
|
||||
<> · <span className="text-[#3b82f6]">{thread.forum_categories.name}</span></>
|
||||
)}
|
||||
|
||||
Reference in New Issue
Block a user