Skip to content

Commit 0b4ce3a

Browse files
authored
fix(FilterBar): focus search input when dialog is opened (#5245)
Fixes #5242
1 parent d72d94f commit 0b4ce3a

File tree

2 files changed

+5
-1
lines changed

2 files changed

+5
-1
lines changed

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,7 @@ describe('FilterBar.cy.tsx', () => {
391391
);
392392

393393
cy.findByText('Filters (42)').click();
394+
cy.focused().should('have.attr', 'data-component-name', 'FilterBarDialogSearchInput');
394395

395396
cy.get('[ui5-table-row]').should('have.length', 3);
396397

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import group2Icon from '@ui5/webcomponents-icons/dist/group-2.js';
22
import listIcon from '@ui5/webcomponents-icons/dist/list.js';
33
import searchIcon from '@ui5/webcomponents-icons/dist/search.js';
4-
import { enrichEventWithDetails, useI18nBundle } from '@ui5/webcomponents-react-base';
4+
import { enrichEventWithDetails, useI18nBundle, useIsomorphicId } from '@ui5/webcomponents-react-base';
55
import React, { Children, cloneElement, useEffect, useReducer, useRef, useState } from 'react';
66
import { createPortal } from 'react-dom';
77
import { createUseStyles } from 'react-jss';
@@ -164,6 +164,7 @@ export const FilterDialog = (props: FilterDialogPropTypes) => {
164164
setFilteredAttribute
165165
} = props;
166166
const classes = useStyles();
167+
const uniqueId = useIsomorphicId();
167168
const [searchString, setSearchString] = useState('');
168169
const [toggledFilters, setToggledFilters] = useState({});
169170
const dialogRefs = useRef({});
@@ -374,6 +375,7 @@ export const FilterDialog = (props: FilterDialogPropTypes) => {
374375
draggable
375376
className={classes.dialogComponent}
376377
preventFocusRestore
378+
initialFocus={`${uniqueId}-fb-dialog-search`}
377379
header={
378380
<Bar
379381
design={BarDesign.Header}
@@ -454,6 +456,7 @@ export const FilterDialog = (props: FilterDialogPropTypes) => {
454456
</Toolbar>
455457
<FlexBox className={classes.searchInputContainer}>
456458
<Input
459+
id={`${uniqueId}-fb-dialog-search`}
457460
noTypeahead
458461
placeholder={searchForFiltersText}
459462
onInput={handleSearch}

0 commit comments

Comments
 (0)