import React 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 '@breakaway/preact-core'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import EllipsisVIcon from '@patternfly/react-icons/dist/esm/icons/ellipsis-v-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] = React.useState(false); const [resourceIsExpanded, setResourceIsExpanded] = React.useState(false); const [resourceSelected, setResourceSelected] = React.useState(''); const [statusIsExpanded, setStatusIsExpanded] = React.useState(false); const [statusSelected, setStatusSelected] = React.useState(''); const [isSplitButtonDropdownOpen, setIsSplitButtonDropdownOpen] = React.useState(false); const [page, setPage] = React.useState(1); const [perPage, setPerPage] = React.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} ); };