// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. // See License.txt for license information. import NavbarDropdown from './navbar_dropdown.jsx'; import TutorialTip from './tutorial/tutorial_tip.jsx'; import UserStore from '../stores/user_store.jsx'; import PreferenceStore from '../stores/preference_store.jsx'; import * as Utils from '../utils/utils.jsx'; import Constants from '../utils/constants.jsx'; const Preferences = Constants.Preferences; const TutorialSteps = Constants.TutorialSteps; const Tooltip = ReactBootstrap.Tooltip; const OverlayTrigger = ReactBootstrap.OverlayTrigger; export default class SidebarHeader extends React.Component { constructor(props) { super(props); this.toggleDropdown = this.toggleDropdown.bind(this); this.onPreferenceChange = this.onPreferenceChange.bind(this); this.state = this.getStateFromStores(); } componentDidMount() { PreferenceStore.addChangeListener(this.onPreferenceChange); } componentWillUnmount() { PreferenceStore.removeChangeListener(this.onPreferenceChange); } getStateFromStores() { const tutorialStep = PreferenceStore.getInt(Preferences.TUTORIAL_STEP, UserStore.getCurrentId(), 999); return {showTutorialTip: tutorialStep === TutorialSteps.MENU_POPOVER}; } onPreferenceChange() { this.setState(this.getStateFromStores()); } toggleDropdown(e) { e.preventDefault(); if (this.refs.dropdown.blockToggle) { this.refs.dropdown.blockToggle = false; return; } $('.team__header').find('.dropdown-toggle').dropdown('toggle'); } createTutorialTip() { const screens = []; screens.push(

{'Main Menu'}

{'The '}{'Main Menu'}{' is where you can '} {'Invite New Members'} {', access your '} {'Account Settings'} {' and set your '}{'Theme Color'}{'.'}

{'Team administrators can also access their '}{'Team Settings'}{' from this menu.'}

{'System administrators will find a '}{'System Console'}{' option to administrate the entire system.'}

); return (
); } render() { var me = UserStore.getCurrentUser(); var profilePicture = null; if (!me) { return null; } if (me.last_picture_update) { profilePicture = ( ); } let tutorialTip = null; if (this.state.showTutorialTip) { tutorialTip = this.createTutorialTip(); } return (
{tutorialTip} {profilePicture}
{'@' + me.username}
{this.props.teamDisplayName}} ref='descriptionOverlay' >
{this.props.teamDisplayName}
); } } SidebarHeader.defaultProps = { teamDisplayName: global.window.mm_config.SiteName, teamType: '' }; SidebarHeader.propTypes = { teamDisplayName: React.PropTypes.string, teamName: React.PropTypes.string, teamType: React.PropTypes.string };