import React from 'react'; import { Toolbar, ToolbarItem, ToolbarContent, ToolbarFilter, ToolbarToggleGroup, ToolbarGroup, Badge, Button, MenuToggle, MenuToggleElement, Select, SelectList, SelectOption } from '@breakaway/preact-core'; import FilterIcon from '@patternfly/react-icons/dist/esm/icons/filter-icon'; import EditIcon from '@patternfly/react-icons/dist/esm/icons/edit-icon'; import CloneIcon from '@patternfly/react-icons/dist/esm/icons/clone-icon'; import SyncIcon from '@patternfly/react-icons/dist/esm/icons/sync-icon'; export const ToolbarCustomChipGroupContent: React.FunctionComponent = () => { const [statusIsExpanded, setStatusIsExpanded] = React.useState(false); const [riskIsExpanded, setRiskIsExpanded] = React.useState(false); const [filters, setFilters] = React.useState({ risk: ['Low'], status: ['New', 'Pending'] }); const onDelete = (type: string, id: string) => { if (type === 'Risk') { setFilters({ risk: filters.risk.filter((fil: string) => fil !== id), status: filters.status }); } else if (type === 'Status') { setFilters({ risk: filters.risk, status: filters.status.filter((fil: string) => fil !== id) }); } else { setFilters({ risk: [], status: [] }); } }; const onDeleteGroup = (type: string) => { if (type === 'Risk') { setFilters({ risk: [], status: filters.status }); } else if (type === 'Status') { setFilters({ risk: filters.risk, status: [] }); } }; const onSelect = (type: 'Risk' | 'Status', event: React.MouseEvent | React.ChangeEvent, selection: string) => { const checked = (event.target as any).checked; if (type === 'Risk') { setFilters({ risk: checked ? [...filters.risk, selection] : filters.risk.filter((fil: string) => fil !== selection), status: filters.status }); } else if (type === 'Status') { setFilters({ risk: filters.risk, status: checked ? [...filters.status, selection] : filters.status.filter((fil: string) => fil !== selection) }); } }; const statusMenuItems = ( New Pending Running Cancelled ); const riskMenuItems = ( Low Medium High ); const toggleGroupItems = ( onDelete(category as string, chip as string)} deleteChipGroup={(category) => onDeleteGroup(category as string)} categoryName="Status" > onDelete(category as string, chip as string)} deleteChipGroup={(category) => onDeleteGroup(category as string)} categoryName="Risk" > ); const toolbarItems = ( } breakpoint="xl"> {toggleGroupItems} ); const customChipGroupContent = ( ); return ( {toolbarItems} ); };