diff options
Diffstat (limited to 'webapp/components/post_view/post_view_cache.jsx')
-rw-r--r-- | webapp/components/post_view/post_view_cache.jsx | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/webapp/components/post_view/post_view_cache.jsx b/webapp/components/post_view/post_view_cache.jsx deleted file mode 100644 index b8ae39e4a..000000000 --- a/webapp/components/post_view/post_view_cache.jsx +++ /dev/null @@ -1,98 +0,0 @@ -// Copyright (c) 2016-present Mattermost, Inc. All Rights Reserved. -// See License.txt for license information - -import PostViewController from './post_view_controller.jsx'; - -import ChannelStore from 'stores/channel_store.jsx'; -import UserStore from 'stores/user_store.jsx'; - -import PropTypes from 'prop-types'; - -import React from 'react'; - -const MAXIMUM_CACHED_VIEWS = 5; - -export default class PostViewCache extends React.Component { - static propTypes = { - actions: PropTypes.shape({ - viewChannel: PropTypes.func.isRequired - }).isRequired - } - - constructor(props) { - super(props); - - this.onChannelChange = this.onChannelChange.bind(this); - - const currentChannelId = ChannelStore.getCurrentId(); - const channel = ChannelStore.getCurrent(); - - this.state = { - currentChannelId, - channels: channel ? [channel] : [] - }; - } - - componentDidMount() { - ChannelStore.addChangeListener(this.onChannelChange); - } - - componentWillUnmount() { - if (UserStore.getCurrentUser()) { - this.props.actions.viewChannel('', this.state.currentChannelId || ''); - } - ChannelStore.removeChangeListener(this.onChannelChange); - } - - onChannelChange() { - const channels = Object.assign([], this.state.channels); - const currentChannel = ChannelStore.getCurrent(); - - if (!currentChannel) { - return; - } - - // make sure current channel really changed - if (currentChannel.id === this.state.currentChannelId) { - return; - } - - if (channels.length > MAXIMUM_CACHED_VIEWS) { - channels.shift(); - } - - const index = channels.map((c) => c.id).indexOf(currentChannel.id); - if (index !== -1) { - channels.splice(index, 1); - } - - channels.push(currentChannel); - - this.setState({ - currentChannelId: currentChannel.id, - channels - }); - } - - render() { - const channels = this.state.channels; - const currentChannelId = this.state.currentChannelId; - - const postViews = []; - for (let i = 0; i < channels.length; i++) { - postViews.push( - <PostViewController - key={'postviewcontroller_' + channels[i].id} - channel={channels[i]} - active={channels[i].id === currentChannelId} - /> - ); - } - - return ( - <div id='post-list'> - {postViews} - </div> - ); - } -} |