// Copyright (c) 2016 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import Constants from 'utils/constants.jsx'; import React from 'react'; import {Link} from 'react-router/es6'; import {Tooltip, OverlayTrigger} from 'react-bootstrap'; import {isMobile} from 'utils/utils.jsx'; import {isMobileApp} from 'utils/user_agent.jsx'; export default class TeamButton extends React.Component { constructor(props) { super(props); this.handleDisabled = this.handleDisabled.bind(this); } handleDisabled(e) { e.preventDefault(); } render() { let teamClass = this.props.active ? 'active' : ''; const btnClass = this.props.btnClass; const disabled = this.props.disabled ? 'team-disabled' : ''; const handleClick = (this.props.active || this.props.disabled) ? this.handleDisabled : null; let badge; if (!teamClass) { teamClass = this.props.unread ? 'unread' : ''; if (this.props.mentions) { badge = ( {this.props.mentions} ); } } let btn; let content = this.props.content; if (!content) { content = (
{this.props.displayName.substring(0, 2)}
{this.props.displayName}
); } if (!isMobile() && !isMobileApp()) { btn = ( {this.props.displayName} } >
{badge} {content}
); } else { btn = (
{badge} {content}
); } return (
{btn}
); } } TeamButton.defaultProps = { btnClass: '', tip: '', placement: 'right', active: false, disabled: false, unread: false, mentions: 0 }; TeamButton.propTypes = { btnClass: React.PropTypes.string, url: React.PropTypes.string.isRequired, displayName: React.PropTypes.string, content: React.PropTypes.node, tip: React.PropTypes.node.isRequired, active: React.PropTypes.bool, disabled: React.PropTypes.bool, unread: React.PropTypes.bool, mentions: React.PropTypes.number, placement: React.PropTypes.oneOf(['left', 'right', 'top', 'bottom']) };