summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/lib/utils/suppress_ajax_errors_during_navigation.js
blob: 4c61da9b86278595ae56b08c4c64b7aa3ef624dd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/**
 * An Axios error interceptor that suppresses AJAX errors caused
 * by the request being cancelled when the user navigates to a new page
 */
export default (err, isUserNavigating, featureFlagEnabled) => {
  if (featureFlagEnabled && isUserNavigating && err.code === 'ECONNABORTED') {
    // If the user is navigating away from the current page,
    // prevent .then() and .catch() handlers from being
    // called by returning a Promise that never resolves
    return new Promise(() => {});
  }

  // The error is not related to browser navigation,
  // so propagate the error
  return Promise.reject(err);
};