// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import ProfilePopover from './profile_popover.jsx'; import * as Utils from 'utils/utils.jsx'; import React from 'react'; import StatusIcon from './status_icon.jsx'; import {OverlayTrigger} from 'react-bootstrap'; export default class ProfilePicture extends React.Component { constructor(props) { super(props); this.hideProfilePopover = this.hideProfilePopover.bind(this); } shouldComponentUpdate(nextProps) { if (!Utils.areObjectsEqual(nextProps.user, this.props.user)) { return true; } if (nextProps.src !== this.props.src) { return true; } if (nextProps.status !== this.props.status) { return true; } if (nextProps.width !== this.props.width) { return true; } if (nextProps.height !== this.props.height) { return true; } if (nextProps.isBusy !== this.props.isBusy) { return true; } return false; } hideProfilePopover() { this.refs.overlay.hide(); } render() { if (this.props.user) { return ( } > ); } return ( ); } } ProfilePicture.defaultProps = { width: '36', height: '36' }; ProfilePicture.propTypes = { src: React.PropTypes.string.isRequired, status: React.PropTypes.string, width: React.PropTypes.string, height: React.PropTypes.string, user: React.PropTypes.object, isBusy: React.PropTypes.bool };