|
1 | | -import { Button, Toolbar, ToolbarContent, ToolbarItem, Tooltip, ValidatedOptions } from '@patternfly/react-core'; |
| 1 | +import { |
| 2 | + ExpandableSectionToggle, |
| 3 | + Toolbar, |
| 4 | + ToolbarContent, |
| 5 | + ToolbarItem, |
| 6 | + Tooltip, |
| 7 | + ValidatedOptions |
| 8 | +} from '@patternfly/react-core'; |
2 | 9 | import { CompressIcon, ExpandIcon } from '@patternfly/react-icons'; |
3 | 10 | import * as _ from 'lodash'; |
4 | 11 | import * as React from 'react'; |
@@ -144,70 +151,77 @@ export const FiltersToolbar: React.FC<FiltersToolbarProps> = ({ |
144 | 151 | showHideText = showFilters ? t('Hide filters') : t('Show filters'); |
145 | 152 | } |
146 | 153 | return ( |
147 | | - <Toolbar data-test={id} id={id}> |
148 | | - <ToolbarContent data-test={`${id}-search-filters`} id={`${id}-search-filters`} toolbarId={id}> |
149 | | - <ToolbarItem className="flex-start"> |
150 | | - <QueryOptionsDropdown {...props.queryOptionsProps} /> |
151 | | - </ToolbarItem> |
152 | | - {!isForced && quickFilters.length > 0 && ( |
| 154 | + <> |
| 155 | + <Toolbar data-test={id} id={id}> |
| 156 | + <ToolbarContent data-test={`${id}-search-filters`} id={`${id}-search-filters`} toolbarId={id}> |
153 | 157 | <ToolbarItem className="flex-start"> |
154 | | - <QuickFilters |
155 | | - quickFilters={quickFilters} |
156 | | - activeFilters={filters?.list || []} |
157 | | - setFilters={list => setFilters({ ...filters!, list })} |
158 | | - /> |
| 158 | + <QueryOptionsDropdown {...props.queryOptionsProps} /> |
159 | 159 | </ToolbarItem> |
160 | | - )} |
161 | | - {!isForced && getFilterToolbar()} |
162 | | - {showHideText && countActiveFilters > 0 && ( |
| 160 | + {!isForced && quickFilters.length > 0 && ( |
| 161 | + <ToolbarItem className="flex-start"> |
| 162 | + <QuickFilters |
| 163 | + quickFilters={quickFilters} |
| 164 | + activeFilters={filters?.list || []} |
| 165 | + setFilters={list => setFilters({ ...filters!, list })} |
| 166 | + /> |
| 167 | + </ToolbarItem> |
| 168 | + )} |
| 169 | + {!isForced && getFilterToolbar()} |
| 170 | + {showHideText && countActiveFilters > 0 && ( |
| 171 | + <ToolbarItem className="flex-start"> |
| 172 | + <ExpandableSectionToggle |
| 173 | + data-test="show-filters-button" |
| 174 | + id="show-filters-button" |
| 175 | + className="overflow-button" |
| 176 | + isExpanded={showFilters} |
| 177 | + onToggle={isExpanded => setShowFilters(isExpanded)} |
| 178 | + > |
| 179 | + {showHideText} |
| 180 | + </ExpandableSectionToggle> |
| 181 | + </ToolbarItem> |
| 182 | + )} |
163 | 183 | <ToolbarItem className="flex-start"> |
164 | | - <Button |
165 | | - data-test="show-filters-button" |
166 | | - id="show-filters-button" |
167 | | - variant="link" |
168 | | - className="overflow-button" |
169 | | - onClick={() => setShowFilters(!showFilters)} |
170 | | - > |
171 | | - {showHideText} |
172 | | - </Button> |
173 | | - </ToolbarItem> |
174 | | - )} |
175 | | - <ToolbarItem className="flex-start"> |
176 | | - <LinksOverflow |
177 | | - id={'filters-more-options'} |
178 | | - items={[ |
179 | | - { |
180 | | - id: 'fullscreen', |
181 | | - label: isFullScreen ? t('Collapse') : t('Expand'), |
182 | | - onClick: () => setFullScreen(!isFullScreen), |
183 | | - icon: isFullScreen ? <CompressIcon /> : <ExpandIcon /> |
184 | | - }, |
185 | | - { |
186 | | - id: 'set-default-filters', |
187 | | - label: t('Default filters'), |
188 | | - onClick: () => { |
189 | | - resetFilters(); |
190 | | - autoCompleteCache.clear(); |
| 184 | + <LinksOverflow |
| 185 | + id={'filters-more-options'} |
| 186 | + items={[ |
| 187 | + { |
| 188 | + id: 'fullscreen', |
| 189 | + label: isFullScreen ? t('Collapse') : t('Expand'), |
| 190 | + onClick: () => setFullScreen(!isFullScreen), |
| 191 | + icon: isFullScreen ? <CompressIcon /> : <ExpandIcon /> |
191 | 192 | }, |
192 | | - enabled: countActiveFilters === 0 |
193 | | - } |
194 | | - ]} |
195 | | - /> |
196 | | - </ToolbarItem> |
197 | | - {showFilters && countActiveFilters > 0 && ( |
198 | | - <FiltersChips |
199 | | - isForced={isForced} |
200 | | - filters={filtersOrForced!} |
201 | | - setFilters={setFilters} |
202 | | - editValue={editValue} |
203 | | - clearFilters={clearFilters} |
204 | | - resetFilters={resetFilters} |
205 | | - quickFilters={quickFilters} |
206 | | - filterDefinitions={filterDefinitions} |
207 | | - /> |
208 | | - )} |
209 | | - </ToolbarContent> |
210 | | - </Toolbar> |
| 193 | + { |
| 194 | + id: 'set-default-filters', |
| 195 | + label: t('Default filters'), |
| 196 | + onClick: () => { |
| 197 | + resetFilters(); |
| 198 | + autoCompleteCache.clear(); |
| 199 | + }, |
| 200 | + enabled: countActiveFilters === 0 |
| 201 | + } |
| 202 | + ]} |
| 203 | + /> |
| 204 | + </ToolbarItem> |
| 205 | + </ToolbarContent> |
| 206 | + </Toolbar> |
| 207 | + {showFilters && countActiveFilters > 0 && ( |
| 208 | + <Toolbar data-test={`${id}-chips`} id={`${id}-chips`}> |
| 209 | + <ToolbarContent toolbarId={`${id}-chips`}> |
| 210 | + <FiltersChips |
| 211 | + isForced={isForced} |
| 212 | + filters={filtersOrForced!} |
| 213 | + setDirection={setDirection} |
| 214 | + setFilters={setFilters} |
| 215 | + editValue={editValue} |
| 216 | + clearFilters={clearFilters} |
| 217 | + resetFilters={resetFilters} |
| 218 | + quickFilters={quickFilters} |
| 219 | + filterDefinitions={filterDefinitions} |
| 220 | + /> |
| 221 | + </ToolbarContent> |
| 222 | + </Toolbar> |
| 223 | + )} |
| 224 | + </> |
211 | 225 | ); |
212 | 226 | }; |
213 | 227 |
|
|
0 commit comments