Browse Source

重新实现了获取context

pull/4/head
欧醚 3 years ago
parent
commit
20e0c1f803
3 changed files with 4 additions and 31 deletions
  1. +4
    -1
      app/javascript/mastodon/actions/timelines.js
  2. +0
    -25
      app/javascript/mastodon/components/status.js
  3. +0
    -5
      app/javascript/mastodon/containers/status_container.js

+ 4
- 1
app/javascript/mastodon/actions/timelines.js View File

@ -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());

+ 0
- 25
app/javascript/mastodon/components/status.js View File

@ -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();

+ 0
- 5
app/javascript/mastodon/containers/status_container.js View File

@ -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));

Loading…
Cancel
Save