diff --git a/web/react/components/more_direct_channels.jsx b/web/react/components/more_direct_channels.jsx
index 96c08c4416..0fbd900969 100644
--- a/web/react/components/more_direct_channels.jsx
+++ b/web/react/components/more_direct_channels.jsx
@@ -16,10 +16,9 @@ export default class MoreDirectChannels extends React.Component {
}
componentDidMount() {
- var self = this;
- $(React.findDOMNode(this.refs.modal)).on('show.bs.modal', function showModal(e) {
+ $(React.findDOMNode(this.refs.modal)).on('show.bs.modal', (e) => {
var button = e.relatedTarget;
- self.setState({channels: $(button).data('channels')});
+ this.setState({channels: $(button).data('channels')}); // eslint-disable-line react/no-did-mount-set-state
});
}
@@ -30,14 +29,45 @@ export default class MoreDirectChannels extends React.Component {
}
render() {
- var self = this;
-
var directMessageItems = this.state.channels.map((channel, index) => {
var badge = '';
var titleClass = '';
var handleClick = null;
- if (!channel.fake) {
+ if (channel.fake) {
+ // It's a direct message channel that doesn't exist yet so let's create it now
+ var otherUserId = utils.getUserIdFromChannelName(channel);
+
+ if (this.state.loadingDMChannel === index) {
+ badge = (
+
+ );
+ }
+
+ if (this.state.loadingDMChannel === -1) {
+ handleClick = (e) => {
+ e.preventDefault();
+ this.setState({loadingDMChannel: index});
+ this.handleJoinDirectChannel(channel);
+
+ Client.createDirectChannel(channel, otherUserId,
+ (data) => {
+ $(React.findDOMNode(this.refs.modal)).modal('hide');
+ this.setState({loadingDMChannel: -1});
+ AsyncClient.getChannel(data.id);
+ utils.switchChannel(data);
+ },
+ () => {
+ this.setState({loadingDMChannel: -1});
+ window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/' + channel.name;
+ }
+ );
+ };
+ }
+ } else {
if (channel.unread) {
badge = {channel.unread};
titleClass = 'unread-title';
@@ -47,41 +77,8 @@ export default class MoreDirectChannels extends React.Component {
e.preventDefault();
this.handleJoinDirectChannel(channel);
utils.switchChannel(channel);
- $(React.findDOMNode(self.refs.modal)).modal('hide');
+ $(React.findDOMNode(this.refs.modal)).modal('hide');
};
- } else {
- // It's a direct message channel that doesn't exist yet so let's create it now
- var otherUserId = utils.getUserIdFromChannelName(channel);
-
- if (self.state.loadingDMChannel === index) {
- badge = (
-
- );
- }
-
- if (self.state.loadingDMChannel === -1) {
- handleClick = (e) => {
- e.preventDefault();
- self.setState({loadingDMChannel: index});
- this.handleJoinDirectChannel(channel);
-
- Client.createDirectChannel(channel, otherUserId,
- function success(data) {
- $(React.findDOMNode(self.refs.modal)).modal('hide');
- self.setState({loadingDMChannel: -1});
- AsyncClient.getChannel(data.id);
- utils.switchChannel(data);
- },
- function error() {
- self.setState({loadingDMChannel: -1});
- window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/' + channel.name;
- }
- );
- };
- }
}
return (
@@ -112,10 +109,10 @@ export default class MoreDirectChannels extends React.Component {
className='close'
data-dismiss='modal'
>
-
- Close
+
+ {'Close'}
-