diff options
Diffstat (limited to 'webapp/components')
-rw-r--r-- | webapp/components/common/comment_icon.jsx | 16 | ||||
-rw-r--r-- | webapp/components/create_comment.jsx | 6 | ||||
-rw-r--r-- | webapp/components/create_post.jsx | 10 | ||||
-rw-r--r-- | webapp/components/navbar.jsx | 13 | ||||
-rw-r--r-- | webapp/components/post_view/components/post_info.jsx | 2 | ||||
-rw-r--r-- | webapp/components/quick_switch_modal/index.js | 3 | ||||
-rw-r--r-- | webapp/components/quick_switch_modal/quick_switch_modal.jsx | 33 | ||||
-rw-r--r-- | webapp/components/reset_status_modal/reset_status_modal.jsx | 10 | ||||
-rw-r--r-- | webapp/components/suggestion/channel_mention_provider.jsx | 12 | ||||
-rw-r--r-- | webapp/components/suggestion/switch_channel_provider.jsx | 4 |
10 files changed, 55 insertions, 54 deletions
diff --git a/webapp/components/common/comment_icon.jsx b/webapp/components/common/comment_icon.jsx index 4505d51bc..e3781a4be 100644 --- a/webapp/components/common/comment_icon.jsx +++ b/webapp/components/common/comment_icon.jsx @@ -21,16 +21,18 @@ export default function CommentIcon(props) { iconStyle = iconStyle + ' ' + props.searchStyle; } - let commentIconId = props.channelId + props.idPrefix; + let selectorId = props.idPrefix; if (props.idCount > -1) { - commentIconId += props.idCount; + selectorId += props.idCount; } + const id = Utils.createSafeId(props.idPrefix + '_' + props.id); + return ( <a - id={Utils.createSafeId(commentIconId)} + id={id} href='#' - className={iconStyle} + className={iconStyle + ' ' + selectorId} onClick={props.handleCommentClick} > <span @@ -48,12 +50,12 @@ CommentIcon.propTypes = { handleCommentClick: PropTypes.func.isRequired, searchStyle: PropTypes.string, commentCount: PropTypes.number, - channelId: PropTypes.string + id: PropTypes.string }; CommentIcon.defaultProps = { idCount: -1, searchStyle: '', commentCount: 0, - channelId: '' -};
\ No newline at end of file + id: '' +}; diff --git a/webapp/components/create_comment.jsx b/webapp/components/create_comment.jsx index e2ea84c46..175eb03be 100644 --- a/webapp/components/create_comment.jsx +++ b/webapp/components/create_comment.jsx @@ -142,11 +142,7 @@ export default class CreateComment extends React.Component { handleSubmit(e) { e.preventDefault(); - if (this.state.uploadsInProgress.length > 0) { - return; - } - - if (this.state.submitting) { + if (this.state.uploadsInProgress.length > 0 || this.state.submitting) { return; } diff --git a/webapp/components/create_post.jsx b/webapp/components/create_post.jsx index 09741706c..d2f64a266 100644 --- a/webapp/components/create_post.jsx +++ b/webapp/components/create_post.jsx @@ -115,6 +115,10 @@ export default class CreatePost extends React.Component { e.preventDefault(); } + if (this.state.uploadsInProgress.length > 0 || this.state.submitting) { + return; + } + const post = {}; post.file_ids = []; post.message = this.state.message; @@ -493,7 +497,9 @@ export default class CreatePost extends React.Component { return; } - const lastPostEl = document.getElementById(this.state.channelId + 'commentIcon0'); + const latestNonEphemeralPost = PostStore.getLatestNonEphemeralPost(this.state.channelId); + const latestNonEphemeralPostId = latestNonEphemeralPost == null ? '' : latestNonEphemeralPost.id; + const lastPostEl = document.getElementById(`commentIcon_${this.state.channelId}_${latestNonEphemeralPostId}`); if (!e.ctrlKey && !e.metaKey && !e.altKey && !e.shiftKey && e.keyCode === KeyCodes.UP && this.state.message === '') { e.preventDefault(); @@ -761,7 +767,7 @@ export default class CreatePost extends React.Component { <ConfirmModal title={notifyAllTitle} message={notifyAllMessage} - confirmButton={notifyAllConfirm} + confirmButtonText={notifyAllConfirm} show={this.state.showConfirmModal} onConfirm={this.handleNotifyAllConfirmation} onCancel={this.handleNotifyModalCancel} diff --git a/webapp/components/navbar.jsx b/webapp/components/navbar.jsx index e488145e1..0f8de01a3 100644 --- a/webapp/components/navbar.jsx +++ b/webapp/components/navbar.jsx @@ -45,8 +45,6 @@ import {Link} from 'react-router/es6'; import PropTypes from 'prop-types'; import React from 'react'; -import store from 'stores/redux_store.jsx'; -import {getMyTeams} from 'mattermost-redux/selectors/entities/teams'; export default class Navbar extends React.Component { constructor(props) { @@ -220,14 +218,9 @@ export default class Navbar extends React.Component { } handleQuickSwitchKeyPress(e) { - if (Utils.cmdOrCtrlPressed(e, true) && !e.shiftKey && e.keyCode === Constants.KeyCodes.K) { - e.preventDefault(); - if (e.altKey) { - if (getMyTeams(store.getState()).length <= 1) { - return; - } - this.toggleQuickSwitchModal('team'); - } else { + if (Utils.cmdOrCtrlPressed(e) && !e.shiftKey && e.keyCode === Constants.KeyCodes.K) { + if (!e.altKey) { + e.preventDefault(); this.toggleQuickSwitchModal('channel'); } } diff --git a/webapp/components/post_view/components/post_info.jsx b/webapp/components/post_view/components/post_info.jsx index 20c37ee72..502565752 100644 --- a/webapp/components/post_view/components/post_info.jsx +++ b/webapp/components/post_view/components/post_info.jsx @@ -94,7 +94,7 @@ export default class PostInfo extends React.Component { idCount={idCount} handleCommentClick={this.props.handleCommentClick} commentCount={this.props.commentCount} - channelId={ChannelStore.getCurrentId()} + id={ChannelStore.getCurrentId() + '_' + post.id} /> ); diff --git a/webapp/components/quick_switch_modal/index.js b/webapp/components/quick_switch_modal/index.js index 7826fd8f5..ad5d1dd7c 100644 --- a/webapp/components/quick_switch_modal/index.js +++ b/webapp/components/quick_switch_modal/index.js @@ -2,14 +2,13 @@ // See License.txt for license information. import {connect} from 'react-redux'; -import {getMyTeams} from 'mattermost-redux/selectors/entities/teams'; import QuickSwitchModal from './quick_switch_modal.jsx'; function mapStateToProps(state, ownProps) { return { ...ownProps, - showTeamSwitcher: getMyTeams(state).length > 1 + showTeamSwitcher: false }; } diff --git a/webapp/components/quick_switch_modal/quick_switch_modal.jsx b/webapp/components/quick_switch_modal/quick_switch_modal.jsx index 24eb8fcba..aed274510 100644 --- a/webapp/components/quick_switch_modal/quick_switch_modal.jsx +++ b/webapp/components/quick_switch_modal/quick_switch_modal.jsx @@ -22,7 +22,6 @@ import store from 'stores/redux_store.jsx'; const getState = store.getState; import {getChannel} from 'mattermost-redux/selectors/entities/channels'; -import {getUserByUsername} from 'mattermost-redux/selectors/entities/users'; const CHANNEL_MODE = 'channel'; const TEAM_MODE = 'team'; @@ -141,24 +140,22 @@ export default class QuickSwitchModal extends React.PureComponent { if (this.state.mode === CHANNEL_MODE) { const selectedChannel = selected.channel; if (selectedChannel.type === Constants.DM_CHANNEL) { - const user = getUserByUsername(getState(), selectedChannel.name); - - if (user) { - openDirectChannelToUser( - user.id, - (ch) => { - channel = ch; - this.switchToChannel(channel); - }, - () => { - channel = null; - this.switchToChannel(channel); - } - ); - } - } else { + openDirectChannelToUser( + selectedChannel.id, + (ch) => { + channel = ch; + this.switchToChannel(channel); + }, + () => { + channel = null; + this.switchToChannel(channel); + } + ); + } else if (selectedChannel.type === Constants.GM_CHANNEL) { channel = getChannel(getState(), selectedChannel.id); this.switchToChannel(channel); + } else { + this.switchToChannel(selectedChannel); } } else { browserHistory.push('/' + selected.name); @@ -287,7 +284,7 @@ export default class QuickSwitchModal extends React.PureComponent { help = ( <FormattedMessage id='quick_switch_modal.help_no_team' - defaultMessage='Start typing then use ↑↓ to browse, ↵ to select, and ESC to dismiss.' + defaultMessage='Type to find a channel. Use ↑↓ to browse, ↵ to select, ESC to dismiss.' /> ); } diff --git a/webapp/components/reset_status_modal/reset_status_modal.jsx b/webapp/components/reset_status_modal/reset_status_modal.jsx index 4a04d7561..2e9bb8382 100644 --- a/webapp/components/reset_status_modal/reset_status_modal.jsx +++ b/webapp/components/reset_status_modal/reset_status_modal.jsx @@ -86,7 +86,7 @@ export default class ResetStatusModal extends React.PureComponent { const userStatus = toTitleCase(this.state.currentUserStatus.status || ''); const manualStatusTitle = ( <FormattedMessage - id='modal.manual_status.title' + id='modal.manaul_status.title' defaultMessage='Your status is set to "{status}"' values={{ status: userStatus @@ -96,21 +96,21 @@ export default class ResetStatusModal extends React.PureComponent { const manualStatusMessage = ( <FormattedMessage - id='modal.manual_status.message' + id='modal.manaul_status.message' defaultMessage='Would you like to switch your status to "Online"?' /> ); const manualStatusButton = ( <FormattedMessage - id='modal.manual_status.button' + id='modal.manaul_status.button' defaultMessage='Yes, set my status to "Online"' /> ); const manualStatusCancel = ( <FormattedMessage - id='modal.manual_status.cancel' + id='modal.manaul_status.cancel' defaultMessage='No, keep it as "{status}"' values={{ status: userStatus @@ -120,7 +120,7 @@ export default class ResetStatusModal extends React.PureComponent { const manualStatusCheckbox = ( <FormattedMessage - id='modal.manual_status.ask' + id='modal.manaul_status.ask' defaultMessage='Do not ask me again' /> ); diff --git a/webapp/components/suggestion/channel_mention_provider.jsx b/webapp/components/suggestion/channel_mention_provider.jsx index baca006cb..1d85d8082 100644 --- a/webapp/components/suggestion/channel_mention_provider.jsx +++ b/webapp/components/suggestion/channel_mention_provider.jsx @@ -54,6 +54,7 @@ export default class ChannelMentionProvider extends Provider { constructor() { super(); + this.lastTermWithNoResults = ''; this.lastCompletedWord = ''; } @@ -65,6 +66,11 @@ export default class ChannelMentionProvider extends Provider { return false; } + if (this.lastTermWithNoResults && pretext.startsWith(this.lastTermWithNoResults)) { + // Just give up since we know it won't return any results + return false; + } + if (this.lastCompletedWord && captured[0].startsWith(this.lastCompletedWord)) { // It appears we're still matching a channel handle that we already completed return false; @@ -79,12 +85,14 @@ export default class ChannelMentionProvider extends Provider { autocompleteChannels( prefix, - (data) => { + (channels) => { if (this.shouldCancelDispatch(prefix)) { return; } - const channels = data; + if (channels.length === 0) { + this.lastTermWithNoResults = pretext; + } // Wrap channels in an outer object to avoid overwriting the 'type' property. const wrappedChannels = []; diff --git a/webapp/components/suggestion/switch_channel_provider.jsx b/webapp/components/suggestion/switch_channel_provider.jsx index 98fe21b1a..d4828ead3 100644 --- a/webapp/components/suggestion/switch_channel_provider.jsx +++ b/webapp/components/suggestion/switch_channel_provider.jsx @@ -109,7 +109,7 @@ export default class SwitchChannelProvider extends Provider { // Dispatch suggestions for local data const channels = getChannelsInCurrentTeam(getState()).concat(getGroupChannels(getState())); - const users = Object.assign([], searchProfiles(getState(), channelPrefix, true), true); + const users = Object.assign([], searchProfiles(getState(), channelPrefix, true)); this.formatChannelsAndDispatch(channelPrefix, suggestionId, channels, users, true); // Fetch data from the server and dispatch @@ -141,7 +141,7 @@ export default class SwitchChannelProvider extends Provider { return; } - const users = Object.assign([], searchProfiles(getState(), channelPrefix, true), usersFromServer); + const users = Object.assign([], searchProfiles(getState(), channelPrefix, true), usersFromServer.users); const channels = getChannelsInCurrentTeam(getState()).concat(getGroupChannels(getState())).concat(channelsFromServer); this.formatChannelsAndDispatch(channelPrefix, suggestionId, channels, users); } |