diff options
author | eug-vs <eug-vs@keemail.me> | 2020-08-11 22:19:23 +0300 |
---|---|---|
committer | eug-vs <eug-vs@keemail.me> | 2020-08-11 22:19:23 +0300 |
commit | b5ce9be31993f5b4bee9abbe57d775b7ea407507 (patch) | |
tree | 51e502c7d1be7c8ad2179daf2f5c9bfd27911636 /src/components/Avatar/Avatar.tsx | |
parent | a9d713a73b65847af419016d2d97c4e8dab950f9 (diff) | |
download | which-ui-b5ce9be31993f5b4bee9abbe57d775b7ea407507.tar.gz |
refactor: create separate Avatar component
Diffstat (limited to 'src/components/Avatar/Avatar.tsx')
-rw-r--r-- | src/components/Avatar/Avatar.tsx | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/src/components/Avatar/Avatar.tsx b/src/components/Avatar/Avatar.tsx new file mode 100644 index 0000000..e445891 --- /dev/null +++ b/src/components/Avatar/Avatar.tsx @@ -0,0 +1,36 @@ +import React from 'react'; +import { useHistory } from 'react-router-dom'; +import { Avatar as AvatarBase } from '@material-ui/core'; +import AccountCircle from '@material-ui/icons/AccountCircle'; +import { User } from 'which-types'; + +interface PropTypes { + user: User; + className?: string; +} + +const Avatar: React.FC<PropTypes> = ({ user, className }) => { + const history = useHistory(); + const { username, avatarUrl } = user; + + const handleClick = () => { + history.push(`/profile/${username}`); + }; + + return avatarUrl ? ( + <AvatarBase + src={avatarUrl} + alt={username[0].toUpperCase()} + onClick={handleClick} + className={className} + style={{ cursor: 'pointer' }} + /> + ) : ( + <AccountCircle + className={className} + onClick={handleClick} + /> + ); +}; + +export default Avatar; |