import { Dropdown, DropdownContent, DropdownButton, DropdownClickTrigger, DropdownHoverTrigger, DropdownPosition, } from '../dropdown'; import { useMemo, ElementType } from 'react'; import Menu, { MenuItem } from '../menu'; interface INavListItem { key: string; label: string; } interface IDropdownNavProps { list?: INavListItem[]; trigger?: 'hover' | 'click'; onItemClick?: ( e: React.MouseEvent, key: string ) => void; } const TriggerButtonMap: Record<'hover' | 'click', ElementType> = { hover: DropdownHoverTrigger, click: DropdownClickTrigger, }; export const DropdownNav: React.FC = ({ list = [], trigger = 'hover', onItemClick, children, }) => { const TriggerButton = useMemo(() => { return TriggerButtonMap[trigger]; }, [trigger]); return ( {children} {list.map(item => ( {item.label} ))} ); };