mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
Add back button to RHS threads from pinned posts (#6306)
This commit is contained in:
committed by
Corey Hulen
parent
6a6c5365d3
commit
ec5f40a423
@@ -168,7 +168,8 @@ export function emitPostFocusRightHandSideFromSearch(post, isMentionSearch) {
|
|||||||
type: ActionTypes.RECEIVED_POST_SELECTED,
|
type: ActionTypes.RECEIVED_POST_SELECTED,
|
||||||
postId: Utils.getRootId(post),
|
postId: Utils.getRootId(post),
|
||||||
from_search: SearchStore.getSearchTerm(),
|
from_search: SearchStore.getSearchTerm(),
|
||||||
from_flagged_posts: SearchStore.getIsFlaggedPosts()
|
from_flagged_posts: SearchStore.getIsFlaggedPosts(),
|
||||||
|
from_pinned_posts: SearchStore.getIsPinnedPosts()
|
||||||
});
|
});
|
||||||
|
|
||||||
AppDispatcher.handleServerAction({
|
AppDispatcher.handleServerAction({
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ export function getFlaggedPosts() {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getPinnedPosts(channelId) {
|
export function getPinnedPosts(channelId = ChannelStore.getCurrentId()) {
|
||||||
Client.getPinnedPosts(channelId,
|
Client.getPinnedPosts(channelId,
|
||||||
(data) => {
|
(data) => {
|
||||||
AppDispatcher.handleServerAction({
|
AppDispatcher.handleServerAction({
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ import Constants from 'utils/constants.jsx';
|
|||||||
import {Tooltip, OverlayTrigger} from 'react-bootstrap';
|
import {Tooltip, OverlayTrigger} from 'react-bootstrap';
|
||||||
|
|
||||||
import * as GlobalActions from 'actions/global_actions.jsx';
|
import * as GlobalActions from 'actions/global_actions.jsx';
|
||||||
import {getFlaggedPosts} from 'actions/post_actions.jsx';
|
import {getFlaggedPosts, getPinnedPosts} from 'actions/post_actions.jsx';
|
||||||
|
|
||||||
import {FormattedMessage} from 'react-intl';
|
import {FormattedMessage} from 'react-intl';
|
||||||
|
|
||||||
@@ -24,15 +24,18 @@ export default class RhsHeaderPost extends React.Component {
|
|||||||
|
|
||||||
this.state = {};
|
this.state = {};
|
||||||
}
|
}
|
||||||
|
|
||||||
handleClose(e) {
|
handleClose(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
GlobalActions.emitCloseRightHandSide();
|
GlobalActions.emitCloseRightHandSide();
|
||||||
this.props.shrink();
|
this.props.shrink();
|
||||||
}
|
}
|
||||||
|
|
||||||
toggleSize(e) {
|
toggleSize(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
this.props.toggleSize();
|
this.props.toggleSize();
|
||||||
}
|
}
|
||||||
|
|
||||||
handleBack(e) {
|
handleBack(e) {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
|
|
||||||
@@ -50,8 +53,11 @@ export default class RhsHeaderPost extends React.Component {
|
|||||||
});
|
});
|
||||||
} else if (this.props.fromFlaggedPosts) {
|
} else if (this.props.fromFlaggedPosts) {
|
||||||
getFlaggedPosts();
|
getFlaggedPosts();
|
||||||
|
} else if (this.props.fromPinnedPosts) {
|
||||||
|
getPinnedPosts();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
let back;
|
let back;
|
||||||
const closeSidebarTooltip = (
|
const closeSidebarTooltip = (
|
||||||
@@ -91,6 +97,15 @@ export default class RhsHeaderPost extends React.Component {
|
|||||||
/>
|
/>
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
|
} else if (this.props.fromPinnedPosts) {
|
||||||
|
backToResultsTooltip = (
|
||||||
|
<Tooltip id='backToResultsTooltip'>
|
||||||
|
<FormattedMessage
|
||||||
|
id='rhs_header.backToPinnedTooltip'
|
||||||
|
defaultMessage='Back to Pinned Posts'
|
||||||
|
/>
|
||||||
|
</Tooltip>
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
const expandSidebarTooltip = (
|
const expandSidebarTooltip = (
|
||||||
@@ -111,7 +126,7 @@ export default class RhsHeaderPost extends React.Component {
|
|||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
|
|
||||||
if (this.props.fromSearch || this.props.fromFlaggedPosts || this.props.isWebrtc) {
|
if (this.props.fromSearch || this.props.fromFlaggedPosts || this.props.isWebrtc || this.props.fromPinnedPosts) {
|
||||||
back = (
|
back = (
|
||||||
<a
|
<a
|
||||||
href='#'
|
href='#'
|
||||||
@@ -190,6 +205,7 @@ RhsHeaderPost.propTypes = {
|
|||||||
isWebrtc: React.PropTypes.bool,
|
isWebrtc: React.PropTypes.bool,
|
||||||
fromSearch: React.PropTypes.string,
|
fromSearch: React.PropTypes.string,
|
||||||
fromFlaggedPosts: React.PropTypes.bool,
|
fromFlaggedPosts: React.PropTypes.bool,
|
||||||
|
fromPinnedPosts: React.PropTypes.bool,
|
||||||
toggleSize: React.PropTypes.func,
|
toggleSize: React.PropTypes.func,
|
||||||
shrink: React.PropTypes.func
|
shrink: React.PropTypes.func
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -410,6 +410,7 @@ export default class RhsThread extends React.Component {
|
|||||||
<RhsHeaderPost
|
<RhsHeaderPost
|
||||||
fromFlaggedPosts={this.props.fromFlaggedPosts}
|
fromFlaggedPosts={this.props.fromFlaggedPosts}
|
||||||
fromSearch={this.props.fromSearch}
|
fromSearch={this.props.fromSearch}
|
||||||
|
fromPinnedPosts={this.props.fromPinnedPosts}
|
||||||
isWebrtc={this.props.isWebrtc}
|
isWebrtc={this.props.isWebrtc}
|
||||||
isMentionSearch={this.props.isMentionSearch}
|
isMentionSearch={this.props.isMentionSearch}
|
||||||
toggleSize={this.props.toggleSize}
|
toggleSize={this.props.toggleSize}
|
||||||
@@ -472,6 +473,7 @@ RhsThread.defaultProps = {
|
|||||||
RhsThread.propTypes = {
|
RhsThread.propTypes = {
|
||||||
fromSearch: React.PropTypes.string,
|
fromSearch: React.PropTypes.string,
|
||||||
fromFlaggedPosts: React.PropTypes.bool,
|
fromFlaggedPosts: React.PropTypes.bool,
|
||||||
|
fromPinnedPosts: React.PropTypes.bool,
|
||||||
isWebrtc: React.PropTypes.bool,
|
isWebrtc: React.PropTypes.bool,
|
||||||
isMentionSearch: React.PropTypes.bool,
|
isMentionSearch: React.PropTypes.bool,
|
||||||
currentUser: React.PropTypes.object.isRequired,
|
currentUser: React.PropTypes.object.isRequired,
|
||||||
|
|||||||
@@ -135,11 +135,12 @@ export default class SidebarRight extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
onSelectedChange(fromSearch, fromFlaggedPosts) {
|
onSelectedChange(fromSearch, fromFlaggedPosts, fromPinnedPosts) {
|
||||||
this.setState({
|
this.setState({
|
||||||
postRightVisible: Boolean(PostStore.getSelectedPost()),
|
postRightVisible: Boolean(PostStore.getSelectedPost()),
|
||||||
fromSearch,
|
fromSearch,
|
||||||
fromFlaggedPosts
|
fromFlaggedPosts,
|
||||||
|
fromPinnedPosts
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -230,6 +231,7 @@ export default class SidebarRight extends React.Component {
|
|||||||
<RhsThread
|
<RhsThread
|
||||||
fromFlaggedPosts={this.state.fromFlaggedPosts}
|
fromFlaggedPosts={this.state.fromFlaggedPosts}
|
||||||
fromSearch={this.state.fromSearch}
|
fromSearch={this.state.fromSearch}
|
||||||
|
fromPinnedPosts={this.state.fromPinnedPosts}
|
||||||
isWebrtc={WebrtcStore.isBusy()}
|
isWebrtc={WebrtcStore.isBusy()}
|
||||||
isMentionSearch={this.state.isMentionSearch}
|
isMentionSearch={this.state.isMentionSearch}
|
||||||
currentUser={this.state.currentUser}
|
currentUser={this.state.currentUser}
|
||||||
|
|||||||
@@ -1875,6 +1875,7 @@
|
|||||||
"rhs_comment.permalink": "Permalink",
|
"rhs_comment.permalink": "Permalink",
|
||||||
"rhs_header.backToCallTooltip": "Back to Call",
|
"rhs_header.backToCallTooltip": "Back to Call",
|
||||||
"rhs_header.backToFlaggedTooltip": "Back to Flagged Posts",
|
"rhs_header.backToFlaggedTooltip": "Back to Flagged Posts",
|
||||||
|
"rhs_header.backToPinnedTooltip": "Back to Pinned Posts",
|
||||||
"rhs_header.backToResultsTooltip": "Back to Search Results",
|
"rhs_header.backToResultsTooltip": "Back to Search Results",
|
||||||
"rhs_header.closeSidebarTooltip": "Close Sidebar",
|
"rhs_header.closeSidebarTooltip": "Close Sidebar",
|
||||||
"rhs_header.closeTooltip": "Close Sidebar",
|
"rhs_header.closeTooltip": "Close Sidebar",
|
||||||
|
|||||||
@@ -509,8 +509,8 @@ class PostStoreClass extends EventEmitter {
|
|||||||
return threadPosts;
|
return threadPosts;
|
||||||
}
|
}
|
||||||
|
|
||||||
emitSelectedPostChange(fromSearch, fromFlaggedPosts) {
|
emitSelectedPostChange(fromSearch, fromFlaggedPosts, fromPinnedPosts) {
|
||||||
this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch, fromFlaggedPosts);
|
this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch, fromFlaggedPosts, fromPinnedPosts);
|
||||||
}
|
}
|
||||||
|
|
||||||
addSelectedPostChangeListener(callback) {
|
addSelectedPostChangeListener(callback) {
|
||||||
@@ -717,7 +717,7 @@ PostStore.dispatchToken = AppDispatcher.register((payload) => {
|
|||||||
break;
|
break;
|
||||||
case ActionTypes.RECEIVED_POST_SELECTED:
|
case ActionTypes.RECEIVED_POST_SELECTED:
|
||||||
PostStore.storeSelectedPostId(action.postId);
|
PostStore.storeSelectedPostId(action.postId);
|
||||||
PostStore.emitSelectedPostChange(action.from_search, action.from_flagged_posts);
|
PostStore.emitSelectedPostChange(action.from_search, action.from_flagged_posts, action.from_pinned_posts);
|
||||||
break;
|
break;
|
||||||
case ActionTypes.RECEIVED_POST_PINNED:
|
case ActionTypes.RECEIVED_POST_PINNED:
|
||||||
case ActionTypes.RECEIVED_POST_UNPINNED:
|
case ActionTypes.RECEIVED_POST_UNPINNED:
|
||||||
|
|||||||
Reference in New Issue
Block a user