blob: 96ae6acffdc5d208e97be46488a325342b85b89e [file] [log] [blame]
wu2f28f672025-06-19 14:29:30 +08001// src/components/Header.jsx
TRM-codingd1cbf672025-06-18 15:15:08 +08002import React from 'react'
TRM-coding29174c22025-06-18 23:56:51 +08003import { useNavigate } from 'react-router-dom'
TRM-codingd1cbf672025-06-18 15:15:08 +08004import { User } from 'lucide-react'
wu2f28f672025-06-19 14:29:30 +08005import { getUserInfo } from '../utils/auth'
6import '../App.css'
TRM-codingd1cbf672025-06-18 15:15:08 +08007
8export default function Header() {
TRM-coding29174c22025-06-18 23:56:51 +08009 const navigate = useNavigate()
wu2f28f672025-06-19 14:29:30 +080010 const user = getUserInfo() || {}
11 const userId = user.id
12 // 假设后端返回的 user 对象里有个 nickname 字段,否则 fallback 到 “小红薯”
13 const displayName = user.nickname || user.username || '小红薯'
TRM-coding29174c22025-06-18 23:56:51 +080014
15 const handleUserClick = () => {
wu2f28f672025-06-19 14:29:30 +080016 if (userId) {
17 navigate(`/user/${userId}`)
18 }
TRM-coding29174c22025-06-18 23:56:51 +080019 }
20
TRM-codingd1cbf672025-06-18 15:15:08 +080021 return (
22 <header className="header">
23 <div className="header-left">
24 <div className="logo">小红书</div>
25 <h1 className="header-title">创作服务平台</h1>
26 </div>
wu2f28f672025-06-19 14:29:30 +080027 <div
TRM-coding29174c22025-06-18 23:56:51 +080028 className="header-right"
29 onClick={handleUserClick}
wu2f28f672025-06-19 14:29:30 +080030 style={{ cursor: userId ? 'pointer' : 'default' }}
TRM-coding29174c22025-06-18 23:56:51 +080031 >
TRM-codingd1cbf672025-06-18 15:15:08 +080032 <div className="user-info">
33 <User size={16} />
wu2f28f672025-06-19 14:29:30 +080034 <span>
35 {displayName}
36 {userId ? userId : ''}
37 </span>
TRM-codingd1cbf672025-06-18 15:15:08 +080038 </div>
39 </div>
40 </header>
41 )
wu2f28f672025-06-19 14:29:30 +080042}