display loading screen when changing team (#5325)
* display loading screen when changing team * fix lint error
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
829f3cce95
Коммит
11e0a7daa2
@@ -70,7 +70,9 @@ export default class ChannelView extends React.Component {
|
|||||||
<ChannelHeader
|
<ChannelHeader
|
||||||
channelId={this.state.channelId}
|
channelId={this.state.channelId}
|
||||||
/>
|
/>
|
||||||
<PostViewCache/>
|
<PostViewCache
|
||||||
|
channelId={this.state.channelId}
|
||||||
|
/>
|
||||||
<div
|
<div
|
||||||
className='post-create__container'
|
className='post-create__container'
|
||||||
id='post-create'
|
id='post-create'
|
||||||
|
|||||||
@@ -2,6 +2,7 @@
|
|||||||
// See License.txt for license information
|
// See License.txt for license information
|
||||||
|
|
||||||
import PostViewController from './post_view_controller.jsx';
|
import PostViewController from './post_view_controller.jsx';
|
||||||
|
import LoadingScreen from 'components/loading_screen.jsx';
|
||||||
|
|
||||||
import ChannelStore from 'stores/channel_store.jsx';
|
import ChannelStore from 'stores/channel_store.jsx';
|
||||||
import UserStore from 'stores/user_store.jsx';
|
import UserStore from 'stores/user_store.jsx';
|
||||||
@@ -67,25 +68,45 @@ export default class PostViewCache extends React.Component {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
shouldComponentUpdate(nextProps) {
|
||||||
|
return Boolean(nextProps.channelId);
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const channels = this.state.channels;
|
const channels = this.state.channels;
|
||||||
const currentChannelId = this.state.currentChannelId;
|
const currentChannelId = this.state.currentChannelId;
|
||||||
|
const valid = this.props.channelId === this.state.currentChannelId;
|
||||||
const postViews = [];
|
const postViews = [];
|
||||||
for (let i = 0; i < channels.length; i++) {
|
let content;
|
||||||
postViews.push(
|
|
||||||
<PostViewController
|
if (valid) {
|
||||||
key={'postviewcontroller_' + channels[i].id}
|
for (let i = 0; i < channels.length; i++) {
|
||||||
channel={channels[i]}
|
postViews.push(
|
||||||
active={channels[i].id === currentChannelId}
|
<PostViewController
|
||||||
|
key={'postviewcontroller_' + channels[i].id}
|
||||||
|
channel={channels[i]}
|
||||||
|
active={channels[i].id === currentChannelId}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
content = postViews;
|
||||||
|
} else {
|
||||||
|
content = (
|
||||||
|
<LoadingScreen
|
||||||
|
position='absolute'
|
||||||
|
key='loading'
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div id='post-list'>
|
<div id='post-list'>
|
||||||
{postViews}
|
{content}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
PostViewCache.propTypes = {
|
||||||
|
channelId: React.PropTypes.string.isRequired
|
||||||
|
};
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user