* MM-16442: leverage post hasReactions utils function This handles backwards compatibility with servers that do not have post metadata, allowing the client to detect the presence of reactions that in turn might need to be loaded when the component is mounted. * temporary mattermost-redux commit for testing * revert usage of hasReactions, and count directly We still fallback to has_reactions if set, in case we're connected to a server without post metadata. * revert mattermost-redux changes
44 lines
1.6 KiB
JavaScript
44 lines
1.6 KiB
JavaScript
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
|
|
// See LICENSE.txt for license information.
|
|
|
|
import {bindActionCreators} from 'redux';
|
|
import {connect} from 'react-redux';
|
|
|
|
import {selectPost, makeGetReactionsForPost} from 'mattermost-redux/actions/posts';
|
|
import {makeGetChannel} from 'mattermost-redux/selectors/entities/channels';
|
|
import {getPost} from 'mattermost-redux/selectors/entities/posts';
|
|
import {getTheme} from 'mattermost-redux/selectors/entities/preferences';
|
|
|
|
import {loadThreadIfNecessary} from 'app/actions/views/channel';
|
|
|
|
import LongPost from './long_post';
|
|
|
|
function makeMapStateToProps() {
|
|
const getChannel = makeGetChannel();
|
|
const getReactionsForPost = makeGetReactionsForPost();
|
|
|
|
return function mapStateToProps(state, ownProps) {
|
|
const post = getPost(state, ownProps.postId);
|
|
const channel = post ? getChannel(state, {id: post.channel_id}) : null;
|
|
const reactions = getReactionsForPost(state, post.id);
|
|
|
|
return {
|
|
channelName: channel ? channel.display_name : '',
|
|
hasReactions: (reactions && Object.keys(reactions).length > 0) || Boolean(post.has_reactions),
|
|
inThreadView: Boolean(state.entities.posts.selectedPostId),
|
|
fileIds: post ? post.file_ids : false,
|
|
theme: getTheme(state),
|
|
};
|
|
};
|
|
}
|
|
|
|
function mapDispatchToProps(dispatch) {
|
|
return {
|
|
actions: bindActionCreators({
|
|
loadThreadIfNecessary,
|
|
selectPost,
|
|
}, dispatch),
|
|
};
|
|
}
|
|
|
|
export default connect(makeMapStateToProps, mapDispatchToProps)(LongPost);
|