diff options
author | Noah Loomans <noahloomans@gmail.com> | 2017-12-10 13:53:07 +0100 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2017-12-10 13:53:07 +0100 |
commit | 7e63aa14ea4298a1511f75e875ca001d2bd61ee8 (patch) | |
tree | 676ad255ce0e157107615cdebd4f348e42210b62 /src/client/react | |
parent | 9f6a36d1f1a16c1a777a23fcc8c986c45ee0a116 (diff) |
Add results
Diffstat (limited to 'src/client/react')
-rw-r--r-- | src/client/react/components/presentational/Search.jsx | 30 | ||||
-rw-r--r-- | src/client/react/reducers/search.js | 2 |
2 files changed, 23 insertions, 9 deletions
diff --git a/src/client/react/components/presentational/Search.jsx b/src/client/react/components/presentational/Search.jsx index 01c6f7d..40cd3e8 100644 --- a/src/client/react/components/presentational/Search.jsx +++ b/src/client/react/components/presentational/Search.jsx @@ -2,6 +2,23 @@ import React from 'react'; import PropTypes from 'prop-types'; import classnames from 'classnames'; import SearchIcon from 'react-icons/lib/md/search'; +import PersonIcon from 'react-icons/lib/md/person'; + +const userShape = { + value: PropTypes.string.isRequired, + type: PropTypes.string.isRequired, +}; + +const Result = ({ user }) => ( + <div className="search__result"> + <div className="search__icon-wrapper"><PersonIcon /></div> + <div className="search__result__text">{user.value}</div> + </div> +); + +Result.propTypes = { + user: PropTypes.shape(userShape).isRequired, +}; const Search = ({ onInputChange, @@ -11,7 +28,7 @@ const Search = ({ value, results, }) => ( - <div className={classnames('search', { focus: hasFocus })}> + <div className={classnames('search', { 'search--has-focus': hasFocus, 'search--has-results': results.length > 0 })}> <div className="search__input-wrapper"> <div className="search__icon-wrapper"><SearchIcon /></div> <input @@ -22,9 +39,9 @@ const Search = ({ onBlur={onBlur} /> </div> - <ul> - {results.map(result => <li key={result.name}>{result.name}</li>)} - </ul> + {results.map(user => ( + <Result key={user.value} user={user} /> + ))} </div> ); @@ -34,10 +51,7 @@ Search.propTypes = { onBlur: PropTypes.func.isRequired, hasFocus: PropTypes.bool.isRequired, value: PropTypes.string.isRequired, - results: PropTypes.arrayOf(PropTypes.shape({ - name: PropTypes.string.isRequired, - type: PropTypes.string.isRequired, - })).isRequired, + results: PropTypes.arrayOf(PropTypes.shape(userShape)).isRequired, }; export default Search; diff --git a/src/client/react/reducers/search.js b/src/client/react/reducers/search.js index a695184..50233a7 100644 --- a/src/client/react/reducers/search.js +++ b/src/client/react/reducers/search.js @@ -11,7 +11,7 @@ const search = (state = DEFAULT_STATE, action) => { ...state, searchInput: action.typedValue, searchResults: [ - { type: 's', name: '18561' }, + { type: 's', value: '18561' }, ], }; case 'SEARCH/FOCUS_CHANGE': |