123456789101112131415161718192021222324252627282930313233 |
- import { showAlert } from '../actions/alerts';
- const defaultSuccessSuffix = 'SUCCESS';
- const defaultFailSuffix = 'FAIL';
- export default function errorsMiddleware() {
- return ({ dispatch }) => next => action => {
- if (action.type && !action.skipAlert) {
- const isFail = new RegExp(`${defaultFailSuffix}$`, 'g');
- const isSuccess = new RegExp(`${defaultSuccessSuffix}$`, 'g');
- if (action.type.match(isFail)) {
- if (action.error.response) {
- const { data, status, statusText } = action.error.response;
- let message = statusText;
- let title = `${status}`;
- if (data.error) {
- message = data.error;
- }
- dispatch(showAlert(title, message));
- } else {
- console.error(action.error); // eslint-disable-line no-console
- dispatch(showAlert('Oops!', 'An unexpected error occurred.'));
- }
- }
- }
- return next(action);
- };
- };
|