/// import { COMPONENTS_NAMESPACES } from '../../constants'; import { GlobalDefaultTheme, PartialGlobalDefaultTheme } from '../../utils/useTheme'; import { DropDownProps } from '../DropDown/types'; import { TabsProps } from '../Tabs/types'; /** Menu item properties */ export interface MenuItemProps extends DropDownProps { /** Key of menu item */ menuItemKey: number; /** Title of menu item */ title: string; } /** Current ref of menu item */ export interface MenuItemRefCurrent { /** Wrapper element */ wrapper: HTMLLIElement | null; } /** Menu properties */ export interface MenuProps extends TabsProps { /** Тема компонента */ theme?: PartialGlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.menu]; } /** Current ref of menu wrapper */ export interface MenuRefCurrent { /** Content element */ content: HTMLElement | null; /** Wrapper element */ wrapper: HTMLElement | null; } /** Properties of useMenuScroll hook */ export interface MenuScroll { /** Current ref of menu wrapper */ ref?: React.Ref; /** Menu theme */ theme: GlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.menu]; } /** Type of getMenuItem helper */ export interface GetMenuItem { ( /** Child element of Menu */ child: React.ReactElement, /** Menu theme */ theme: GlobalDefaultTheme[typeof COMPONENTS_NAMESPACES.menu]): { /** Menu item element */ menuItem: React.ReactElement; /** Key of menu item */ menuItemKey: number; }; }