import { showWindow, shutdownApplication } from './common_actions'; let ErrorActions = []; export const CLEAR_ERROR = 'error/clearError'; export const clearError = () => { return { type: CLEAR_ERROR, payload: null, }; }; export const dismissError = () => { return (dispatch, getState) => { dispatch(clearError()); const errorAction = ErrorActions[0]; ErrorActions = ErrorActions.splice(1); if (errorAction) { errorAction(); } if (getState().error.ErrorCritical) { dispatch(shutdownApplication()); } }; }; export const notifyError = (msg, critical, callback) => { return dispatch => { ErrorActions = [callback, ...ErrorActions]; msg = msg ? msg.toString() : 'Unknown Error'; dispatch(setErrorInfo(msg, critical)); dispatch(showWindow()); }; }; export const SET_ERROR_INFO = 'error/setErrorInfo'; export const setErrorInfo = (msg, critical) => { return { type: SET_ERROR_INFO, payload: { msg, critical } } };