import React, { useState } from 'react'; import './TopMenu.css'; /* Kole UI Menu 族 · TopMenu(React) * @generated by tools/gen-family-impl.mjs * 生成物 - 由 tools/gen-family-impl.mjs 从族模板生成,请勿手改。 * 族 nav-menu:本组件是同一份 Menu 实现,参数 direction=top。 * 族参数取值:direction=top, indicator=top, collapsed=false * 重跑生成:node tools/gen-family-impl.mjs nav-menu */ const FAMILY_DIRECTION = 'top'; const FAMILY_PARAMS = { direction: FAMILY_DIRECTION, collapsed: false }; export default function TopMenu({ items = [], activeKey = '', onChange }) { const [active, setActive] = useState(activeKey); const [open, setOpen] = useState(''); const [hoverKey, setHoverKey] = useState(''); const [collapsed, setCollapsed] = useState(FAMILY_PARAMS.collapsed === true); const params = FAMILY_PARAMS; const isTopActive = (it) => it.key === active || (it.children || []).some((c) => c.key === active); function select(it) { if (it.disabled) return; if (it.children && it.children.length) { setOpen(open === it.key ? '' : it.key); if (params.direction === 'mixed') setActive(it.key); return; } setActive(it.key); onChange && onChange(it.key); } function renderItem(it) { const hasKids = !!(it.children && it.children.length); return (