@@ -11,7 +11,7 @@ export default class Navigation extends React.Component {
11
11
let { pageUrl = '' } = this . props ;
12
12
13
13
return (
14
- < header className = "navigation" >
14
+ < header className = "navigation" ref = { container => this . container = container } >
15
15
< Container className = "navigation__inner" >
16
16
< div className = "navigation__mobile" onClick = { this . _toggleSidebar } >
17
17
< i className = "icon-menu" />
@@ -43,6 +43,7 @@ export default class Navigation extends React.Component {
43
43
type = "search"
44
44
className = "navigation__search-input"
45
45
placeholder = "Search documentation…"
46
+ ref = { searchInput => this . searchInput = searchInput }
46
47
onBlur = { this . _toggleSearch . bind ( this ) } />
47
48
< button
48
49
aria-label = "Open search"
@@ -159,20 +160,16 @@ export default class Navigation extends React.Component {
159
160
*
160
161
*/
161
162
_toggleSearch ( ) {
162
- let container = document . querySelector ( '.navigation' ) ;
163
- let input = document . querySelector ( '.navigation__search-input' ) ;
164
- let state = container . classList . toggle ( 'navigation--search-mode' ) ;
163
+ let state = this . container . classList . toggle ( 'navigation--search-mode' ) ;
165
164
166
- if ( state === true ) input . focus ( ) ;
165
+ if ( state === true ) this . searchInput . focus ( ) ;
167
166
}
168
167
169
168
/**
170
169
* Expand the search input
171
170
*
172
171
*/
173
172
_openSearch ( ) {
174
- let container = document . querySelector ( '.navigation' ) ;
175
-
176
- container . classList . add ( 'navigation--search-mode' ) ;
173
+ this . container . classList . add ( 'navigation--search-mode' ) ;
177
174
}
178
175
}
0 commit comments