@ -3,7 +3,7 @@ import { connect } from 'react-redux';
import ImmutablePropTypes from 'react-immutable-proptypes' ;
import PropTypes from 'prop-types' ;
import { fetchAccount } from 'flavours/glitch/actions/accounts' ;
import { refreshAccountTimeline , expandAccountTimeline } from 'flavours/glitch/actions/timelines' ;
import { refreshAccountTimeline , refreshAccountFeaturedTimeline, expandAccountTimeline } from 'flavours/glitch/actions/timelines' ;
import StatusList from '../../components/status_list' ;
import LoadingIndicator from '../../components/loading_indicator' ;
import Column from '../ui/components/column' ;
@ -17,6 +17,7 @@ const mapStateToProps = (state, { params: { accountId }, withReplies = false })
return {
statusIds : state . getIn ( [ 'timelines' , ` account: ${ path } ` , 'items' ] , ImmutableList ( ) ) ,
featuredStatusIds : withReplies ? ImmutableList ( ) : state . getIn ( [ 'timelines' , ` account: ${ accountId } :pinned ` , 'items' ] , ImmutableList ( ) ) ,
isLoading : state . getIn ( [ 'timelines' , ` account: ${ path } ` , 'isLoading' ] ) ,
hasMore : ! ! state . getIn ( [ 'timelines' , ` account: ${ path } ` , 'next' ] ) ,
} ;
@ -29,19 +30,24 @@ export default class AccountTimeline extends ImmutablePureComponent {
params : PropTypes . object . isRequired ,
dispatch : PropTypes . func . isRequired ,
statusIds : ImmutablePropTypes . list ,
featuredStatusIds : ImmutablePropTypes . list ,
isLoading : PropTypes . bool ,
hasMore : PropTypes . bool ,
withReplies : PropTypes . bool ,
} ;
componentWillMount ( ) {
this . props . dispatch ( fetchAccount ( this . props . params . accountId ) ) ;
this . props . dispatch ( refreshAccountTimeline ( this . props . params . accountId , this . props . withReplies ) ) ;
const { params : { accountId } , withReplies } = this . props ;
this . props . dispatch ( fetchAccount ( accountId ) ) ;
this . props . dispatch ( refreshAccountFeaturedTimeline ( accountId ) ) ;
this . props . dispatch ( refreshAccountTimeline ( accountId , withReplies ) ) ;
}
componentWillReceiveProps ( nextProps ) {
if ( ( nextProps . params . accountId !== this . props . params . accountId && nextProps . params . accountId ) || nextProps . withReplies !== this . props . withReplies ) {
this . props . dispatch ( fetchAccount ( nextProps . params . accountId ) ) ;
this . props . dispatch ( refreshAccountFeaturedTimeline ( nextProps . params . accountId ) ) ;
this . props . dispatch ( refreshAccountTimeline ( nextProps . params . accountId , nextProps . params . withReplies ) ) ;
}
}
@ -53,7 +59,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
}
render ( ) {
const { statusIds , isLoading, hasMore } = this . props ;
const { statusIds , featuredStatusIds, isLoading, hasMore } = this . props ;
if ( ! statusIds && isLoading ) {
return (
@ -71,6 +77,7 @@ export default class AccountTimeline extends ImmutablePureComponent {
prepend = { < HeaderContainer accountId = { this . props . params . accountId } / > }
scrollKey = 'account_timeline'
statusIds = { statusIds }
featuredStatusIds = { featuredStatusIds }
isLoading = { isLoading }
hasMore = { hasMore }
onScrollToBottom = { this . handleScrollToBottom }