@ -63,6 +63,7 @@ const parseTags = (tags = {}, mode) => {
export function expandTimeline ( timelineId , path , params = { } , done = noOp ) {
export function expandTimeline ( timelineId , path , params = { } , done = noOp ) {
return ( dispatch , getState ) => {
return ( dispatch , getState ) => {
const timeline = getState ( ) . getIn ( [ 'timelines' , timelineId ] , ImmutableMap ( ) ) ;
const timeline = getState ( ) . getIn ( [ 'timelines' , timelineId ] , ImmutableMap ( ) ) ;
const isLoadingMore = ! ! params . max_id ;
if ( timeline . get ( 'isLoading' ) ) {
if ( timeline . get ( 'isLoading' ) ) {
done ( ) ;
done ( ) ;
@ -73,15 +74,15 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) {
params . since_id = timeline . getIn ( [ 'items' , 0 ] ) ;
params . since_id = timeline . getIn ( [ 'items' , 0 ] ) ;
}
}
dispatch ( expandTimelineRequest ( timelineId ) ) ;
dispatch ( expandTimelineRequest ( timelineId , isLoadingMore )) ;
api ( getState ) . get ( path , { params } ) . then ( response => {
api ( getState ) . get ( path , { params } ) . then ( response => {
const next = getLinks ( response ) . refs . find ( link => link . rel === 'next' ) ;
const next = getLinks ( response ) . refs . find ( link => link . rel === 'next' ) ;
dispatch ( importFetchedStatuses ( response . data ) ) ;
dispatch ( importFetchedStatuses ( response . data ) ) ;
dispatch ( expandTimelineSuccess ( timelineId , response . data , next ? next . uri : null , response . code === 206 ) ) ;
dispatch ( expandTimelineSuccess ( timelineId , response . data , next ? next . uri : null , response . code === 206 , isLoadingMore )) ;
done ( ) ;
done ( ) ;
} ) . catch ( error => {
} ) . catch ( error => {
dispatch ( expandTimelineFail ( timelineId , error ) ) ;
dispatch ( expandTimelineFail ( timelineId , error , isLoadingMore )) ;
done ( ) ;
done ( ) ;
} ) ;
} ) ;
} ;
} ;
@ -103,31 +104,31 @@ export const expandHashtagTimeline = (hashtag, { maxId, tags } = {}, don
} , done ) ;
} , done ) ;
} ;
} ;
export function expandTimelineRequest ( timeline ) {
export function expandTimelineRequest ( timeline , isLoadingMore ) {
return {
return {
type : TIMELINE_EXPAND_REQUEST ,
type : TIMELINE_EXPAND_REQUEST ,
timeline ,
timeline ,
skipLoading : tru e,
skipLoading : ! isLoadingMor e,
} ;
} ;
} ;
} ;
export function expandTimelineSuccess ( timeline , statuses , next , partial ) {
export function expandTimelineSuccess ( timeline , statuses , next , partial , isLoadingMore ) {
return {
return {
type : TIMELINE_EXPAND_SUCCESS ,
type : TIMELINE_EXPAND_SUCCESS ,
timeline ,
timeline ,
statuses ,
statuses ,
next ,
next ,
partial ,
partial ,
skipLoading : tru e,
skipLoading : ! isLoadingMor e,
} ;
} ;
} ;
} ;
export function expandTimelineFail ( timeline , error ) {
export function expandTimelineFail ( timeline , error , isLoadingMore ) {
return {
return {
type : TIMELINE_EXPAND_FAIL ,
type : TIMELINE_EXPAND_FAIL ,
timeline ,
timeline ,
error ,
error ,
skipLoading : tru e,
skipLoading : ! isLoadingMor e,
} ;
} ;
} ;
} ;