import styled from 'styled-components'; import React from 'react'; import type { JSX } from 'react'; import type { DrilldownMenuItemDetails, ItemState } from '@redocly/theme/core/types'; import { MenuItem } from '@redocly/theme/components/Menu/MenuItem'; import { MenuItemType } from '@redocly/theme/core/constants'; import { getMenuItemType } from '@redocly/theme/core/utils'; export type MenuListProps = { items: ItemState[]; depth?: number; isMobile?: boolean; className?: string; onDrilldownOpen?: (drilldownDetails: DrilldownMenuItemDetails) => void; }; export function Menu({ depth = 0, items, className, isMobile, onDrilldownOpen, }: MenuListProps): JSX.Element { const activeItem = items.find(({ active }) => active); return ( {items.map((item, index) => { return ( { if (getMenuItemType(item) === MenuItemType.DrillDown) { onDrilldownOpen?.({ previousLink: activeItem?.link, item }); } }} > {item.items?.length ? ( ) : null} ); })} ); } const MenuWrapper = styled.ul` padding: var(--menu-padding); margin: var(--menu-margin); list-style: var(--menu-list-style); color: var(--menu-content-color); position: relative; `;