diff --git a/app/javascript/flavours/glitch/actions/timelines.js b/app/javascript/flavours/glitch/actions/timelines.js
index 46645752d7..b0c19222cb 100644
--- a/app/javascript/flavours/glitch/actions/timelines.js
+++ b/app/javascript/flavours/glitch/actions/timelines.js
@@ -101,6 +101,7 @@ export function expandTimelineRequest(timeline) {
return {
type: TIMELINE_EXPAND_REQUEST,
timeline,
+ skipLoading: true,
};
};
@@ -111,6 +112,7 @@ export function expandTimelineSuccess(timeline, statuses, next, partial) {
statuses,
next,
partial,
+ skipLoading: true,
};
};
@@ -119,6 +121,7 @@ export function expandTimelineFail(timeline, error) {
type: TIMELINE_EXPAND_FAIL,
timeline,
error,
+ skipLoading: true,
};
};
diff --git a/app/javascript/flavours/glitch/components/scrollable_list.js b/app/javascript/flavours/glitch/components/scrollable_list.js
index 3ee710dc94..3a6893b017 100644
--- a/app/javascript/flavours/glitch/components/scrollable_list.js
+++ b/app/javascript/flavours/glitch/components/scrollable_list.js
@@ -8,6 +8,7 @@ import { throttle } from 'lodash';
import { List as ImmutableList } from 'immutable';
import classNames from 'classnames';
import { attachFullscreenListener, detachFullscreenListener, isFullscreen } from 'flavours/glitch/util/fullscreen';
+import LoadingIndicator from './loading_indicator';
export default class ScrollableList extends PureComponent {
@@ -23,6 +24,7 @@ export default class ScrollableList extends PureComponent {
trackScroll: PropTypes.bool,
shouldUpdateScroll: PropTypes.func,
isLoading: PropTypes.bool,
+ showLoading: PropTypes.bool,
hasMore: PropTypes.bool,
prepend: PropTypes.node,
emptyMessage: PropTypes.node,
@@ -131,12 +133,14 @@ export default class ScrollableList extends PureComponent {
getFirstChildKey (props) {
const { children } = props;
- let firstChild = children;
+ let firstChild = children;
+
if (children instanceof ImmutableList) {
firstChild = children.get(0);
} else if (Array.isArray(children)) {
firstChild = children[0];
}
+
return firstChild && firstChild.key;
}
@@ -144,7 +148,7 @@ export default class ScrollableList extends PureComponent {
this.node = c;
}
- handleLoadMore = (e) => {
+ handleLoadMore = e => {
e.preventDefault();
this.props.onLoadMore();
}
@@ -155,14 +159,26 @@ export default class ScrollableList extends PureComponent {
}
render () {
- const { children, scrollKey, trackScroll, shouldUpdateScroll, isLoading, hasMore, prepend, emptyMessage, onLoadMore } = this.props;
+ const { children, scrollKey, trackScroll, shouldUpdateScroll, showLoading, isLoading, hasMore, prepend, emptyMessage, onLoadMore } = this.props;
const { fullscreen } = this.state;
const childrenCount = React.Children.count(children);
const loadMore = (hasMore && childrenCount > 0 && onLoadMore) ?