From 7a820cffb1cd37c521b259a09c545c30d889106a Mon Sep 17 00:00:00 2001 From: Alex Holliday Date: Tue, 7 May 2024 15:33:08 -0700 Subject: [PATCH] Added avatar component --- Client/src/Components/Avatar/Avatar.jsx | 42 ++++++++++++++++++ Client/src/Components/Avatar/avatar.css | 0 Client/src/Pages/Home/index.jsx | 14 ++++++ .../src/assets/Images/avatar_placeholder.png | Bin 0 -> 5546 bytes 4 files changed, 56 insertions(+) create mode 100644 Client/src/Components/Avatar/Avatar.jsx create mode 100644 Client/src/Components/Avatar/avatar.css create mode 100644 Client/src/assets/Images/avatar_placeholder.png diff --git a/Client/src/Components/Avatar/Avatar.jsx b/Client/src/Components/Avatar/Avatar.jsx new file mode 100644 index 000000000..d881de7bb --- /dev/null +++ b/Client/src/Components/Avatar/Avatar.jsx @@ -0,0 +1,42 @@ +import { Avatar as MuiAvatar } from "@mui/material"; +import PropTypes from "prop-types"; + +/** + * @component + * @param {Object} props + * @param {string} props.src - Path to image for avatar + * @param {string} props.firstName - The users first name + * @param {string} props.lastName - The users last name + * @param {boolean} props.small - Specifies if avatar should be large + * @returns {JSX.Element} + * @example + * // Render a red label + * + */ + +const Avatar = ({ src, firstName, lastName, small }) => { + const borderColor = "#F0F2F4"; + const smallStyle = small ? { width: 32, height: 32 } : {}; + return ( + + {src === undefined ? `${firstName[0]}${lastName[0]}` : null} + + ); +}; + +Avatar.propTypes = { + src: PropTypes.string, + firstName: PropTypes.string.isRequired, + lastName: PropTypes.string.isRequired, + small: PropTypes.bool, +}; + +export default Avatar; diff --git a/Client/src/Components/Avatar/avatar.css b/Client/src/Components/Avatar/avatar.css new file mode 100644 index 000000000..e69de29bb diff --git a/Client/src/Pages/Home/index.jsx b/Client/src/Pages/Home/index.jsx index f9a7cf14d..58c90ee8e 100644 --- a/Client/src/Pages/Home/index.jsx +++ b/Client/src/Pages/Home/index.jsx @@ -3,6 +3,8 @@ import DropdownTeamMember from "../../Components/DropdownTeamMember"; import "./index.css"; import Button from "../../Components/Button"; import Link from "../../Components/Link"; +import Avatar from "../../Components/Avatar/Avatar"; +import avatarImage from "../../assets/Images/avatar_placeholder.png"; const Home = () => { return ( @@ -33,6 +35,18 @@ const Home = () => { url={"https://www.google.com"} /> +

Avatar

+
+ + + + +
); diff --git a/Client/src/assets/Images/avatar_placeholder.png b/Client/src/assets/Images/avatar_placeholder.png new file mode 100644 index 0000000000000000000000000000000000000000..38e896811951f0ccf5799097a774793eddb644c1 GIT binary patch literal 5546 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