diff --git a/src/components/Avatar.tsx b/src/components/Avatar.tsx new file mode 100644 index 0000000..32ce50b --- /dev/null +++ b/src/components/Avatar.tsx @@ -0,0 +1,49 @@ +import React from "react"; +import classNames from "classnames"; + +export type Props = { + /** + * The style avatar + */ + className?: string; + /** + * The path of image + */ + src?: string; + /** + * The alternative text in case the image is not valid + */ + alt?: string; + /** + * The text inside avatar as a child + */ + children?: React.ReactNode; +}; + +const Avatar = ({ className, src, alt, children }: Props) => { + return ( + <div> + {/* In case the src is valid, it will show the image */} + {src && ( + <img + className="h-9 w-9 bg-contain bg-no-repeat rounded-full" + src={src} + alt={alt} + /> + )} + {/* The text will be shown in case it is valid */} + {children && ( + <div + className={classNames( + "h-9 w-9 flex justify-center items-center text-base rounded-full bg-red-400", + className + )} + > + {children} + </div> + )} + </div> + ); +}; + +export default Avatar;