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