From 493722b8f20178cadce5a2af30680481394040dc Mon Sep 17 00:00:00 2001 From: JoramWilander Date: Thu, 25 Feb 2016 12:59:24 -0500 Subject: Move post view container user store listener into center panel and pass profiles into post focus view --- web/react/components/center_panel.jsx | 9 +++++---- web/react/components/post_focus_view.jsx | 2 ++ web/react/components/posts_view_container.jsx | 16 ++++++---------- 3 files changed, 13 insertions(+), 14 deletions(-) (limited to 'web') diff --git a/web/react/components/center_panel.jsx b/web/react/components/center_panel.jsx index 97c615768..2422588cf 100644 --- a/web/react/components/center_panel.jsx +++ b/web/react/components/center_panel.jsx @@ -33,7 +33,8 @@ export default class CenterPanel extends React.Component { this.state = { showTutorialScreens: tutorialStep === TutorialSteps.INTRO_SCREENS, showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS, - user: UserStore.getCurrentUser() + user: UserStore.getCurrentUser(), + profiles: JSON.parse(JSON.stringify(UserStore.getProfiles())) }; } componentDidMount() { @@ -54,7 +55,7 @@ export default class CenterPanel extends React.Component { this.setState({showPostFocus: ChannelStore.getPostMode() === ChannelStore.POST_MODE_FOCUS}); } onUserChange() { - this.setState({user: UserStore.getCurrentUser()}); + this.setState({user: UserStore.getCurrentUser(), profiles: JSON.parse(JSON.stringify(UserStore.getProfiles()))}); } render() { const channel = ChannelStore.getCurrent(); @@ -65,7 +66,7 @@ export default class CenterPanel extends React.Component { postsContainer = ; createPost = null; } else if (this.state.showPostFocus) { - postsContainer = ; + postsContainer = ; handleClick = function clickHandler(e) { e.preventDefault(); @@ -87,7 +88,7 @@ export default class CenterPanel extends React.Component { ); } else { - postsContainer = ; + postsContainer = ; createPost = (
); @@ -114,4 +115,5 @@ PostFocusView.defaultProps = { }; PostFocusView.propTypes = { + profiles: React.PropTypes.object }; diff --git a/web/react/components/posts_view_container.jsx b/web/react/components/posts_view_container.jsx index 1b14e8681..92d658b55 100644 --- a/web/react/components/posts_view_container.jsx +++ b/web/react/components/posts_view_container.jsx @@ -6,7 +6,6 @@ import LoadingScreen from './loading_screen.jsx'; import ChannelStore from '../stores/channel_store.jsx'; import PostStore from '../stores/post_store.jsx'; -import UserStore from '../stores/user_store.jsx'; import * as Utils from '../utils/utils.jsx'; import * as EventHelpers from '../dispatcher/event_helpers.jsx'; @@ -25,13 +24,11 @@ export default class PostsViewContainer extends React.Component { this.handlePostsViewScroll = this.handlePostsViewScroll.bind(this); this.loadMorePostsTop = this.loadMorePostsTop.bind(this); this.handlePostsViewJumpRequest = this.handlePostsViewJumpRequest.bind(this); - this.onUserChange = this.onUserChange.bind(this); const currentChannelId = ChannelStore.getCurrentId(); const state = { scrollType: PostsView.SCROLL_TYPE_BOTTOM, - scrollPost: null, - profiles: JSON.parse(JSON.stringify(UserStore.getProfiles())) + scrollPost: null }; if (currentChannelId) { Object.assign(state, { @@ -57,14 +54,12 @@ export default class PostsViewContainer extends React.Component { ChannelStore.addLeaveListener(this.onChannelLeave); PostStore.addChangeListener(this.onPostsChange); PostStore.addPostsViewJumpListener(this.handlePostsViewJumpRequest); - UserStore.addChangeListener(this.onUserChange); } componentWillUnmount() { ChannelStore.removeChangeListener(this.onChannelChange); ChannelStore.removeLeaveListener(this.onChannelLeave); PostStore.removeChangeListener(this.onPostsChange); PostStore.removePostsViewJumpListener(this.handlePostsViewJumpRequest); - UserStore.removeChangeListener(this.onUserChange); } handlePostsViewJumpRequest(type, post) { switch (type) { @@ -140,9 +135,6 @@ export default class PostsViewContainer extends React.Component { atTop[this.state.currentChannelIndex] = PostStore.getVisibilityAtTop(currentChannelId); this.setState({postLists, atTop}); } - onUserChange() { - this.setState({profiles: JSON.parse(JSON.stringify(UserStore.getProfiles()))}); - } getChannelPosts(id) { return PostStore.getVisiblePosts(id); } @@ -188,7 +180,7 @@ export default class PostsViewContainer extends React.Component { showMoreMessagesBottom={false} introText={channel ? createChannelIntroMessage(channel) : null} messageSeparatorTime={this.state.currentLastViewed} - profiles={this.state.profiles} + profiles={this.props.profiles} /> ); if (!postLists[i] && isActive) { @@ -208,3 +200,7 @@ export default class PostsViewContainer extends React.Component { ); } } + +PostsViewContainer.propTypes = { + profiles: React.PropTypes.object +}; -- cgit v1.2.3-1-g7c22