diff options
Diffstat (limited to 'web/react/components')
4 files changed, 41 insertions, 5 deletions
diff --git a/web/react/components/member_list_team_item.jsx b/web/react/components/member_list_team_item.jsx index 7b1f6170d..23bc10781 100644 --- a/web/react/components/member_list_team_item.jsx +++ b/web/react/components/member_list_team_item.jsx @@ -2,6 +2,7 @@ // See License.txt for license information. import UserStore from '../stores/user_store.jsx'; +import ChannelStore from '../stores/channel_store.jsx'; import * as Client from '../utils/client.jsx'; import * as AsyncClient from '../utils/async_client.jsx'; import * as Utils from '../utils/utils.jsx'; @@ -71,6 +72,7 @@ export default class MemberListTeamItem extends React.Component { Client.updateActive(this.props.user.id, true, () => { AsyncClient.getProfiles(); + AsyncClient.getChannelExtraInfo(ChannelStore.getCurrentId()); }, (err) => { this.setState({serverError: err.message}); @@ -81,6 +83,7 @@ export default class MemberListTeamItem extends React.Component { Client.updateActive(this.props.user.id, false, () => { AsyncClient.getProfiles(); + AsyncClient.getChannelExtraInfo(ChannelStore.getCurrentId()); }, (err) => { this.setState({serverError: err.message}); diff --git a/web/react/components/post_body_additional_content.jsx b/web/react/components/post_body_additional_content.jsx index a76c59fb3..c2a928f3b 100644 --- a/web/react/components/post_body_additional_content.jsx +++ b/web/react/components/post_body_additional_content.jsx @@ -16,16 +16,28 @@ export default class PostBodyAdditionalContent extends React.Component { this.getSlackAttachment = this.getSlackAttachment.bind(this); this.getOEmbedProvider = this.getOEmbedProvider.bind(this); + this.generateEmbed = this.generateEmbed.bind(this); + this.toggleEmbedVisibility = this.toggleEmbedVisibility.bind(this); + + this.state = { + embedVisible: true + }; } - shouldComponentUpdate(nextProps) { + shouldComponentUpdate(nextProps, nextState) { if (!Utils.areObjectsEqual(nextProps.post, this.props.post)) { return true; } - + if (nextState.embedVisible !== this.state.embedVisible) { + return true; + } return false; } + toggleEmbedVisibility() { + this.setState({embedVisible: !this.state.embedVisible}); + } + getSlackAttachment() { let attachments = []; if (this.props.post.props && this.props.post.props.attachments) { @@ -51,7 +63,7 @@ export default class PostBodyAdditionalContent extends React.Component { return null; } - render() { + generateEmbed() { if (this.props.post.type === 'slack_attachment') { return this.getSlackAttachment(); } @@ -98,6 +110,28 @@ export default class PostBodyAdditionalContent extends React.Component { return null; } + + render() { + var generateEmbed = this.generateEmbed(); + if (generateEmbed) { + return ( + <div> + <a className='post__embed-visibility' + data-expanded={this.state.embedVisible} + aria-label='Toggle Embed Visibility' + onClick={this.toggleEmbedVisibility} + > + </a> + <div className='post__embed-container' + hidden={!this.state.embedVisible} + > + {generateEmbed} + </div> + </div> + ); + } + return null; + } } PostBodyAdditionalContent.propTypes = { diff --git a/web/react/components/rename_channel_modal.jsx b/web/react/components/rename_channel_modal.jsx index 49ebccdbb..e96ff0db2 100644 --- a/web/react/components/rename_channel_modal.jsx +++ b/web/react/components/rename_channel_modal.jsx @@ -229,7 +229,6 @@ export default class RenameChannelModal extends React.Component { let readOnlyHandleInput = false; if (this.state.channelName === Constants.DEFAULT_CHANNEL) { handleInputLabel += formatMessage(holders.defaultError); - handleInputClass += ' disabled-input'; readOnlyHandleInput = true; } diff --git a/web/react/components/suggestion/at_mention_provider.jsx b/web/react/components/suggestion/at_mention_provider.jsx index c4e1314c9..4dc72f69a 100644 --- a/web/react/components/suggestion/at_mention_provider.jsx +++ b/web/react/components/suggestion/at_mention_provider.jsx @@ -83,7 +83,7 @@ export default class AtMentionProvider { if (captured) { const usernamePrefix = captured[1]; - const users = UserStore.getProfiles(); + const users = UserStore.getActiveOnlyProfiles(true); let filtered = []; for (const id of Object.keys(users)) { |