Skip to content

Commit 42dcc3e

Browse files
authored
Merge pull request #107 from rvsia/search-focus
Focus search button when menu is opened
2 parents 243b306 + cece7eb commit 42dcc3e

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

packages/react-renderer-demo/src/common/examples-nav.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import schema from './menu-renderer/schema-demo';
1313

1414
const useStyles = makeStyles(navStyles);
1515

16-
const Navigation = ({ closeNav }) => {
16+
const Navigation = ({ closeNav, searchRef }) => {
1717
const classes = useStyles();
1818

1919
return (
@@ -32,7 +32,7 @@ const Navigation = ({ closeNav }) => {
3232
</ListSubheader>) }
3333
className={ classes.listRoot }
3434
>
35-
<Menu schema={ schema } />
35+
<Menu searchRef={ searchRef } schema={ schema } />
3636
</List>
3737
);
3838
};

packages/react-renderer-demo/src/common/menu-renderer/menu-renderer.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ const memoizeCurrent = () => {
132132
const search = memoizeSearch();
133133
const current = memoizeCurrent();
134134

135-
const Menu = ({ schema }) => {
135+
const Menu = ({ schema, searchRef }) => {
136136
const [ value, setValue ] = useState('');
137137
const classes = useStyles();
138138
const currentLocation = window.location.pathname.split('/');
@@ -149,6 +149,8 @@ const Menu = ({ schema }) => {
149149
value={ value }
150150
onChange={ e => setValue(e.target.value) }
151151
className={ classes.searchButton }
152+
inputRef={ searchRef }
153+
autoFocus
152154
/>
153155
<MenuRenderer schema={ schemaFiltered } />
154156
</React.Fragment>

packages/react-renderer-demo/src/layout.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,9 +105,11 @@ const useStyles = makeStyles(theme => ({
105105
const Layout = ({ children, location: { pathname }}) => {
106106
const classes = useStyles();
107107
const [ open, setOpen ] = React.useState(false);
108+
const searchRef = React.useRef(null);
108109

109110
function handleDrawerOpen() {
110111
setOpen(true);
112+
setTimeout(() => searchRef.current.focus(), 500);
111113
}
112114

113115
function handleDrawerClose() {
@@ -140,7 +142,7 @@ const Layout = ({ children, location: { pathname }}) => {
140142
paper: classes.drawerPaper,
141143
}}
142144
>
143-
<Navigation closeNav={ handleDrawerClose }/>
145+
<Navigation searchRef={ searchRef } closeNav={ handleDrawerClose }/>
144146
<Divider />
145147
</Drawer>
146148
<main

0 commit comments

Comments
 (0)