diff options
author | Joram Wilander <jwawilander@gmail.com> | 2017-06-18 14:42:32 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-06-18 14:42:32 -0400 |
commit | ab67f6e257f6e8f08145a02a7b93550f99641be4 (patch) | |
tree | d33d1c58a3d229f7e37db58bc2c397ac3806c503 /webapp/components/post_view/index.js | |
parent | 0231e95f1c5a8c42ba97875f0d2301815f552974 (diff) | |
download | chat-ab67f6e257f6e8f08145a02a7b93550f99641be4.tar.gz chat-ab67f6e257f6e8f08145a02a7b93550f99641be4.tar.bz2 chat-ab67f6e257f6e8f08145a02a7b93550f99641be4.zip |
PLT-6215 Major post list refactor (#6501)
* 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
Diffstat (limited to 'webapp/components/post_view/index.js')
-rw-r--r-- | webapp/components/post_view/index.js | 44 |
1 files changed, 37 insertions, 7 deletions
diff --git a/webapp/components/post_view/index.js b/webapp/components/post_view/index.js index b42b486ab..ad0270cdd 100644 --- a/webapp/components/post_view/index.js +++ b/webapp/components/post_view/index.js @@ -3,22 +3,52 @@ import {connect} from 'react-redux'; import {bindActionCreators} from 'redux'; -import {viewChannel} from 'mattermost-redux/actions/channels'; -import PostViewCache from './post_view_cache.jsx'; +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'; -function mapStateToProps(state, ownProps) { - return { - ...ownProps +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({ - viewChannel + getPosts, + getPostsBefore, + getPostsAfter, + getPostThread, + increasePostVisibility }, dispatch) }; } -export default connect(mapStateToProps, mapDispatchToProps)(PostViewCache); +export default connect(makeMapStateToProps, mapDispatchToProps)(PostList); |