/** * ToolbarOverflowMenu Component * * 工具栏溢出菜单,用于在空间不足时收纳次要按钮 */ import { Settings, type LucideIcon } from 'lucide-react'; import { motion } from 'framer-motion'; import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from '../primitives/DropdownMenu'; import { cn } from '../utils/cn'; export interface ToolbarMenuItem { /** 菜单项图标 */ icon: LucideIcon; /** 菜单项标签 */ label: string; /** 点击回调 */ onClick?: () => void; } interface ToolbarOverflowMenuProps { /** 菜单项列表 */ items: ToolbarMenuItem[]; /** 自定义类名 */ className?: string; } export function ToolbarOverflowMenu({ items, className }: ToolbarOverflowMenuProps) { // 过滤掉没有 onClick 的项 const validItems = items.filter((item) => item.onClick); if (validItems.length === 0) { return null; } return ( {validItems.map((item) => ( {item.label} ))} ); }