Skip to content

Commit 0e289fa

Browse files
authored
fix(FilterBar): correct callback values for onFiltersDialogSelectionChange (#6724)
Fixes #6720
1 parent 3a01005 commit 0e289fa

File tree

2 files changed

+60
-1
lines changed

2 files changed

+60
-1
lines changed

packages/main/src/components/FilterBar/FilterBar.cy.tsx

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,65 @@ describe('FilterBar.cy.tsx', () => {
298298
});
299299
});
300300

301+
it('select-all without required', () => {
302+
const TestComp = (props) => {
303+
const [selectedFilters, setSelectedFilters] = useState('');
304+
const [savedVisibleFilters, setSavedVisibleFilters] = useState('');
305+
306+
const handleSelectionChange: FilterBarPropTypes['onFiltersDialogSelectionChange'] = (e) => {
307+
setSelectedFilters(Array.from(e.selectedFilterKeys).join(' '));
308+
};
309+
const handleSave: FilterBarPropTypes['onFiltersDialogSave'] = (e) => {
310+
setSavedVisibleFilters(e.detail.selectedFilterKeys.join(' '));
311+
};
312+
return (
313+
<>
314+
<FilterBar {...props} onFiltersDialogSelectionChange={handleSelectionChange} onFiltersDialogSave={handleSave}>
315+
<FilterGroupItem label="INPUT" filterKey="0">
316+
<Input placeholder="Placeholder" value="123123" data-testid="INPUT" />
317+
</FilterGroupItem>
318+
<FilterGroupItem label="SWITCH" filterKey="1">
319+
<Switch checked={true} data-testid="SWITCH" />
320+
</FilterGroupItem>
321+
<FilterGroupItem label="SELECT" filterKey="2">
322+
<Select data-testid="SELECT">
323+
<Option selected={true}>Option 1</Option>
324+
<Option>Option 2</Option>
325+
<Option>Option 3</Option>
326+
<Option>Option 4</Option>
327+
</Select>
328+
</FilterGroupItem>
329+
</FilterBar>
330+
<hr />
331+
<span>Selected: </span>
332+
<span data-testid="selected">{selectedFilters}</span>
333+
<br />
334+
<span>Saved: </span>
335+
<span data-testid="saved">{savedVisibleFilters}</span>
336+
</>
337+
);
338+
};
339+
340+
cy.mount(<TestComp />);
341+
342+
cy.findByTestId('selected', '0 1 2');
343+
cy.get('[text="Filters"]').click({ force: true });
344+
cy.get('[ui5-checkbox]').first().click();
345+
cy.findByTestId('selected', '');
346+
cy.get('[ui5-checkbox]').eq(1).click();
347+
cy.findByTestId('selected', '0');
348+
cy.get('[ui5-checkbox]').first().click();
349+
cy.get('[ui5-checkbox]').first().click();
350+
351+
cy.findByText('OK').click();
352+
cy.findByTestId('saved', '');
353+
354+
cy.get('[text="Filters"]').click({ force: true });
355+
cy.get('[ui5-checkbox]').first().click();
356+
cy.findByText('OK').click();
357+
cy.findByTestId('saved', '0 1 2');
358+
});
359+
301360
// todo selection, group + list view
302361
it('Dialog search', () => {
303362
cy.mount(

packages/main/src/components/FilterBar/FilterDialog.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -373,7 +373,7 @@ export const FilterDialog = (props: FilterDialogPropTypes) => {
373373
};
374374

375375
useEffect(() => {
376-
if (selectedFilters?.length) {
376+
if (selectedFilters) {
377377
selectionChangePayloadRef.current = { selectedFilterKeys: selectedFilters };
378378
}
379379
}, [selectedFilters]);

0 commit comments

Comments
 (0)