@ -141,16 +141,23 @@ const excludeTypesFromFilter = filter => {
const noOp = ( ) => { } ;
const noOp = ( ) => { } ;
let expandNotificationsController = new AbortController ( ) ;
export function expandNotifications ( { maxId , forceLoad } = { } , done = noOp ) {
export function expandNotifications ( { maxId , forceLoad } = { } , done = noOp ) {
return ( dispatch , getState ) => {
return ( dispatch , getState ) => {
const activeFilter = getState ( ) . getIn ( [ 'settings' , 'notifications' , 'quickFilter' , 'active' ] ) ;
const activeFilter = getState ( ) . getIn ( [ 'settings' , 'notifications' , 'quickFilter' , 'active' ] ) ;
const notifications = getState ( ) . get ( 'notifications' ) ;
const notifications = getState ( ) . get ( 'notifications' ) ;
const isLoadingMore = ! ! maxId ;
const isLoadingMore = ! ! maxId ;
if ( notifications . get ( 'isLoading' ) && ! forceLoad ) {
if ( notifications . get ( 'isLoading' ) ) {
if ( forceLoad ) {
expandNotificationsController . abort ( ) ;
expandNotificationsController = new AbortController ( ) ;
} else {
done ( ) ;
done ( ) ;
return ;
return ;
}
}
}
const params = {
const params = {
max _id : maxId ,
max _id : maxId ,
@ -174,7 +181,7 @@ export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) {
dispatch ( expandNotificationsRequest ( isLoadingMore ) ) ;
dispatch ( expandNotificationsRequest ( isLoadingMore ) ) ;
api ( getState ) . get ( '/api/v1/notifications' , { params } ) . then ( response => {
api ( getState ) . get ( '/api/v1/notifications' , { params , signal : expandNotificationsController . signal } ) . then ( response => {
const next = getLinks ( response ) . refs . find ( link => link . rel === 'next' ) ;
const next = getLinks ( response ) . refs . find ( link => link . rel === 'next' ) ;
dispatch ( importFetchedAccounts ( response . data . map ( item => item . account ) ) ) ;
dispatch ( importFetchedAccounts ( response . data . map ( item => item . account ) ) ) ;
@ -215,7 +222,7 @@ export function expandNotificationsFail(error, isLoadingMore) {
type : NOTIFICATIONS _EXPAND _FAIL ,
type : NOTIFICATIONS _EXPAND _FAIL ,
error ,
error ,
skipLoading : ! isLoadingMore ,
skipLoading : ! isLoadingMore ,
skipAlert : ! isLoadingMore ,
skipAlert : ! isLoadingMore || error . name === 'AbortError' ,
} ;
} ;
} ;
} ;