diff --git a/src/components/Layout.tsx b/src/components/Layout.tsx index e4567a2..56d819c 100644 --- a/src/components/Layout.tsx +++ b/src/components/Layout.tsx @@ -344,44 +344,53 @@ function MobileNav({ {/* CUSTOM: 3 middle tabs */} {resolvedMiddle.map((tab, i) => renderTab(tab, `mid-${tab.id}-${i}`))} - {/* FIXED: Profile / Login tab — always lands on Settings root */} - { - e.preventDefault(); - onCustomize(); - }} - className={cn( - 'relative flex flex-col items-center justify-center gap-0.5 py-1.5 px-1 rounded-xl transition-all duration-150 flex-1 touch-manipulation active:scale-90', - isActive('/settings') ? 'text-[#ff0040]' : 'text-gray-500' - )} - > - {isActive('/settings') && ( - - )} - {isLoggedIn && userPubkey ? ( -
- - - - {(userName || '??').slice(0, 2).toUpperCase()} - - - -
- ) : ( - - )} - - {isLoggedIn ? 'Profile' : 'Log In'} - - + {/* FIXED: Profile / Login tab. + Logged in → your public profile (View Profile). + Logged out → Settings (login lives there). + Long-press / right-click still opens nav customization. */} + {(() => { + const profileHref = isLoggedIn && userPubkey ? `/${nip19.npubEncode(userPubkey)}` : '/settings'; + const tabActive = isActive(profileHref); + return ( + { + e.preventDefault(); + onCustomize(); + }} + className={cn( + 'relative flex flex-col items-center justify-center gap-0.5 py-1.5 px-1 rounded-xl transition-all duration-150 flex-1 touch-manipulation active:scale-90', + tabActive ? 'text-[#ff0040]' : 'text-gray-500' + )} + > + {tabActive && ( + + )} + {isLoggedIn && userPubkey ? ( +
+ + + + {(userName || '??').slice(0, 2).toUpperCase()} + + + +
+ ) : ( + + )} + + {isLoggedIn ? 'Profile' : 'Log In'} + + + ); + })()}