diff options
Diffstat (limited to 'webapp/components/post_view/post_focus_view_controller.jsx')
-rw-r--r-- | webapp/components/post_view/post_focus_view_controller.jsx | 212 |
1 files changed, 0 insertions, 212 deletions
diff --git a/webapp/components/post_view/post_focus_view_controller.jsx b/webapp/components/post_view/post_focus_view_controller.jsx deleted file mode 100644 index dadc6b80e..000000000 --- a/webapp/components/post_view/post_focus_view_controller.jsx +++ /dev/null @@ -1,212 +0,0 @@ -// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import PostList from './components/post_list.jsx'; -import LoadingScreen from 'components/loading_screen.jsx'; - -import EmojiStore from 'stores/emoji_store.jsx'; -import PostStore from 'stores/post_store.jsx'; -import UserStore from 'stores/user_store.jsx'; -import ChannelStore from 'stores/channel_store.jsx'; -import PreferenceStore from 'stores/preference_store.jsx'; -import WebrtcStore from 'stores/webrtc_store.jsx'; - -import * as Utils from 'utils/utils.jsx'; - -import Constants from 'utils/constants.jsx'; -const Preferences = Constants.Preferences; -const ScrollTypes = Constants.ScrollTypes; - -import React from 'react'; - -export default class PostFocusView extends React.Component { - constructor(props) { - super(props); - - this.onChannelChange = this.onChannelChange.bind(this); - this.onPostsChange = this.onPostsChange.bind(this); - this.onUserChange = this.onUserChange.bind(this); - this.onEmojiChange = this.onEmojiChange.bind(this); - this.onStatusChange = this.onStatusChange.bind(this); - this.onPreferenceChange = this.onPreferenceChange.bind(this); - this.onPostListScroll = this.onPostListScroll.bind(this); - this.onBusy = this.onBusy.bind(this); - - const focusedPostId = PostStore.getFocusedPostId(); - - const channel = ChannelStore.getCurrent(); - const profiles = UserStore.getProfiles(); - - const joinLeaveEnabled = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'join_leave', true); - - let statuses; - if (channel) { - statuses = Object.assign({}, UserStore.getStatuses()); - } - - this.state = { - postList: PostStore.filterPosts(focusedPostId, joinLeaveEnabled), - currentUser: UserStore.getCurrentUser(), - isBusy: WebrtcStore.isBusy(), - profiles, - statuses, - scrollType: ScrollTypes.POST, - currentChannel: ChannelStore.getCurrentId().slice(), - scrollPostId: focusedPostId, - atTop: PostStore.getVisibilityAtTop(focusedPostId), - atBottom: PostStore.getVisibilityAtBottom(focusedPostId), - emojis: EmojiStore.getEmojis(), - displayNameType: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', 'false'), - displayPostsInCenter: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_CENTERED, - compactDisplay: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.MESSAGE_DISPLAY, Preferences.MESSAGE_DISPLAY_DEFAULT) === Preferences.MESSAGE_DISPLAY_COMPACT, - previewsCollapsed: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.COLLAPSE_DISPLAY, 'false'), - useMilitaryTime: PreferenceStore.getBool(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.USE_MILITARY_TIME, false), - flaggedPosts: PreferenceStore.getCategory(Constants.Preferences.CATEGORY_FLAGGED_POST) - }; - } - - componentDidMount() { - ChannelStore.addChangeListener(this.onChannelChange); - PostStore.addChangeListener(this.onPostsChange); - UserStore.addChangeListener(this.onUserChange); - UserStore.addStatusesChangeListener(this.onStatusChange); - EmojiStore.addChangeListener(this.onEmojiChange); - PreferenceStore.addChangeListener(this.onPreferenceChange); - WebrtcStore.addBusyListener(this.onBusy); - } - - componentWillUnmount() { - ChannelStore.removeChangeListener(this.onChannelChange); - PostStore.removeChangeListener(this.onPostsChange); - UserStore.removeChangeListener(this.onUserChange); - UserStore.removeStatusesChangeListener(this.onStatusChange); - EmojiStore.removeChangeListener(this.onEmojiChange); - PreferenceStore.removeChangeListener(this.onPreferenceChange); - WebrtcStore.removeBusyListener(this.onBusy); - } - - onChannelChange() { - const currentChannel = ChannelStore.getCurrentId(); - if (this.state.currentChannel !== currentChannel) { - this.setState({ - currentChannel: currentChannel.slice(), - scrollType: ScrollTypes.POST - }); - } - } - - onPostsChange() { - const focusedPostId = PostStore.getFocusedPostId(); - if (focusedPostId == null) { - return; - } - - const joinLeaveEnabled = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'join_leave', true); - - this.setState({ - scrollPostId: focusedPostId, - postList: PostStore.filterPosts(focusedPostId, joinLeaveEnabled), - atTop: PostStore.getVisibilityAtTop(focusedPostId), - atBottom: PostStore.getVisibilityAtBottom(focusedPostId) - }); - } - - onUserChange() { - this.setState({currentUser: UserStore.getCurrentUser(), profiles: JSON.parse(JSON.stringify(UserStore.getProfiles()))}); - } - - onStatusChange() { - const channel = ChannelStore.getCurrent(); - let statuses; - if (channel) { - statuses = Object.assign({}, UserStore.getStatuses()); - } - - this.setState({statuses}); - } - - onEmojiChange() { - this.setState({ - emojis: EmojiStore.getEmojis() - }); - } - - onPreferenceChange(category) { - // Bit of a hack to force render when this setting is updated - // regardless of change - let previewSuffix = ''; - if (category === Preferences.CATEGORY_DISPLAY_SETTINGS) { - previewSuffix = '_' + Utils.generateId(); - } - - const focusedPostId = PostStore.getFocusedPostId(); - if (focusedPostId == null) { - return; - } - - const joinLeaveEnabled = PreferenceStore.getBool(Constants.Preferences.CATEGORY_ADVANCED_SETTINGS, 'join_leave', true); - - this.setState({ - postList: PostStore.filterPosts(focusedPostId, joinLeaveEnabled), - displayNameType: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, 'name_format', 'false'), - displayPostsInCenter: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.CHANNEL_DISPLAY_MODE, Preferences.CHANNEL_DISPLAY_MODE_DEFAULT) === Preferences.CHANNEL_DISPLAY_MODE_CENTERED, - compactDisplay: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.MESSAGE_DISPLAY, Preferences.MESSAGE_DISPLAY_DEFAULT) === Preferences.MESSAGE_DISPLAY_COMPACT, - previewsCollapsed: PreferenceStore.get(Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.COLLAPSE_DISPLAY, 'false') + previewSuffix, - useMilitaryTime: PreferenceStore.getBool(Constants.Preferences.CATEGORY_DISPLAY_SETTINGS, Preferences.USE_MILITARY_TIME, false), - flaggedPosts: PreferenceStore.getCategory(Constants.Preferences.CATEGORY_FLAGGED_POST) - }); - } - - onPostListScroll() { - this.setState({scrollType: ScrollTypes.FREE}); - } - - onBusy(isBusy) { - this.setState({isBusy}); - } - - render() { - const postsToHighlight = {}; - postsToHighlight[this.state.scrollPostId] = true; - - let content; - if (this.state.postList == null) { - content = ( - <LoadingScreen - position='absolute' - key='loading' - /> - ); - } else { - content = ( - <PostList - postList={this.state.postList} - currentUser={this.state.currentUser} - profiles={this.state.profiles} - scrollType={this.state.scrollType} - scrollPostId={this.state.scrollPostId} - postListScrolled={this.onPostListScroll} - displayNameType={this.state.displayNameType} - displayPostsInCenter={this.state.displayPostsInCenter} - compactDisplay={this.state.compactDisplay} - previewsCollapsed={this.state.previewsCollapsed} - useMilitaryTime={this.state.useMilitaryTime} - showMoreMessagesTop={!this.state.atTop} - showMoreMessagesBottom={!this.state.atBottom} - postsToHighlight={postsToHighlight} - isFocusPost={true} - emojis={this.state.emojis} - flaggedPosts={this.state.flaggedPosts} - statuses={this.state.statuses} - isBusy={this.state.isBusy} - /> - ); - } - - return ( - <div id='post-list'> - {content} - </div> - ); - } -} |