diff options
| author | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 16:14:30 +0200 | 
|---|---|---|
| committer | Noah Loomans <noahloomans@gmail.com> | 2018-07-06 16:14:30 +0200 | 
| commit | ebb14ffc54670c8e2cbeba18eac238965eee4e81 (patch) | |
| tree | d411ba6066a0ee4f38e85a6327456b9b4bc4b13b /src/client/react/components/container | |
| parent | 9f935565ebe09444b7b576b0be986c6271baef39 (diff) | |
client: Simplify setUser
Diffstat (limited to 'src/client/react/components/container')
| -rw-r--r-- | src/client/react/components/container/HelpBox.js | 2 | ||||
| -rw-r--r-- | src/client/react/components/container/Results.js | 20 | ||||
| -rw-r--r-- | src/client/react/components/container/Search.js | 23 | 
3 files changed, 23 insertions, 22 deletions
| diff --git a/src/client/react/components/container/HelpBox.js b/src/client/react/components/container/HelpBox.js index 30b2942..d10c26b 100644 --- a/src/client/react/components/container/HelpBox.js +++ b/src/client/react/components/container/HelpBox.js @@ -22,7 +22,7 @@ import { connect } from 'react-redux';  import HelpBox from '../presentational/HelpBox';  const mapStateToProps = state => ({ -  isVisible: state.search.results.length === 0 && state.search.text === '', +  isVisible: !state.search || (state.search.results.length === 0 && state.search.text === ''),  });  export default connect(mapStateToProps)(HelpBox); diff --git a/src/client/react/components/container/Results.js b/src/client/react/components/container/Results.js index 0d761d1..398adaa 100644 --- a/src/client/react/components/container/Results.js +++ b/src/client/react/components/container/Results.js @@ -19,27 +19,17 @@   */  import { connect } from 'react-redux'; -import { withRouter } from 'react-router-dom'; - -import users from '../../users'; -import { userFromMatch } from '../../lib/url';  import { setUser } from '../../store/actions';  import Results from '../presentational/Results'; -const mapStateToProps = (state, { match }) => { -  const user = userFromMatch(match); -  const searchText = state.search.text; - -  return { -    isExactMatch: user != null && searchText === users.byId[user].value, -    results: state.search.results, -    selectedResult: state.search.selected, -  }; -}; +const mapStateToProps = state => ({ +  results: state.search ? state.search.results : undefined, +  selectedResult: state.search && state.search.selected, +});  const mapDispatchToProps = dispatch => ({    setUser: user => dispatch(setUser(user)),  }); -export default withRouter(connect(mapStateToProps, mapDispatchToProps)(Results)); +export default connect(mapStateToProps, mapDispatchToProps)(Results); diff --git a/src/client/react/components/container/Search.js b/src/client/react/components/container/Search.js index b680fc6..73919d3 100644 --- a/src/client/react/components/container/Search.js +++ b/src/client/react/components/container/Search.js @@ -28,21 +28,32 @@ import users from '../../users';  const mapStateToProps = (state, { location }) => {    const currentUser = userFromLocation(location); -  const searchText = state.search.text; -  const isExactMatch = currentUser != null && searchText === users.byId[currentUser].value; +  const selectedUser = state.search && state.search.selected; +  let searchText; +  let isExactMatch; + +  if (state.search) { +    searchText = state.search.text; +    isExactMatch = false; +  } else if (currentUser) { +    searchText = users.byId[currentUser].value; +    isExactMatch = true; +  } else { +    searchText = ''; +    isExactMatch = false; +  }    return {      currentUser, +    selectedUser, +    searchText,      isExactMatch, -    selectedUser: state.search.selected, -    results: state.search.results, -    searchText: state.search.text,    };  };  const mapDispatchToProps = dispatch => ({    setUser: user => dispatch(setUserAction(user)), -  onInputChange: searchText => dispatch({ +  changeInput: searchText => dispatch({      type: 'SEARCH/INPUT_CHANGE',      searchText,    }), | 
