Fix uncaught promise error in search results
Sentry issue IMPRESS-2020-20 doesn't have a clear backtrace, but it looks like the usual thing where we trigger an Apollo query directly, and forget to catch a potential error in the returned promise. I noticed that the last thing the user did was type in the search bar, and got a _caught_ error for the initial search! Scanning the SearchPanel file, I think it's likely that this was a failure in `fetchMore` for the infinite pagination. I'm a bit worried as to _why_ we were doing infinite scrolling stuff when there were no results? I wasn't able to repro a scroll event on the empty results list, but it's plausible that it could happen. I've added a gate to not send this request when there's an error!
This commit is contained in:
parent
05282f4b7b
commit
33353e5328
1 changed files with 4 additions and 2 deletions
|
@ -372,7 +372,7 @@ function useSearchResults(query, outfitState) {
|
||||||
// When SearchResults calls this, we'll resend the query, with the `offset`
|
// When SearchResults calls this, we'll resend the query, with the `offset`
|
||||||
// increased. We'll append the results to the original query!
|
// increased. We'll append the results to the original query!
|
||||||
const fetchMore = React.useCallback(() => {
|
const fetchMore = React.useCallback(() => {
|
||||||
if (!loadingGQL && !isEndOfResults) {
|
if (!loadingGQL && !error && !isEndOfResults) {
|
||||||
fetchMoreGQL({
|
fetchMoreGQL({
|
||||||
variables: {
|
variables: {
|
||||||
offset: items.length,
|
offset: items.length,
|
||||||
|
@ -402,9 +402,11 @@ function useSearchResults(query, outfitState) {
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
}).catch((e) => {
|
||||||
|
console.error("Error loading more search results pages", e);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
}, [loadingGQL, isEndOfResults, fetchMoreGQL, items.length]);
|
}, [loadingGQL, error, isEndOfResults, fetchMoreGQL, items.length]);
|
||||||
|
|
||||||
return { loading, loadingMore, error, items, fetchMore };
|
return { loading, loadingMore, error, items, fetchMore };
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue