[Glitch] Replace onScrollToBottom with onLoadMore

Port b0664a5e6c to glitch-soc
This commit is contained in:
Thibaut Girka 2018-05-27 17:46:48 +02:00 committed by ThibG
parent a81ed7b205
commit 8b98afa781
7 changed files with 17 additions and 18 deletions

View file

@ -17,7 +17,7 @@ export default class ScrollableList extends PureComponent {
static propTypes = { static propTypes = {
scrollKey: PropTypes.string.isRequired, scrollKey: PropTypes.string.isRequired,
onScrollToBottom: PropTypes.func, onLoadMore: PropTypes.func.isRequired,
onScrollToTop: PropTypes.func, onScrollToTop: PropTypes.func,
onScroll: PropTypes.func, onScroll: PropTypes.func,
trackScroll: PropTypes.bool, trackScroll: PropTypes.bool,
@ -44,9 +44,11 @@ export default class ScrollableList extends PureComponent {
const { scrollTop, scrollHeight, clientHeight } = this.node; const { scrollTop, scrollHeight, clientHeight } = this.node;
const offset = scrollHeight - scrollTop - clientHeight; const offset = scrollHeight - scrollTop - clientHeight;
if (400 > offset && this.props.onScrollToBottom && !this.props.isLoading) { if (400 > offset && this.props.onLoadMore && !this.props.isLoading) {
this.props.onScrollToBottom(); this.props.onLoadMore();
} else if (scrollTop < 100 && this.props.onScrollToTop) { }
if (scrollTop < 100 && this.props.onScrollToTop) {
this.props.onScrollToTop(); this.props.onScrollToTop();
} else if (this.props.onScroll) { } else if (this.props.onScroll) {
this.props.onScroll(); this.props.onScroll();
@ -144,7 +146,7 @@ export default class ScrollableList extends PureComponent {
handleLoadMore = (e) => { handleLoadMore = (e) => {
e.preventDefault(); e.preventDefault();
this.props.onScrollToBottom(); this.props.onLoadMore();
} }
render () { render () {

View file

@ -12,7 +12,7 @@ export default class StatusList extends ImmutablePureComponent {
scrollKey: PropTypes.string.isRequired, scrollKey: PropTypes.string.isRequired,
statusIds: ImmutablePropTypes.list.isRequired, statusIds: ImmutablePropTypes.list.isRequired,
featuredStatusIds: ImmutablePropTypes.list, featuredStatusIds: ImmutablePropTypes.list,
onScrollToBottom: PropTypes.func, onLoadMore: PropTypes.func,
onScrollToTop: PropTypes.func, onScrollToTop: PropTypes.func,
onScroll: PropTypes.func, onScroll: PropTypes.func,
trackScroll: PropTypes.bool, trackScroll: PropTypes.bool,

View file

@ -56,7 +56,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
} }
} }
handleScrollToBottom = () => { handleLoadMore = () => {
if (!this.props.isLoading && this.props.hasMore) { if (!this.props.isLoading && this.props.hasMore) {
this.props.dispatch(expandAccountTimeline(this.props.params.accountId, this.props.withReplies)); this.props.dispatch(expandAccountTimeline(this.props.params.accountId, this.props.withReplies));
} }
@ -84,7 +84,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
featuredStatusIds={featuredStatusIds} featuredStatusIds={featuredStatusIds}
isLoading={isLoading} isLoading={isLoading}
hasMore={hasMore} hasMore={hasMore}
onScrollToBottom={this.handleScrollToBottom} onLoadMore={this.handleLoadMore}
/> />
</Column> </Column>
); );

View file

@ -62,7 +62,7 @@ export default class Bookmarks extends ImmutablePureComponent {
this.column = c; this.column = c;
} }
handleScrollToBottom = debounce(() => { handleLoadMore = debounce(() => {
this.props.dispatch(expandBookmarkedStatuses()); this.props.dispatch(expandBookmarkedStatuses());
}, 300, { leading: true }) }, 300, { leading: true })
@ -89,7 +89,7 @@ export default class Bookmarks extends ImmutablePureComponent {
scrollKey={`bookmarked_statuses-${columnId}`} scrollKey={`bookmarked_statuses-${columnId}`}
hasMore={hasMore} hasMore={hasMore}
isLoading={isLoading} isLoading={isLoading}
onScrollToBottom={this.handleScrollToBottom} onLoadMore={this.handleLoadMore}
/> />
</Column> </Column>
); );

View file

@ -62,7 +62,7 @@ export default class Favourites extends ImmutablePureComponent {
this.column = c; this.column = c;
} }
handleScrollToBottom = debounce(() => { handleLoadMore = debounce(() => {
this.props.dispatch(expandFavouritedStatuses()); this.props.dispatch(expandFavouritedStatuses());
}, 300, { leading: true }) }, 300, { leading: true })
@ -89,7 +89,7 @@ export default class Favourites extends ImmutablePureComponent {
scrollKey={`favourited_statuses-${columnId}`} scrollKey={`favourited_statuses-${columnId}`}
hasMore={hasMore} hasMore={hasMore}
isLoading={isLoading} isLoading={isLoading}
onScrollToBottom={this.handleScrollToBottom} onLoadMore={this.handleLoadMore}
/> />
</Column> </Column>
); );

View file

@ -67,7 +67,7 @@ export default class Notifications extends React.PureComponent {
trackScroll: true, trackScroll: true,
}; };
handleScrollToBottom = debounce(() => { handleLoadMore = debounce(() => {
this.props.dispatch(scrollTopNotifications(false)); this.props.dispatch(scrollTopNotifications(false));
this.props.dispatch(expandNotifications()); this.props.dispatch(expandNotifications());
}, 300, { leading: true }); }, 300, { leading: true });
@ -153,7 +153,7 @@ export default class Notifications extends React.PureComponent {
isLoading={isLoading} isLoading={isLoading}
hasMore={hasMore} hasMore={hasMore}
emptyMessage={emptyMessage} emptyMessage={emptyMessage}
onScrollToBottom={this.handleScrollToBottom} onLoadMore={this.handleLoadMore}
onScrollToTop={this.handleScrollToTop} onScrollToTop={this.handleScrollToTop}
onScroll={this.handleScroll} onScroll={this.handleScroll}
shouldUpdateScroll={shouldUpdateScroll} shouldUpdateScroll={shouldUpdateScroll}

View file

@ -60,10 +60,7 @@ const makeMapStateToProps = () => {
const mapDispatchToProps = (dispatch, { timelineId, loadMore }) => ({ const mapDispatchToProps = (dispatch, { timelineId, loadMore }) => ({
onScrollToBottom: debounce(() => { onLoadMore: debounce(loadMore, 300, { leading: true }),
dispatch(scrollTopTimeline(timelineId, false));
loadMore();
}, 300, { leading: true }),
onScrollToTop: debounce(() => { onScrollToTop: debounce(() => {
dispatch(scrollTopTimeline(timelineId, true)); dispatch(scrollTopTimeline(timelineId, true));