[Glitch] Fix quickly switching notification filters resulting in empty or incorrect list
Port 55bef1e34f to glitch-soc
Signed-off-by: Claire <claire.github-309c@sitedethib.com>
			
			
This commit is contained in:
		| @@ -153,15 +153,22 @@ const excludeTypesFromFilter = filter => { | ||||
|  | ||||
| const noOp = () => {}; | ||||
|  | ||||
| let expandNotificationsController = new AbortController(); | ||||
|  | ||||
| export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) { | ||||
|   return (dispatch, getState) => { | ||||
|     const activeFilter = getState().getIn(['settings', 'notifications', 'quickFilter', 'active']); | ||||
|     const notifications = getState().get('notifications'); | ||||
|     const isLoadingMore = !!maxId; | ||||
|  | ||||
|     if (notifications.get('isLoading') && !forceLoad) { | ||||
|       done(); | ||||
|       return; | ||||
|     if (notifications.get('isLoading')) { | ||||
|       if (forceLoad) { | ||||
|         expandNotificationsController.abort(); | ||||
|         expandNotificationsController = new AbortController(); | ||||
|       } else { | ||||
|         done(); | ||||
|         return; | ||||
|       } | ||||
|     } | ||||
|  | ||||
|     const params = { | ||||
| @@ -186,7 +193,7 @@ export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) { | ||||
|  | ||||
|     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'); | ||||
|  | ||||
|       dispatch(importFetchedAccounts(response.data.map(item => item.account))); | ||||
| @@ -227,7 +234,7 @@ export function expandNotificationsFail(error, isLoadingMore) { | ||||
|     type: NOTIFICATIONS_EXPAND_FAIL, | ||||
|     error, | ||||
|     skipLoading: !isLoadingMore, | ||||
|     skipAlert: !isLoadingMore, | ||||
|     skipAlert: !isLoadingMore || error.name === 'AbortError', | ||||
|   }; | ||||
| }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user