feat(navigation): add favorite entry and Menu tab

This commit is contained in:
Codex
2026-07-22 19:31:06 +08:00
parent 4e71dbd5f8
commit 163ba78f06
23 changed files with 794 additions and 118 deletions
+15 -2
View File
@@ -1,10 +1,10 @@
"use client";
import { Camera, MessageCircle } from "lucide-react";
import { Camera, Menu as MenuIcon, MessageCircle } from "lucide-react";
import styles from "./app-bottom-nav.module.css";
export type AppBottomNavItem = "chat" | "privateZoom";
export type AppBottomNavItem = "chat" | "privateZoom" | "menu";
export type AppBottomNavVariant = "warm" | "dark";
export interface AppBottomNavProps {
@@ -13,6 +13,7 @@ export interface AppBottomNavProps {
privateZoomLabel: string;
onChatClick: () => void;
onPrivateZoomClick: () => void;
onMenuClick: () => void;
}
export function AppBottomNav({
@@ -21,6 +22,7 @@ export function AppBottomNav({
privateZoomLabel,
onChatClick,
onPrivateZoomClick,
onMenuClick,
}: AppBottomNavProps) {
return (
<nav className={getRootClass(variant)} aria-label="Primary navigation">
@@ -46,6 +48,17 @@ export function AppBottomNav({
<Camera size={20} aria-hidden="true" />
<span>{privateZoomLabel}</span>
</button>
<button
type="button"
data-analytics-key="navigation.menu"
data-analytics-label="Menu navigation"
className={getButtonClass(activeItem === "menu")}
aria-current={activeItem === "menu" ? "page" : undefined}
onClick={onMenuClick}
>
<MenuIcon size={20} aria-hidden="true" />
<span>Menu</span>
</button>
</nav>
);
}