Skip to content

Commit 39169ea

Browse files
committed
Add button to clear filter
1 parent 6df60ef commit 39169ea

2 files changed

Lines changed: 47 additions & 16 deletions

File tree

tools/docs/www/src/css/app.css

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,19 +75,36 @@ body {
7575
padding-left: 1em;
7676
}
7777

78+
.side-menu-filter {
79+
position: relative;
80+
}
81+
7882
.side-menu-filter-input {
7983
color: #acafb3;
8084
background: #1f1f1f;
8185
border: none;
8286
height: 40px;
8387
margin-top: 10px;
88+
width: 100%;
8489
padding-left: 1em;
8590
}
8691

8792
.side-menu-filter-input:hover {
8893
color: #bfc4c9;
8994
}
9095

96+
.side-menu-filter-clear {
97+
position: absolute;
98+
top: 18px;
99+
right: 4px;
100+
color: #acafb3;
101+
cursor: pointer;
102+
}
103+
104+
.side-menu-filter-clear:hover {
105+
color: #bfc4c9;
106+
}
107+
91108
::-webkit-input-placeholder {
92109
font-style: italic;
93110
}

tools/docs/www/src/side_menu.jsx

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ import MenuIcon from '@material-ui/icons/Menu';
2929
import AddIcon from '@material-ui/icons/Add';
3030
import RemoveIcon from '@material-ui/icons/Remove';
3131
import IconButton from '@material-ui/core/IconButton';
32+
import ClearIcon from '@material-ui/icons/Clear';
3233
import ChevronRightIcon from '@material-ui/icons/ChevronRight';
3334
import Logo from './logo.jsx';
3435

@@ -40,7 +41,7 @@ class MenuBar extends Component {
4041
super( props )
4142
this.state = {
4243
activePkg: null,
43-
filter: null,
44+
filter: '',
4445
found: {}
4546
};
4647
}
@@ -109,6 +110,7 @@ class MenuBar extends Component {
109110
this.state.filter &&
110111
!this.state.found[ pkgPath ]
111112
) {
113+
// Case: Filter does not match package or parent namespace
112114
return null;
113115
}
114116
return (
@@ -172,16 +174,21 @@ class MenuBar extends Component {
172174
found
173175
});
174176
} else {
175-
const keys = Object.keys( this.state.found );
176-
const newState = {};
177-
for ( let i = 0; i < keys.length; i++ ) {
178-
newState[ keys[ i ] ] = false;
179-
}
180-
this.setState({
181-
...newState,
182-
found: {}
183-
});
177+
this.resetFilter();
178+
}
179+
}
180+
181+
resetFilter = () => {
182+
const keys = Object.keys( this.state.found );
183+
const newState = {};
184+
for ( let i = 0; i < keys.length; i++ ) {
185+
newState[ keys[ i ] ] = false;
184186
}
187+
this.setState({
188+
...newState,
189+
filter: '',
190+
found: {}
191+
});
185192
}
186193

187194
checkFilter( state, docs, path, filter ) {
@@ -242,12 +249,19 @@ class MenuBar extends Component {
242249
<select className="side-menu-version-select" id="lang" onChange={this.props.onVersionChange} value={this.state.version}>
243250
<option value="v0.0.87">v0.0.87</option>
244251
</select>
245-
<input
246-
className="side-menu-filter-input"
247-
type="text"
248-
onChange={this.handleFilterChange}
249-
placeholder="Type here to filter menu..."
250-
/>
252+
<div className="side-menu-filter" >
253+
<input
254+
className="side-menu-filter-input"
255+
type="text"
256+
onChange={this.handleFilterChange}
257+
value={this.state.filter}
258+
placeholder="Type here to filter menu..."
259+
/>
260+
{ this.state.filter ? <ClearIcon
261+
className="side-menu-filter-clear"
262+
onClick={this.resetFilter}
263+
/> : null }
264+
</div>
251265
<div className="side-menu-list-wrapper" >
252266
<List disablePadding >
253267
{ this.props.packageTree ?

0 commit comments

Comments
 (0)