UNPKG

thinkful-ui

Version:

Shared navigation and UI resources for Thinkful.

38 lines (31 loc) 932 B
const cx = require('classnames'); const React = require('react'); const MD5 = require('spark-md5'); const URL = 'https://www.gravatar.com/avatar'; /** * Gravatar * @property {string} email the users email to use with gravatar */ class Gravatar extends React.Component { static displayName = "Gravatar" static propTypes = { email: React.PropTypes.string.isRequired, default: React.PropTypes.string, size: React.PropTypes.number, style: React.PropTypes.object } static defaultProps = { default: 'retro', size: 200, style: {} } render() { const {className, style, email='', size, ...props} = this.props; return <img className={cx("gravatar", className)} src={`${URL}/${MD5.hash(email)}?d=${this.props.default}&s=${size}`} style={style || {}} {...props}/> } } export {Gravatar};