Fix LoadMore in Notifications. (#3590)

This commit is contained in:
Naoki Kosaka 2017-06-06 02:18:26 +09:00 committed by Eugen Rochko
parent a0880edc6e
commit e859d6f259

View file

@ -31,6 +31,7 @@ const mapStateToProps = state => ({
notifications: getNotifications(state), notifications: getNotifications(state),
isLoading: state.getIn(['notifications', 'isLoading'], true), isLoading: state.getIn(['notifications', 'isLoading'], true),
isUnread: state.getIn(['notifications', 'unread']) > 0, isUnread: state.getIn(['notifications', 'unread']) > 0,
hasMore: !!state.getIn(['notifications', 'next']),
}); });
class Notifications extends React.PureComponent { class Notifications extends React.PureComponent {
@ -44,6 +45,7 @@ class Notifications extends React.PureComponent {
isLoading: PropTypes.bool, isLoading: PropTypes.bool,
isUnread: PropTypes.bool, isUnread: PropTypes.bool,
multiColumn: PropTypes.bool, multiColumn: PropTypes.bool,
hasMore: PropTypes.bool,
}; };
static defaultProps = { static defaultProps = {
@ -56,7 +58,9 @@ class Notifications extends React.PureComponent {
this._oldScrollPosition = scrollHeight - scrollTop; this._oldScrollPosition = scrollHeight - scrollTop;
if (250 > offset && !this.props.isLoading) { if (250 > offset && !this.props.isLoading) {
this.props.dispatch(expandNotifications()); if (this.props.hasMore) {
this.props.dispatch(expandNotifications());
}
} else if (scrollTop < 100) { } else if (scrollTop < 100) {
this.props.dispatch(scrollTopNotifications(true)); this.props.dispatch(scrollTopNotifications(true));
} else { } else {
@ -113,7 +117,7 @@ class Notifications extends React.PureComponent {
} }
render () { render () {
const { intl, notifications, shouldUpdateScroll, isLoading, isUnread, columnId, multiColumn } = this.props; const { intl, notifications, shouldUpdateScroll, isLoading, isUnread, columnId, multiColumn, hasMore } = this.props;
const pinned = !!columnId; const pinned = !!columnId;
let loadMore = ''; let loadMore = '';
@ -121,7 +125,7 @@ class Notifications extends React.PureComponent {
let unread = ''; let unread = '';
let scrollContainer = ''; let scrollContainer = '';
if (!isLoading && notifications.size > 0) { if (!isLoading && notifications.size > 0 && hasMore) {
loadMore = <LoadMore onClick={this.handleLoadMore} />; loadMore = <LoadMore onClick={this.handleLoadMore} />;
} }