import { Fragment, useState } from 'react'; import { Button, ButtonVariant, Select, SelectList, SelectOption, Pagination, Dropdown, DropdownItem, DropdownList, Divider, MenuToggle, MenuToggleCheckbox, MenuToggleElement, OverflowMenu, OverflowMenuContent, OverflowMenuControl, OverflowMenuGroup, OverflowMenuItem, Toolbar, ToolbarContent, ToolbarToggleGroup, ToolbarItem } from '@patternfly/react-core'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import RhUiEllipsisVerticalFillIcon from '@patternfly/react-icons/dist/esm/icons/rh-ui-ellipsis-vertical-fill-icon'; export const ToolbarStacked: React.FunctionComponent = () => { // toggle group - three option menus with labels, two icon buttons, Kebab menu - right aligned // pagination - right aligned const resourceOptions = ['All resources', 'Deployment', 'Pod']; const statusOptions = ['New', 'Pending', 'Running', 'Cancelled']; const [kebabIsOpen, setKebabIsOpen] = useState(false); const [resourceIsExpanded, setResourceIsExpanded] = useState(false); const [resourceSelected, setResourceSelected] = useState(''); const [statusIsExpanded, setStatusIsExpanded] = useState(false); const [statusSelected, setStatusSelected] = useState(''); const [isSplitButtonDropdownOpen, setIsSplitButtonDropdownOpen] = useState(false); const [page, setPage] = useState(1); const [perPage, setPerPage] = useState(20); const onKebabToggle = () => { setKebabIsOpen(!kebabIsOpen); }; const onResourceToggle = () => { setResourceIsExpanded(!resourceIsExpanded); }; const onResourceSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string) => { setResourceSelected(selection); setResourceIsExpanded(false); }; const onResourceSelectDropdown = () => { setResourceIsExpanded(false); }; const onStatusToggle = () => { setStatusIsExpanded(!statusIsExpanded); }; const onStatusSelect = (_event: React.ChangeEvent | React.MouseEvent, selection: string) => { setStatusSelected(selection); setStatusIsExpanded(false); }; const onSetPage = (_event: React.MouseEvent | React.KeyboardEvent | MouseEvent, pageNumber: number) => { setPage(pageNumber); }; const onPerPageSelect = ( _event: React.MouseEvent | React.KeyboardEvent | MouseEvent, perPage: number, page: number ) => { setPage(page); setPerPage(perPage); }; const onSplitButtonToggle = () => { setIsSplitButtonDropdownOpen(!isSplitButtonDropdownOpen); }; const onSplitButtonSelect = () => { setIsSplitButtonDropdownOpen(!isSplitButtonDropdownOpen); }; const dropdownItems = ( <> Action ev.preventDefault()} > Link Disabled Action Disabled Link ); const splitButtonDropdownItems = ( <> Action ev.preventDefault()} > Link Disabled Action Disabled Link ); const toggleGroupItems = ( Resource Status ); const firstRowItems = ( } breakpoint="lg"> {toggleGroupItems} setKebabIsOpen(isOpen)} toggle={(toggleRef: React.Ref) => ( } /> )} isOpen={kebabIsOpen} > {dropdownItems} ); const secondRowItems = ( setIsSplitButtonDropdownOpen(isOpen)} toggle={(toggleRef: React.Ref) => ( ]} /> )} > {splitButtonDropdownItems} ); return ( {firstRowItems} {secondRowItems} ); };