feat(ui): replace emoji icons with lucide-react icon components
This commit is contained in:
@@ -2,15 +2,10 @@
|
||||
/**
|
||||
* ChatHeader 顶部栏
|
||||
*
|
||||
* 原始 Dart: lib/ui/chat/widgets/chat_header.dart(112 行)
|
||||
*
|
||||
* 两种模式:
|
||||
* - 游客模式(isGuest=true):渲染 `GuestBanner` 提示注册(点击 → /auth)
|
||||
* - 登录模式(isGuest=false):渲染 `MenuButton`(点击 → push 到 /sidebar)
|
||||
*
|
||||
* 注意:菜单按钮直接 push 到侧边栏路由,不打开下拉菜单
|
||||
* (Dart 端 `MenuButton(onTap: _goSidebar)` 行为)。
|
||||
* 图标:lucide-react <Lock />(游客 banner)+ <Menu />(菜单按钮)
|
||||
* tree-shakable,currentColor 继承父 color
|
||||
*/
|
||||
import { Lock, Menu } from "lucide-react";
|
||||
import { useRouter } from "next/navigation";
|
||||
|
||||
import { ROUTES } from "@/router/routes";
|
||||
@@ -33,9 +28,7 @@ export function ChatHeader({ isGuest }: ChatHeaderProps) {
|
||||
onClick={() => router.push(ROUTES.auth)}
|
||||
aria-label="Sign up to unlock more features"
|
||||
>
|
||||
<span className={styles.guestBannerIcon} aria-hidden="true">
|
||||
🔒
|
||||
</span>
|
||||
<Lock className={styles.guestBannerIcon} size={16} aria-hidden="true" />
|
||||
<span>Sign up to unlock more features</span>
|
||||
</button>
|
||||
</header>
|
||||
@@ -52,9 +45,7 @@ export function ChatHeader({ isGuest }: ChatHeaderProps) {
|
||||
onClick={() => router.push(ROUTES.sidebar)}
|
||||
aria-label="Menu"
|
||||
>
|
||||
<span className={styles.menuIcon} aria-hidden="true">
|
||||
☰
|
||||
</span>
|
||||
<Menu className={styles.menuIcon} size={24} aria-hidden="true" />
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
Reference in New Issue
Block a user