import React from 'react'; import { Nav, MenuContent, MenuItem, MenuList, DrilldownMenu, Menu } from '@patternfly/react-core'; interface MenuHeights { [menuId: string]: number; } const subMenuTwo: JSX.Element = ( SubMenu 1 - Item 1 SubMenu 2 - Item 1 SubMenu 2 - Item 2 SubMenu 2 - Item 3 ); const subMenuOne: JSX.Element = ( Item 1 SubMenu 1 - Item 1 SubMenu 1 - Item 2 SubMenu 1 - Item 3 ); export const NavigationDrilldown: React.FunctionComponent = () => { const [menuDrilledIn, setMenuDrilledIn] = React.useState([]); const [drilldownPath, setDrilldownPath] = React.useState([]); const [menuHeights, setMenuHeights] = React.useState({}); const [activeMenu, setActiveMenu] = React.useState('rootMenu'); const onDrillIn = (fromItemId: string, toItemId: string, itemId: string) => { setMenuDrilledIn(prevMenuDrilledIn => [...prevMenuDrilledIn, fromItemId]); setDrilldownPath(prevDrilldownPath => [...prevDrilldownPath, itemId]); setActiveMenu(toItemId); }; const onDrillOut = (toItemId: string, _itemId: string) => { setMenuDrilledIn(prevMenuDrilledIn => prevMenuDrilledIn.slice(0, prevMenuDrilledIn.length - 1)); setDrilldownPath(prevDrilldownPath => prevDrilldownPath.slice(0, prevDrilldownPath.length - 1)); setActiveMenu(toItemId); }; const onGetMenuHeight = (menuId: string, height: number) => { if (!menuHeights[menuId] && menuId !== 'rootMenu') { setMenuHeights(prevMenuHeights => ({ ...prevMenuHeights, [menuId]: height })); } }; return ( ); };