import React from 'react'; import { Avatar, Brand, Button, ButtonVariant, Divider, Dropdown, DropdownGroup, DropdownItem, DropdownList, Masthead, MastheadMain, MastheadLogo, MastheadContent, MastheadBrand, MastheadToggle, Menu, MenuContent, MenuItem, MenuList, MenuToggle, Nav, NavItem, NavList, Page, PageSection, PageSidebar, PageSidebarBody, PageToggleButton, SkipToContent, Toolbar, ToolbarContent, ToolbarGroup, ToolbarItem } from '@patternfly/react-core'; import BarsIcon from '@patternfly/react-icons/dist/esm/icons/bars-icon'; import BellIcon from '@patternfly/react-icons/dist/esm/icons/bell-icon'; import CogIcon from '@patternfly/react-icons/dist/esm/icons/cog-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-icon'; import HelpIcon from '@patternfly/react-icons/dist/esm/icons/help-icon'; import QuestionCircleIcon from '@patternfly/react-icons/dist/esm/icons/question-circle-icon'; import imgAvatar from '@patternfly/react-core/src/components/assets/avatarImg.svg'; import pfLogo from '@patternfly/react-core/src/demos/assets/PF-HorizontalLogo-Color.svg'; export const NavFlyout: React.FunctionComponent = () => { const [isDropdownOpen, setIsDropdownOpen] = React.useState(false); const [isKebabDropdownOpen, setIsKebabDropdownOpen] = React.useState(false); const [isFullKebabDropdownOpen, setIsFullKebabDropdownOpen] = React.useState(false); const [isMobileView, setIsMobileView] = React.useState(false); const [isSidebarOpenDesktop, setIsSidebarOpenDesktop] = React.useState(true); const [isSidebarOpenMobile, setIsSidebarOpenMobile] = React.useState(false); const [activeItem, setActiveItem] = React.useState(0); const onNavSelect = ( _event: React.FormEvent, selectedItem: { groupId: number | string; itemId: number | string; to: string; } ) => setActiveItem(selectedItem.itemId); const onDropdownToggle = () => setIsDropdownOpen((prevState) => !prevState); const onDropdownSelect = () => setIsDropdownOpen(false); const onKebabDropdownToggle = () => setIsKebabDropdownOpen((prevState) => !prevState); const onKebabDropdownSelect = () => setIsKebabDropdownOpen(false); const onFullKebabToggle = () => setIsFullKebabDropdownOpen((prevState) => !prevState); const onFullKebabSelect = () => setIsFullKebabDropdownOpen(false); const onSidebarToggleDesktop = () => setIsSidebarOpenDesktop((prevState) => !prevState); const onSidebarToggleMobile = () => setIsSidebarOpenMobile((prevState) => !prevState); interface PageOptions { mobileView: boolean; windowSize: number; } const onPageResize = (_event: MouseEvent | TouchEvent | React.KeyboardEvent, { mobileView }: PageOptions) => setIsMobileView(mobileView); const onMenuSelect = (_event: React.MouseEvent | undefined, itemId: string | number | undefined) => { itemId && setActiveItem(itemId); }; const numFlyouts = 5; const FlyoutMenu = ({ depth, children }) => ( Additional settings {[...Array(numFlyouts - depth).keys()].map((j) => ( Settings menu {depth} item {j} ))} Additional settings ); let curFlyout = {}; for (let i = 2; i < numFlyouts - 1; i++) { curFlyout = {curFlyout}; } const kebabDropdownItems = ( <> Settings Help ); const userDropdownItems = ( <> My profile User management Logout ); const headerToolbar = (