commit: e859d6f259cfe4aa61c2e68a18db95d34d460b81
parent: a0880edc6e95b4fa43039e3bfbe31ea078cef2e8
Author: Naoki Kosaka <n.k@mail.yukimochi.net>
Date: Tue, 6 Jun 2017 02:18:26 +0900
Fix LoadMore in Notifications. (#3590)
Diffstat:
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/app/javascript/mastodon/features/notifications/index.js b/app/javascript/mastodon/features/notifications/index.js
@@ -31,6 +31,7 @@ const mapStateToProps = state => ({
notifications: getNotifications(state),
isLoading: state.getIn(['notifications', 'isLoading'], true),
isUnread: state.getIn(['notifications', 'unread']) > 0,
+ hasMore: !!state.getIn(['notifications', 'next']),
});
class Notifications extends React.PureComponent {
@@ -44,6 +45,7 @@ class Notifications extends React.PureComponent {
isLoading: PropTypes.bool,
isUnread: PropTypes.bool,
multiColumn: PropTypes.bool,
+ hasMore: PropTypes.bool,
};
static defaultProps = {
@@ -56,7 +58,9 @@ class Notifications extends React.PureComponent {
this._oldScrollPosition = scrollHeight - scrollTop;
if (250 > offset && !this.props.isLoading) {
- this.props.dispatch(expandNotifications());
+ if (this.props.hasMore) {
+ this.props.dispatch(expandNotifications());
+ }
} else if (scrollTop < 100) {
this.props.dispatch(scrollTopNotifications(true));
} else {
@@ -113,7 +117,7 @@ class Notifications extends React.PureComponent {
}
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;
let loadMore = '';
@@ -121,7 +125,7 @@ class Notifications extends React.PureComponent {
let unread = '';
let scrollContainer = '';
- if (!isLoading && notifications.size > 0) {
+ if (!isLoading && notifications.size > 0 && hasMore) {
loadMore = <LoadMore onClick={this.handleLoadMore} />;
}