|
1 | 1 | import * as React from 'react'; |
2 | 2 | import { useTranslation } from 'react-i18next'; |
3 | | -import { OptionsMenu, OptionsMenuItem, OptionsMenuPosition, OptionsMenuToggle } from '@patternfly/react-core'; |
| 3 | +import { Checkbox, OptionsMenu, OptionsMenuItem, OptionsMenuPosition, OptionsMenuToggle } from '@patternfly/react-core'; |
4 | 4 | import { FilterIcon } from '@patternfly/react-icons'; |
5 | 5 | import { Filter } from '../../model/filters'; |
6 | 6 | import { FilterDir, isElementFiltered, toggleElementFilter } from '../../model/topology'; |
7 | 7 | import { TopologyMetricPeer } from '../../api/loki'; |
8 | 8 | import { NodeType } from '../../model/flow-query'; |
| 9 | +import './summary-filter-button.css'; |
9 | 10 |
|
10 | 11 | export interface SummaryFilterButtonProps { |
11 | 12 | id: string; |
@@ -33,19 +34,26 @@ export const SummaryFilterButton: React.FC<SummaryFilterButtonProps> = ({ |
33 | 34 | isElementFiltered(filterType, fields, dir, activeFilters, t) |
34 | 35 | ); |
35 | 36 |
|
36 | | - const onSelect = (dir: FilterDir) => { |
| 37 | + const onSelect = (dir: FilterDir, e: React.BaseSyntheticEvent) => { |
37 | 38 | toggleElementFilter(filterType, fields, dir, selected.includes(dir), activeFilters, setFilters, t); |
| 39 | + e.preventDefault(); |
38 | 40 | }; |
39 | 41 |
|
40 | 42 | const menuItem = (id: FilterDir, label: string) => ( |
41 | | - <OptionsMenuItem id={id} key={id} isSelected={selected.includes(id)} onSelect={() => onSelect(id)}> |
42 | | - {label} |
| 43 | + <OptionsMenuItem id={id} key={id} onSelect={e => onSelect(id, e!)}> |
| 44 | + <Checkbox |
| 45 | + id={id + '-checkbox'} |
| 46 | + label={label} |
| 47 | + isChecked={selected.includes(id)} |
| 48 | + onChange={(_, e) => onSelect(id, e)} |
| 49 | + /> |
43 | 50 | </OptionsMenuItem> |
44 | 51 | ); |
45 | 52 |
|
46 | 53 | return ( |
47 | 54 | <OptionsMenu |
48 | 55 | id={id} |
| 56 | + className={'summary-filter-menu'} |
49 | 57 | data-test={id} |
50 | 58 | toggle={<OptionsMenuToggle toggleTemplate={<FilterIcon />} onToggle={setIsOpen} hideCaret />} |
51 | 59 | menuItems={[menuItem('src', t('Source')), menuItem('dst', t('Destination')), menuItem('any', t('Common'))]} |
|
0 commit comments