diff options
author | Noah Loomans <noahloomans@gmail.com> | 2017-12-21 12:06:41 +0100 |
---|---|---|
committer | Noah Loomans <noahloomans@gmail.com> | 2017-12-21 12:06:41 +0100 |
commit | f0c8cf0e79f003514fd65a70def5820205955a77 (patch) | |
tree | cb66d325fb5d16d8b7fa0f14c91ad17dd4ff7c6c /src/client/react/components/presentational/IconFromUserType.tsx | |
parent | 569b2969d530f08e55798c5cb3079948c7c037cd (diff) |
Move to typescript
Diffstat (limited to 'src/client/react/components/presentational/IconFromUserType.tsx')
-rw-r--r-- | src/client/react/components/presentational/IconFromUserType.tsx | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/src/client/react/components/presentational/IconFromUserType.tsx b/src/client/react/components/presentational/IconFromUserType.tsx new file mode 100644 index 0000000..d77ea1b --- /dev/null +++ b/src/client/react/components/presentational/IconFromUserType.tsx @@ -0,0 +1,31 @@ +import * as React from 'react'; +import StudentIcon = require('react-icons/lib/md/person'); +import RoomIcon = require('react-icons/lib/md/room'); +import ClassIcon = require('react-icons/lib/md/group'); +import TeacherIcon = require('react-icons/lib/md/account-circle'); + +// interface IconFromUserTypeProps { +// userType: string, +// defaultIcon?: JSX.Element, +// } + +const IconFromUserType: React.StatelessComponent<{ userType: string, defaultIcon?: JSX.Element }> = (props) => { + switch (props.userType) { + case 'c': + return <ClassIcon />; + case 't': + return <TeacherIcon />; + case 's': + return <StudentIcon />; + case 'r': + return <RoomIcon />; + default: + if (props.defaultIcon) { + return props.defaultIcon; + } + + throw new Error('`userType` was invalid or not given, but `defaultIcon` is not defined.'); + } +}; + +export default IconFromUserType; |