summaryrefslogtreecommitdiffstats
path: root/web/react/components/channel_header.jsx
diff options
context:
space:
mode:
Diffstat (limited to 'web/react/components/channel_header.jsx')
-rw-r--r--web/react/components/channel_header.jsx42
1 files changed, 30 insertions, 12 deletions
diff --git a/web/react/components/channel_header.jsx b/web/react/components/channel_header.jsx
index b5eb546cf..727f84e8e 100644
--- a/web/react/components/channel_header.jsx
+++ b/web/react/components/channel_header.jsx
@@ -11,6 +11,7 @@ import ChannelInviteModal from './channel_invite_modal.jsx';
import ChannelMembersModal from './channel_members_modal.jsx';
import ChannelNotificationsModal from './channel_notifications_modal.jsx';
import DeleteChannelModal from './delete_channel_modal.jsx';
+import RenameChannelModal from './rename_channel_modal.jsx';
import ToggleModalButton from './toggle_modal_button.jsx';
import ChannelStore from '../stores/channel_store.jsx';
@@ -39,10 +40,13 @@ export default class ChannelHeader extends React.Component {
this.onListenerChange = this.onListenerChange.bind(this);
this.handleLeave = this.handleLeave.bind(this);
this.searchMentions = this.searchMentions.bind(this);
+ this.showRenameChannelModal = this.showRenameChannelModal.bind(this);
+ this.hideRenameChannelModal = this.hideRenameChannelModal.bind(this);
const state = this.getStateFromStores();
state.showEditChannelPurposeModal = false;
state.showMembersModal = false;
+ state.showRenameChannelModal = false;
this.state = state;
}
getStateFromStores() {
@@ -51,7 +55,6 @@ export default class ChannelHeader extends React.Component {
return {
channel: ChannelStore.getCurrent(),
memberChannel: ChannelStore.getCurrentMember(),
- memberTeam: UserStore.getCurrentUser(),
users: extraInfo.members,
userCount: extraInfo.member_count,
searchVisible: SearchStore.getSearchResults() !== null
@@ -61,14 +64,12 @@ export default class ChannelHeader extends React.Component {
ChannelStore.addChangeListener(this.onListenerChange);
ChannelStore.addExtraInfoChangeListener(this.onListenerChange);
SearchStore.addSearchChangeListener(this.onListenerChange);
- UserStore.addChangeListener(this.onListenerChange);
PreferenceStore.addChangeListener(this.onListenerChange);
}
componentWillUnmount() {
ChannelStore.removeChangeListener(this.onListenerChange);
ChannelStore.removeExtraInfoChangeListener(this.onListenerChange);
SearchStore.removeSearchChangeListener(this.onListenerChange);
- UserStore.removeChangeListener(this.onListenerChange);
PreferenceStore.removeChangeListener(this.onListenerChange);
}
onListenerChange() {
@@ -97,11 +98,11 @@ export default class ChannelHeader extends React.Component {
searchMentions(e) {
e.preventDefault();
- const user = UserStore.getCurrentUser();
+ const user = this.props.user;
let terms = '';
if (user.notify_props && user.notify_props.mention_keys) {
- const termKeys = UserStore.getCurrentMentionKeys();
+ const termKeys = UserStore.getMentionKeys(user.id);
if (user.notify_props.all === 'true' && termKeys.indexOf('@all') !== -1) {
termKeys.splice(termKeys.indexOf('@all'), 1);
@@ -120,6 +121,18 @@ export default class ChannelHeader extends React.Component {
is_mention_search: true
});
}
+ showRenameChannelModal(e) {
+ e.preventDefault();
+
+ this.setState({
+ showRenameChannelModal: true
+ });
+ }
+ hideRenameChannelModal() {
+ this.setState({
+ showRenameChannelModal: false
+ });
+ }
render() {
if (this.state.channel === null) {
return null;
@@ -150,8 +163,8 @@ export default class ChannelHeader extends React.Component {
</Popover>
);
let channelTitle = channel.display_name;
- const currentId = UserStore.getCurrentId();
- const isAdmin = Utils.isAdmin(this.state.memberChannel.roles) || Utils.isAdmin(this.state.memberTeam.roles);
+ const currentId = this.props.user.id;
+ const isAdmin = Utils.isAdmin(this.state.memberChannel.roles) || Utils.isAdmin(this.props.user.roles);
const isDirect = (this.state.channel.type === 'D');
if (isDirect) {
@@ -326,11 +339,7 @@ export default class ChannelHeader extends React.Component {
<a
role='menuitem'
href='#'
- data-toggle='modal'
- data-target='#rename_channel'
- data-display={channel.display_name}
- data-name={channel.name}
- data-channelid={channel.id}
+ onClick={this.showRenameChannelModal}
>
<FormattedMessage
id='channel_header.rename'
@@ -470,7 +479,16 @@ export default class ChannelHeader extends React.Component {
onModalDismissed={() => this.setState({showMembersModal: false})}
channel={channel}
/>
+ <RenameChannelModal
+ show={this.state.showRenameChannelModal}
+ onHide={this.hideRenameChannelModal}
+ channel={channel}
+ />
</div>
);
}
}
+
+ChannelHeader.propTypes = {
+ user: React.PropTypes.object.isRequired
+};