Fixed issue with loading context, comments from Status feature
• Fixed: - issue with loading context, comments from Status feature by loading in feature not child • Added: - check for if ancestor status exists in StatusContainer
This commit is contained in:
parent
5fcc09acad
commit
d6b8948191
@ -173,7 +173,7 @@ class Status extends ImmutablePureComponent {
|
|||||||
// Compensate height changes
|
// Compensate height changes
|
||||||
componentDidUpdate(prevProps, prevState, snapshot) {
|
componentDidUpdate(prevProps, prevState, snapshot) {
|
||||||
// timeline lazy loading comments
|
// timeline lazy loading comments
|
||||||
if (!prevState.loadedComments && this.state.loadedComments && this.props.status && !this.props.isChild) {
|
if (!prevState.loadedComments && this.state.loadedComments && this.props.status && !this.props.isChild && this.props.contextType !== 'feature') {
|
||||||
const commentCount = this.props.status.get('replies_count')
|
const commentCount = this.props.status.get('replies_count')
|
||||||
if (this.props.isComment && !this.props.ancestorStatus) {
|
if (this.props.isComment && !this.props.ancestorStatus) {
|
||||||
this.props.onFetchContext(this.props.status.get('id'))
|
this.props.onFetchContext(this.props.status.get('id'))
|
||||||
|
@ -152,7 +152,7 @@ const makeMapStateToProps = () => {
|
|||||||
ancestorStatus = getStatus(state, {
|
ancestorStatus = getStatus(state, {
|
||||||
id: ancestorStatusId,
|
id: ancestorStatusId,
|
||||||
})
|
})
|
||||||
descendantsIds = getDescendants(state, ancestorStatus, statusId)
|
if (!!ancestorStatus) descendantsIds = getDescendants(state, ancestorStatus, statusId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
import ImmutablePropTypes from 'react-immutable-proptypes'
|
import ImmutablePropTypes from 'react-immutable-proptypes'
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component'
|
import ImmutablePureComponent from 'react-immutable-pure-component'
|
||||||
import { fetchStatus } from '../actions/statuses'
|
import {
|
||||||
|
fetchStatus,
|
||||||
|
fetchComments,
|
||||||
|
fetchContext,
|
||||||
|
} from '../actions/statuses'
|
||||||
import StatusContainer from '../containers/status_container'
|
import StatusContainer from '../containers/status_container'
|
||||||
import ColumnIndicator from '../components/column_indicator'
|
import ColumnIndicator from '../components/column_indicator'
|
||||||
|
|
||||||
@ -14,6 +18,8 @@ const mapStateToProps = (state, props) => {
|
|||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
onFetchStatus: (id) => dispatch(fetchStatus(id)),
|
onFetchStatus: (id) => dispatch(fetchStatus(id)),
|
||||||
|
onFetchContext: (id) => dispatch(fetchContext(id)),
|
||||||
|
onFetchComments: (id) => dispatch(fetchComments(id)),
|
||||||
})
|
})
|
||||||
|
|
||||||
export default
|
export default
|
||||||
@ -21,7 +27,9 @@ export default
|
|||||||
class Status extends ImmutablePureComponent {
|
class Status extends ImmutablePureComponent {
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
onFetchContext: PropTypes.func.isRequired,
|
||||||
onFetchStatus: PropTypes.func.isRequired,
|
onFetchStatus: PropTypes.func.isRequired,
|
||||||
|
onFetchComments: PropTypes.func.isRequired,
|
||||||
params: PropTypes.object,
|
params: PropTypes.object,
|
||||||
status: ImmutablePropTypes.map,
|
status: ImmutablePropTypes.map,
|
||||||
}
|
}
|
||||||
@ -36,6 +44,21 @@ class Status extends ImmutablePureComponent {
|
|||||||
this.props.onFetchStatus(statusId)
|
this.props.onFetchStatus(statusId)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
componentDidUpdate(prevProps) {
|
||||||
|
const { status } = this.props
|
||||||
|
|
||||||
|
if (prevProps.status !== status && !!status) {
|
||||||
|
const isComment = !!status.get('in_reply_to_account_id')
|
||||||
|
const hasComments = status.get('replies_count') > 0
|
||||||
|
|
||||||
|
if (isComment) {
|
||||||
|
this.props.onFetchContext(status.get('id'))
|
||||||
|
} else if (!isComment && hasComments) {
|
||||||
|
this.props.onFetchComments(status.get('id'))
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { status } = this.props
|
const { status } = this.props
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user