From 45c44989c8fb6e24badd18bb83ac5f68de0aceaf Mon Sep 17 00:00:00 2001 From: kibigo! Date: Fri, 17 Nov 2017 19:11:18 -0800 Subject: Forking glitch theme --- app/javascript/themes/glitch/middleware/errors.js | 31 +++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app/javascript/themes/glitch/middleware/errors.js (limited to 'app/javascript/themes/glitch/middleware/errors.js') diff --git a/app/javascript/themes/glitch/middleware/errors.js b/app/javascript/themes/glitch/middleware/errors.js new file mode 100644 index 000000000..c54e7b0a2 --- /dev/null +++ b/app/javascript/themes/glitch/middleware/errors.js @@ -0,0 +1,31 @@ +import { showAlert } from 'themes/glitch/actions/alerts'; + +const defaultFailSuffix = 'FAIL'; + +export default function errorsMiddleware() { + return ({ dispatch }) => next => action => { + if (action.type && !action.skipAlert) { + const isFail = new RegExp(`${defaultFailSuffix}$`, '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); + dispatch(showAlert('Oops!', 'An unexpected error occurred.')); + } + } + } + + return next(action); + }; +}; -- cgit