import PureRenderMixin from 'react-addons-pure-render-mixin'; const Avatar = React.createClass({ propTypes: { src: React.PropTypes.string.isRequired, size: React.PropTypes.number.isRequired, style: React.PropTypes.object }, getInitialState () { return { hovering: false }; }, mixins: [PureRenderMixin], handleMouseEnter () { this.setState({ hovering: true }); }, handleMouseLeave () { this.setState({ hovering: false }); }, componentDidMount () { this.canvas.getContext('2d').drawImage(this.image, 0, 0, this.props.size, this.props.size); }, setImageRef (c) { this.image = c; }, setCanvasRef (c) { this.canvas = c; }, render () { const { hovering } = this.state; return (
); } }); export default Avatar;