* Major post list refactor * Fix post and thread deletion * Fix preferences not selecting correctly * Fix military time displaying * Fix UP key for editing posts * Fix ESLint error * Various fixes and updates per feedback * Fix for permalink view * Revert to old scrolling method and various fixes * Add floating timestamp, new message indicator, scroll arrows * Update post loading for focus mode and add visibility limit * Fix pinning posts and a react warning * Add loading UI updates from Asaad * Fix refreshing loop * Temporarily bump post visibility limit * Update infinite scrolling * Remove infinite scrolling
55 строки
2.2 KiB
JavaScript
55 строки
2.2 KiB
JavaScript
// Copyright (c) 2017 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import {connect} from 'react-redux';
|
|
import {bindActionCreators} from 'redux';
|
|
|
|
import {makeGetPostsInChannel, makeGetPostsAroundPost} from 'mattermost-redux/selectors/entities/posts';
|
|
import {get} from 'mattermost-redux/selectors/entities/preferences';
|
|
import {getChannel} from 'mattermost-redux/selectors/entities/channels';
|
|
import {getCurrentUserId} from 'mattermost-redux/selectors/entities/users';
|
|
import {getPosts, getPostsBefore, getPostsAfter, getPostThread} from 'mattermost-redux/actions/posts';
|
|
import {increasePostVisibility} from 'actions/post_actions.jsx';
|
|
import {Preferences} from 'utils/constants.jsx';
|
|
|
|
import PostList from './post_list.jsx';
|
|
|
|
function makeMapStateToProps() {
|
|
const getPostsInChannel = makeGetPostsInChannel();
|
|
const getPostsAroundPost = makeGetPostsAroundPost();
|
|
|
|
return function mapStateToProps(state, ownProps) {
|
|
let posts;
|
|
if (ownProps.focusedPostId) {
|
|
posts = getPostsAroundPost(state, ownProps.focusedPostId, ownProps.channelId);
|
|
} else {
|
|
posts = getPostsInChannel(state, ownProps.channelId);
|
|
}
|
|
|
|
return {
|
|
channel: getChannel(state, ownProps.channelId),
|
|
lastViewedAt: state.views.channel.lastChannelViewTime[ownProps.channelId],
|
|
posts,
|
|
postVisibility: state.views.channel.postVisibility[ownProps.channelId],
|
|
loadingPosts: state.views.channel.loadingPosts[ownProps.channelId],
|
|
focusedPostId: ownProps.focusedPostId,
|
|
currentUserId: getCurrentUserId(state),
|
|
fullWidth: get(state, Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_FULL_SCREEN
|
|
};
|
|
};
|
|
}
|
|
|
|
function mapDispatchToProps(dispatch) {
|
|
return {
|
|
actions: bindActionCreators({
|
|
getPosts,
|
|
getPostsBefore,
|
|
getPostsAfter,
|
|
getPostThread,
|
|
increasePostVisibility
|
|
}, dispatch)
|
|
};
|
|
}
|
|
|
|
export default connect(makeMapStateToProps, mapDispatchToProps)(PostList);
|