diff --git a/src/browser/components/MainPage.jsx b/src/browser/components/MainPage.jsx index 34e7186e..95eb83d3 100644 --- a/src/browser/components/MainPage.jsx +++ b/src/browser/components/MainPage.jsx @@ -25,7 +25,9 @@ const MainPage = createReactClass({ useSpellChecker: PropTypes.bool.isRequired, onSelectSpellCheckerLocale: PropTypes.func.isRequired, deeplinkingUrl: PropTypes.string, - showAddServerButton: PropTypes.bool.isRequired + showAddServerButton: PropTypes.bool.isRequired, + requestingPermission: TabBar.propTypes.requestingPermission, + onClickPermissionDialog: PropTypes.func }, getInitialState() { @@ -260,6 +262,8 @@ const MainPage = createReactClass({ onSelect={this.handleSelect} onAddServer={this.addServer} showAddServerButton={this.props.showAddServerButton} + requestingPermission={this.props.requestingPermission} + onClickPermissionDialog={this.props.onClickPermissionDialog} /> ); diff --git a/src/browser/components/TabBar.jsx b/src/browser/components/TabBar.jsx index 6287b572..f5b6f40d 100644 --- a/src/browser/components/TabBar.jsx +++ b/src/browser/components/TabBar.jsx @@ -1,34 +1,69 @@ const React = require('react'); +const {findDOMNode} = require('react-dom'); const PropTypes = require('prop-types'); -const {Glyphicon, Nav, NavItem} = require('react-bootstrap'); +const {Glyphicon, Nav, NavItem, Overlay} = require('react-bootstrap'); +const PermissionRequestDialog = require('./PermissionRequestDialog.jsx'); +const utils = require('../../utils/util'); -function TabBar(props) { - const tabs = props.teams.map((team, index) => { - let unreadCount = 0; - if (props.unreadCounts[index] > 0) { - unreadCount = props.unreadCounts[index]; - } - if (props.unreadAtActive[index]) { - unreadCount += 1; - } +class TabBar extends React.Component { // need "this" + render() { + const tabs = this.props.teams.map((team, index) => { + let unreadCount = 0; + if (this.props.unreadCounts[index] > 0) { + unreadCount = this.props.unreadCounts[index]; + } + if (this.props.unreadAtActive[index]) { + unreadCount += 1; + } - let mentionCount = 0; - if (props.mentionCounts[index] > 0) { - mentionCount = props.mentionCounts[index]; - } - if (props.mentionAtActiveCounts[index] > 0) { - mentionCount += props.mentionAtActiveCounts[index]; - } + let mentionCount = 0; + if (this.props.mentionCounts[index] > 0) { + mentionCount = this.props.mentionCounts[index]; + } + if (this.props.mentionAtActiveCounts[index] > 0) { + mentionCount += this.props.mentionAtActiveCounts[index]; + } - let badgeDiv; - if (mentionCount !== 0) { - badgeDiv = ( -