summaryrefslogtreecommitdiffstats
path: root/web/react
diff options
context:
space:
mode:
Diffstat (limited to 'web/react')
-rw-r--r--web/react/components/member_list_team_item.jsx3
-rw-r--r--web/react/components/post_body_additional_content.jsx40
-rw-r--r--web/react/components/rename_channel_modal.jsx1
-rw-r--r--web/react/components/suggestion/at_mention_provider.jsx2
-rw-r--r--web/react/utils/constants.jsx4
-rw-r--r--web/react/utils/utils.jsx10
6 files changed, 50 insertions, 10 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)) {
diff --git a/web/react/utils/constants.jsx b/web/react/utils/constants.jsx
index 766a86686..0a4944708 100644
--- a/web/react/utils/constants.jsx
+++ b/web/react/utils/constants.jsx
@@ -479,6 +479,10 @@ export default {
EMBED_PREVIEW: {
label: 'embed_preview',
description: 'Show preview snippet of links below message'
+ },
+ EMBED_TOGGLE: {
+ label: 'embed_toggle',
+ description: 'Show toggle for all embed previews'
}
},
OVERLAY_TIME_DELAY: 400,
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 41d93174e..02590bd93 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -156,10 +156,6 @@ export function notifyMe(title, body, channel) {
requestedNotificationPermission = true;
Notification.requestPermission((permission) => {
- if (Notification.permission !== permission) {
- Notification.permission = permission;
- }
-
if (permission === 'granted') {
try {
var notification = new Notification(title, {body, tag: body, icon: '/static/images/icon50x50.png'});
@@ -737,7 +733,7 @@ export function applyTheme(theme) {
changeCss('.post:hover, .modal .more-table tbody>tr:hover td, .settings-modal .settings-table .settings-content .section-min:hover', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1);
changeCss('.date-separator.hovered--before:after, .date-separator.hovered--after:before, .new-separator.hovered--after:before, .new-separator.hovered--before:after', 'background:' + changeOpacity(theme.centerChannelColor, 0.07), 1);
changeCss('.command-name:hover, .mentions-name:hover, .suggestion--selected, .dropdown-menu>li>a:focus, .dropdown-menu>li>a:hover, .bot-indicator', 'background:' + changeOpacity(theme.centerChannelColor, 0.15), 1);
- changeCss('code', 'background:' + changeOpacity(theme.centerChannelColor, 0.1), 1);
+ changeCss('code, .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control', 'background:' + changeOpacity(theme.centerChannelColor, 0.1), 1);
changeCss('@media(min-width: 960px){.post.current--user:hover .post__body ', 'background: none;', 1);
changeCss('.sidebar--right', 'color:' + theme.centerChannelColor, 2);
changeCss('.search-help-popover .search-autocomplete__item:hover, .settings-modal .settings-table .settings-content .appearance-section .theme-elements__body', 'background:' + changeOpacity(theme.centerChannelColor, 0.05), 1);
@@ -1388,6 +1384,10 @@ export function languages() {
{
value: 'es',
name: 'EspaƱol (Beta)'
+ },
+ {
+ value: 'pt',
+ name: 'Portugues (Beta)'
}
]
);