refactor(chat): align chat header and input bar with Dart source
This commit is contained in:
@@ -6,14 +6,15 @@
|
||||
*
|
||||
* 两种模式:
|
||||
* - 游客模式(isGuest=true):渲染 `GuestBanner` 提示注册(点击 → /auth)
|
||||
* - 登录模式(isGuest=false):渲染 `MenuButton`(点击 → 打开 ChatMenuBar)
|
||||
* - 登录模式(isGuest=false):渲染 `MenuButton`(点击 → push 到 /sidebar)
|
||||
*
|
||||
* 注意:菜单按钮直接 push 到侧边栏路由,**不**打开下拉菜单
|
||||
* (Dart 端 `MenuButton(onTap: _goSidebar)` 行为)。
|
||||
*/
|
||||
import { useRouter } from "next/navigation";
|
||||
import { useState } from "react";
|
||||
|
||||
import { ROUTES } from "@/router/routes";
|
||||
|
||||
import { ChatMenuBar } from "./chat-menu-bar";
|
||||
import styles from "./chat-header.module.css";
|
||||
|
||||
export interface ChatHeaderProps {
|
||||
@@ -22,7 +23,6 @@ export interface ChatHeaderProps {
|
||||
|
||||
export function ChatHeader({ isGuest }: ChatHeaderProps) {
|
||||
const router = useRouter();
|
||||
const [menuOpen, setMenuOpen] = useState(false);
|
||||
|
||||
if (isGuest) {
|
||||
return (
|
||||
@@ -43,29 +43,20 @@ export function ChatHeader({ isGuest }: ChatHeaderProps) {
|
||||
}
|
||||
|
||||
return (
|
||||
<>
|
||||
<header className={styles.header}>
|
||||
<div className={styles.headerRow}>
|
||||
{/* 菜单按钮(点击 → 打开 ChatMenuBar 浮层) */}
|
||||
<button
|
||||
type="button"
|
||||
className={styles.menuButton}
|
||||
onClick={() => setMenuOpen(true)}
|
||||
aria-label="Menu"
|
||||
aria-expanded={menuOpen}
|
||||
>
|
||||
<span className={styles.menuIcon} aria-hidden="true">
|
||||
☰
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<ChatMenuBar
|
||||
open={menuOpen}
|
||||
onClose={() => setMenuOpen(false)}
|
||||
environmentName="dev"
|
||||
/>
|
||||
</>
|
||||
<header className={styles.header}>
|
||||
<div className={styles.headerRow}>
|
||||
{/* 菜单按钮(点击 → push 到 /sidebar,与 Dart MenuButton 一致) */}
|
||||
<button
|
||||
type="button"
|
||||
className={styles.menuButton}
|
||||
onClick={() => router.push(ROUTES.sidebar)}
|
||||
aria-label="Menu"
|
||||
>
|
||||
<span className={styles.menuIcon} aria-hidden="true">
|
||||
☰
|
||||
</span>
|
||||
</button>
|
||||
</div>
|
||||
</header>
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user