aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoah Loomans <noahloomans@gmail.com>2017-12-10 14:06:11 +0100
committerNoah Loomans <noahloomans@gmail.com>2017-12-10 14:06:11 +0100
commit29338e66b28daee52f7fe5a5cdab49140b3e5a60 (patch)
treeec9575c5da3f51029b80a70ab108885d76e55bd5
parentffb2f60239ff340ea6b639b17362d87010db8e7a (diff)
Show correct icon based on user type
-rw-r--r--src/client/react/components/presentational/Search.jsx38
-rw-r--r--src/client/react/reducers/search.js3
2 files changed, 34 insertions, 7 deletions
diff --git a/src/client/react/components/presentational/Search.jsx b/src/client/react/components/presentational/Search.jsx
index 40cd3e8..bdddf06 100644
--- a/src/client/react/components/presentational/Search.jsx
+++ b/src/client/react/components/presentational/Search.jsx
@@ -2,19 +2,43 @@ 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';
+import StudentIcon from 'react-icons/lib/md/person';
+import RoomIcon from 'react-icons/lib/md/room';
+import ClassIcon from 'react-icons/lib/md/group';
+import TeacherIcon from 'react-icons/lib/md/account-circle';
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>
-);
+const Result = ({ user }) => {
+ let icon;
+
+ switch (user.type) {
+ case 'c':
+ icon = <ClassIcon />;
+ break;
+ case 't':
+ icon = <TeacherIcon />;
+ break;
+ case 's':
+ icon = <StudentIcon />;
+ break;
+ case 'r':
+ icon = <RoomIcon />;
+ break;
+ default:
+ throw new Error(`Invalid user type: ${user.type}`);
+ }
+
+ return (
+ <div className="search__result">
+ <div className="search__icon-wrapper">{icon}</div>
+ <div className="search__result__text">{user.value}</div>
+ </div>
+ );
+};
Result.propTypes = {
user: PropTypes.shape(userShape).isRequired,
diff --git a/src/client/react/reducers/search.js b/src/client/react/reducers/search.js
index 50233a7..4e2032d 100644
--- a/src/client/react/reducers/search.js
+++ b/src/client/react/reducers/search.js
@@ -12,6 +12,9 @@ const search = (state = DEFAULT_STATE, action) => {
searchInput: action.typedValue,
searchResults: [
{ type: 's', value: '18561' },
+ { type: 'c', value: '5H2' },
+ { type: 't', value: 'akh' },
+ { type: 'r', value: '008-mk' },
],
};
case 'SEARCH/FOCUS_CHANGE':