ui: show login button when logged out and logout when logged in

This commit is contained in:
zhi
2026-03-11 21:28:07 +00:00
parent 0ab1d2f380
commit c114beb245

View File

@@ -1,5 +1,5 @@
import { useState, useEffect } from 'react' import { useState, useEffect } from 'react'
import { Link, useLocation } from 'react-router-dom' import { Link, useLocation, useNavigate } from 'react-router-dom'
import api from '@/services/api' import api from '@/services/api'
import type { User } from '@/types' import type { User } from '@/types'
@@ -10,6 +10,7 @@ interface Props {
export default function Sidebar({ user, onLogout }: Props) { export default function Sidebar({ user, onLogout }: Props) {
const { pathname } = useLocation() const { pathname } = useLocation()
const navigate = useNavigate()
const [unreadCount, setUnreadCount] = useState(0) const [unreadCount, setUnreadCount] = useState(0)
useEffect(() => { useEffect(() => {
@@ -51,12 +52,14 @@ export default function Sidebar({ user, onLogout }: Props) {
</li> </li>
))} ))}
</ul> </ul>
{user && ( <div className="sidebar-footer">
<div className="sidebar-footer"> <span>👤 {user ? user.username : 'Guest'}</span>
<span>👤 {user.username}</span> {user ? (
<button onClick={onLogout}>Logout</button> <button onClick={onLogout}>Log out</button>
</div> ) : (
)} <button onClick={() => navigate('/login')}>Log in</button>
)}
</div>
</nav> </nav>
) )
} }