diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index de1725acf..cdd7eec33 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -4,7 +4,7 @@ import api, { getLinks } from 'mastodon/api'; import { Map as ImmutableMap, List as ImmutableList } from 'immutable'; import compareId from 'mastodon/compare_id'; import { usePendingItems as preferPendingItems } from 'mastodon/initial_state'; - +import { fetchContext } from './statuses'; export const TIMELINE_UPDATE = 'TIMELINE_UPDATE'; export const TIMELINE_DELETE = 'TIMELINE_DELETE'; export const TIMELINE_CLEAR = 'TIMELINE_CLEAR'; @@ -103,6 +103,9 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { const next = getLinks(response).refs.find(link => link.rel === 'next'); dispatch(importFetchedStatuses(response.data)); dispatch(expandTimelineSuccess(timelineId, response.data, next ? next.uri : null, response.status === 206, isLoadingRecent, isLoadingMore, isLoadingRecent && preferPendingItems)); + response.data.forEach(status => { + dispatch(fetchContext(status.id)); + }); if (timelineId === 'home') { dispatch(submitMarkers()); diff --git a/app/javascript/mastodon/components/status.js b/app/javascript/mastodon/components/status.js index 1012903e4..1fe115a32 100644 --- a/app/javascript/mastodon/components/status.js +++ b/app/javascript/mastodon/components/status.js @@ -99,7 +99,6 @@ class Status extends ImmutablePureComponent { cachedMediaWidth: PropTypes.number, sonsIds: ImmutablePropTypes.list, - onPreview: PropTypes.func }; // Avoid checking props that are functions (and whose equality will always @@ -116,15 +115,8 @@ class Status extends ImmutablePureComponent { state = { showMedia: defaultMediaVisibility(this.props.status), statusId: undefined, - noStartPD: true }; - _isMounted = false; - componentDidMount () { - this._isMounted = true; - setTimeout(this.loadContext, Math.ceil(Math.random() * 2000 + 500)); - } - static getDerivedStateFromProps(nextProps, prevState) { if (nextProps.status && nextProps.status.get('id') !== prevState.statusId) { return { @@ -136,10 +128,6 @@ class Status extends ImmutablePureComponent { } } - componentWillUnmount() { - this._isMounted = false; - } - handleToggleMediaVisibility = () => { this.setState({ showMedia: !this.state.showMedia }); } @@ -158,19 +146,6 @@ class Status extends ImmutablePureComponent { this.context.router.history.push(`/statuses/${status.getIn(['reblog', 'id'], status.get('id'))}`); } - loadContext = () => { - if(!this._isMounted) { - //console.log('cancel'); - return; - } - const { status } = this.props; - const r_status = status.get('reblog') || status; - if(this.props.showThread && this.state.noStartPD) { - this.setState({noStartPD: false}); - this.props.onPreview(r_status.get('id')); - } - } - handleExpandClick = (e) => { if (this.props.onClick) { this.props.onClick(); diff --git a/app/javascript/mastodon/containers/status_container.js b/app/javascript/mastodon/containers/status_container.js index f7808e247..048e2c6c2 100644 --- a/app/javascript/mastodon/containers/status_container.js +++ b/app/javascript/mastodon/containers/status_container.js @@ -26,7 +26,6 @@ import { hideStatus, revealStatus, toggleStatusCollapse, - fetchContext, } from '../actions/statuses'; import { unmuteAccount, @@ -268,10 +267,6 @@ const mapDispatchToProps = (dispatch, { intl }) => ({ dispatch(unblockDomain(domain)); }, - onPreview (id) { - dispatch(fetchContext(id)); - }, - }); export default injectIntl(connect(makeMapStateToProps, mapDispatchToProps)(Status));