feat(navbar): make username clickable link to public profile

- Desktop: username and avatar link to /u/{username}
- Mobile: username section in dropdown links to public profile
- Adds hover effect to indicate clickability
This commit is contained in:
Radosław Gierwiało
2025-12-05 18:36:51 +01:00
parent 1f763d4558
commit d4dd7bac30

View File

@@ -173,10 +173,13 @@ const Navbar = ({ pageTitle = null }) => {
</div> </div>
)} )}
<div className="flex items-center space-x-3"> <Link
to={`/u/${user.username}`}
className="flex items-center space-x-3 px-3 py-2 rounded-md hover:bg-gray-100"
>
<Avatar src={user?.avatar} username={user.username} size={32} /> <Avatar src={user?.avatar} username={user.username} size={32} />
<span className="text-sm font-medium text-gray-700">{user.username}</span> <span className="text-sm font-medium text-gray-700">{user.username}</span>
</div> </Link>
<button <button
onClick={handleLogout} onClick={handleLogout}
@@ -203,12 +206,16 @@ const Navbar = ({ pageTitle = null }) => {
{/* Mobile dropdown */} {/* Mobile dropdown */}
{menuOpen && ( {menuOpen && (
<div className="md:hidden border-t bg-white shadow-sm"> <div className="md:hidden border-t bg-white shadow-sm">
<div className="px-4 py-3 flex items-center space-x-3"> <Link
to={`/u/${user.username}`}
onClick={() => setMenuOpen(false)}
className="px-4 py-3 flex items-center space-x-3 hover:bg-gray-50"
>
<Avatar src={user?.avatar} username={user.username} size={32} /> <Avatar src={user?.avatar} username={user.username} size={32} />
<div className="flex-1"> <div className="flex-1">
<p className="text-sm font-medium text-gray-900">{user.username}</p> <p className="text-sm font-medium text-gray-900">{user.username}</p>
</div> </div>
</div> </Link>
<div className="px-2 pb-2 space-y-1"> <div className="px-2 pb-2 space-y-1">
<Link <Link
to="/dashboard" to="/dashboard"