import { Intent } from '@blueprintjs/core'; import intl from 'react-intl-universal'; import AppToaster from 'components/AppToaster'; import withGlobalErrors from './withGlobalErrors'; import withGlobalErrorsActions from './withGlobalErrorsActions'; import { compose } from 'utils'; let toastKeySessionExpired; let toastKeySomethingWrong; function GlobalErrors({ // #withGlobalErrors globalErrors, // #withGlobalErrorsActions globalErrorsSet, }) { if (globalErrors.something_wrong) { toastKeySessionExpired = AppToaster.show( { message: intl.get('ops_something_went_wrong'), intent: Intent.DANGER, onDismiss: () => { globalErrorsSet({ something_wrong: false }); }, }, toastKeySessionExpired, ); } if (globalErrors.session_expired) { toastKeySomethingWrong = AppToaster.show( { message: intl.get('session_expired'), intent: Intent.DANGER, onDismiss: () => { globalErrorsSet({ session_expired: false }); }, }, toastKeySomethingWrong, ); } if (globalErrors.access_denied) { toastKeySomethingWrong = AppToaster.show( { message: 'You do not have permissions to access this page.', intent: Intent.DANGER, onDismiss: () => { globalErrorsSet({ access_denied: false }); }, }, toastKeySomethingWrong, ); } if (globalErrors.transactionsLocked) { const lockedToDate = globalErrors.transactionsLocked.formatted_locked_to_date; AppToaster.show({ message: `Transactions before ${lockedToDate} has been locked. Hence action cannot be performed.`, intent: Intent.DANGER, onDismiss: () => { globalErrorsSet({ transactionsLocked: false }); }, }); } if (globalErrors.userInactive) { AppToaster.show({ message: 'The authorized user is inactive.', intent: Intent.DANGER, onDismiss: () => { globalErrorsSet({ userInactive: false }); }, }); } return null; } export default compose(withGlobalErrors, withGlobalErrorsActions)(GlobalErrors);