diff options
author | Noah Loomans <noahloomans@gmail.com> | 2018-02-07 15:21:34 +0100 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2018-02-07 15:21:34 +0100 |
commit | 90eb2fec5e6e28b05f0b9511e8e539bcc42e0033 (patch) | |
tree | 80aadea4f2e6d50d7729f15edadb204d1217ab88 /src/client | |
parent | c325916e381d6ac13fcc840b2d4baa87913a3184 (diff) |
Escape resets the search box
Diffstat (limited to 'src/client')
-rw-r--r-- | src/client/react/components/container/Search.js | 57 |
1 files changed, 32 insertions, 25 deletions
diff --git a/src/client/react/components/container/Search.js b/src/client/react/components/container/Search.js index 32996e3..8ca386c 100644 --- a/src/client/react/components/container/Search.js +++ b/src/client/react/components/container/Search.js @@ -51,32 +51,39 @@ class Search extends React.Component { } onKeyDown(event) { - if (event.key === 'ArrowUp' || event.key === 'ArrowDown' || event.key === 'Enter') { - event.preventDefault(); - switch (event.key) { - case 'ArrowUp': - this.props.dispatch(changeSelectedResult(-1)); - break; - case 'ArrowDown': - this.props.dispatch(changeSelectedResult(+1)); - break; - case 'Enter': { - const result = this.props.selectedResult || this.props.results[0]; - const urlUser = userFromMatch(this.props.match); - - if (result === urlUser) { - // EDGE CASE: The user is set if the user changes, but it doesn't - // change if the result is already the one we are viewing. - // Therefor, we need to dispatch the SET_USER command manually. - this.props.dispatch(setUser(urlUser)); - } else if (result) { - this.props.history.push(`/${result}`); - } - break; + const urlUser = userFromMatch(this.props.match); + const result = this.props.selectedResult || this.props.results[0]; + + switch (event.key) { + case 'ArrowUp': + event.preventDefault(); + this.props.dispatch(changeSelectedResult(-1)); + break; + + case 'ArrowDown': + event.preventDefault(); + this.props.dispatch(changeSelectedResult(+1)); + break; + + case 'Escape': + event.preventDefault(); + this.props.dispatch(setUser(urlUser)); + break; + + case 'Enter': + event.preventDefault(); + if (result === urlUser) { + // EDGE CASE: The user is set if the user changes, but it doesn't + // change if the result is already the one we are viewing. + // Therefor, we need to dispatch the SET_USER command manually. + this.props.dispatch(setUser(urlUser)); + } else if (result) { + this.props.history.push(`/${result}`); } - default: - throw new Error('This should never happen... pls?'); - } + break; + + default: + // Do nothing } } |