Add back button to RHS threads from pinned posts (#6306)

This commit is contained in:
Joram Wilander
2017-05-03 11:55:06 -04:00
committed by Corey Hulen
parent 6a6c5365d3
commit ec5f40a423
7 changed files with 31 additions and 9 deletions

View File

@@ -168,7 +168,8 @@ export function emitPostFocusRightHandSideFromSearch(post, isMentionSearch) {
type: ActionTypes.RECEIVED_POST_SELECTED,
postId: Utils.getRootId(post),
from_search: SearchStore.getSearchTerm(),
from_flagged_posts: SearchStore.getIsFlaggedPosts()
from_flagged_posts: SearchStore.getIsFlaggedPosts(),
from_pinned_posts: SearchStore.getIsPinnedPosts()
});
AppDispatcher.handleServerAction({

View File

@@ -142,7 +142,7 @@ export function getFlaggedPosts() {
);
}
export function getPinnedPosts(channelId) {
export function getPinnedPosts(channelId = ChannelStore.getCurrentId()) {
Client.getPinnedPosts(channelId,
(data) => {
AppDispatcher.handleServerAction({

View File

@@ -6,7 +6,7 @@ import Constants from 'utils/constants.jsx';
import {Tooltip, OverlayTrigger} from 'react-bootstrap';
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';
@@ -24,15 +24,18 @@ export default class RhsHeaderPost extends React.Component {
this.state = {};
}
handleClose(e) {
e.preventDefault();
GlobalActions.emitCloseRightHandSide();
this.props.shrink();
}
toggleSize(e) {
e.preventDefault();
this.props.toggleSize();
}
handleBack(e) {
e.preventDefault();
@@ -50,8 +53,11 @@ export default class RhsHeaderPost extends React.Component {
});
} else if (this.props.fromFlaggedPosts) {
getFlaggedPosts();
} else if (this.props.fromPinnedPosts) {
getPinnedPosts();
}
}
render() {
let back;
const closeSidebarTooltip = (
@@ -91,6 +97,15 @@ export default class RhsHeaderPost extends React.Component {
/>
</Tooltip>
);
} else if (this.props.fromPinnedPosts) {
backToResultsTooltip = (
<Tooltip id='backToResultsTooltip'>
<FormattedMessage
id='rhs_header.backToPinnedTooltip'
defaultMessage='Back to Pinned Posts'
/>
</Tooltip>
);
}
const expandSidebarTooltip = (
@@ -111,7 +126,7 @@ export default class RhsHeaderPost extends React.Component {
</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 = (
<a
href='#'
@@ -190,6 +205,7 @@ RhsHeaderPost.propTypes = {
isWebrtc: React.PropTypes.bool,
fromSearch: React.PropTypes.string,
fromFlaggedPosts: React.PropTypes.bool,
fromPinnedPosts: React.PropTypes.bool,
toggleSize: React.PropTypes.func,
shrink: React.PropTypes.func
};

View File

@@ -410,6 +410,7 @@ export default class RhsThread extends React.Component {
<RhsHeaderPost
fromFlaggedPosts={this.props.fromFlaggedPosts}
fromSearch={this.props.fromSearch}
fromPinnedPosts={this.props.fromPinnedPosts}
isWebrtc={this.props.isWebrtc}
isMentionSearch={this.props.isMentionSearch}
toggleSize={this.props.toggleSize}
@@ -472,6 +473,7 @@ RhsThread.defaultProps = {
RhsThread.propTypes = {
fromSearch: React.PropTypes.string,
fromFlaggedPosts: React.PropTypes.bool,
fromPinnedPosts: React.PropTypes.bool,
isWebrtc: React.PropTypes.bool,
isMentionSearch: React.PropTypes.bool,
currentUser: React.PropTypes.object.isRequired,

View File

@@ -135,11 +135,12 @@ export default class SidebarRight extends React.Component {
});
}
onSelectedChange(fromSearch, fromFlaggedPosts) {
onSelectedChange(fromSearch, fromFlaggedPosts, fromPinnedPosts) {
this.setState({
postRightVisible: Boolean(PostStore.getSelectedPost()),
fromSearch,
fromFlaggedPosts
fromFlaggedPosts,
fromPinnedPosts
});
}
@@ -230,6 +231,7 @@ export default class SidebarRight extends React.Component {
<RhsThread
fromFlaggedPosts={this.state.fromFlaggedPosts}
fromSearch={this.state.fromSearch}
fromPinnedPosts={this.state.fromPinnedPosts}
isWebrtc={WebrtcStore.isBusy()}
isMentionSearch={this.state.isMentionSearch}
currentUser={this.state.currentUser}

View File

@@ -1875,6 +1875,7 @@
"rhs_comment.permalink": "Permalink",
"rhs_header.backToCallTooltip": "Back to Call",
"rhs_header.backToFlaggedTooltip": "Back to Flagged Posts",
"rhs_header.backToPinnedTooltip": "Back to Pinned Posts",
"rhs_header.backToResultsTooltip": "Back to Search Results",
"rhs_header.closeSidebarTooltip": "Close Sidebar",
"rhs_header.closeTooltip": "Close Sidebar",

View File

@@ -509,8 +509,8 @@ class PostStoreClass extends EventEmitter {
return threadPosts;
}
emitSelectedPostChange(fromSearch, fromFlaggedPosts) {
this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch, fromFlaggedPosts);
emitSelectedPostChange(fromSearch, fromFlaggedPosts, fromPinnedPosts) {
this.emit(SELECTED_POST_CHANGE_EVENT, fromSearch, fromFlaggedPosts, fromPinnedPosts);
}
addSelectedPostChangeListener(callback) {
@@ -717,7 +717,7 @@ PostStore.dispatchToken = AppDispatcher.register((payload) => {
break;
case ActionTypes.RECEIVED_POST_SELECTED:
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;
case ActionTypes.RECEIVED_POST_PINNED:
case ActionTypes.RECEIVED_POST_UNPINNED: