diff --git a/common/app/Flash/Flash.jsx b/common/app/Flash/Flash.jsx index 6582e890ed..0e9f4b5ae0 100644 --- a/common/app/Flash/Flash.jsx +++ b/common/app/Flash/Flash.jsx @@ -4,7 +4,7 @@ import { CloseButton } from 'react-bootstrap'; import { connect } from 'react-redux'; import ns from './ns.json'; -import { alertTypes } from './redux/utils.js'; +import { alertTypes } from '../../utils/flash.js'; import { latestMessageSelector, clickOnClose diff --git a/common/app/Flash/redux/utils.js b/common/app/Flash/redux/utils.js index 408ad1bdb2..2ebbfb9332 100644 --- a/common/app/Flash/redux/utils.js +++ b/common/app/Flash/redux/utils.js @@ -1,13 +1,5 @@ import _ from 'lodash/fp'; - -export const alertTypes = _.keyBy(_.identity)([ - 'success', - 'info', - 'warning', - 'danger' -]); - -export const normalizeAlertType = alertType => alertTypes[alertType] || 'info'; +import { alertTypes, normalizeAlertType } from '../../../utils/flash.js'; // interface ExpressFlash { // [alertType]: [String...] @@ -16,7 +8,6 @@ export const normalizeAlertType = alertType => alertTypes[alertType] || 'info'; // type: AlertType, // message: String // } - export const expressToStack = _.flow( _.toPairs, _.flatMap(([ type, messages ]) => messages.map(msg => ({ diff --git a/common/utils/flash.js b/common/utils/flash.js new file mode 100644 index 0000000000..b965b3680e --- /dev/null +++ b/common/utils/flash.js @@ -0,0 +1,10 @@ +import _ from 'lodash'; + +export const alertTypes = _.keyBy([ + 'success', + 'info', + 'warning', + 'danger' +], _.identity); + +export const normalizeAlertType = alertType => alertTypes[alertType] || 'info'; diff --git a/server/boot/settings.js b/server/boot/settings.js index 78c8520176..453a0d3f8c 100644 --- a/server/boot/settings.js +++ b/server/boot/settings.js @@ -6,6 +6,7 @@ import { } from '../utils/middleware'; import supportedLanguages from '../../common/utils/supported-languages.js'; import { themes } from '../../common/utils/themes.js'; +import { alertTypes } from '../../common/utils/flash.js'; export default function settingsController(app) { const api = app.loopback.Router(); @@ -76,7 +77,7 @@ export default function settingsController(app) { '/update-my-current-challenge', ifNoUser401, updateMyCurrentChallengeValidators, - createValidatorErrorHandler('errors'), + createValidatorErrorHandler(alertTypes.danger), updateMyCurrentChallenge ); @@ -88,11 +89,11 @@ export default function settingsController(app) { function updateMyTheme(req, res, next) { const { body: { theme } } = req; if (req.user.theme === theme) { - return res.sendFlash('info', 'Theme already set'); + return res.sendFlash(alertTypes.info, 'Theme already set'); } return req.user.updateTheme(theme) .then( - () => res.sendFlash('info', 'Your theme has been updated'), + () => res.sendFlash(alertTypes.info, 'Your theme has been updated'), next ); } @@ -100,7 +101,7 @@ export default function settingsController(app) { '/update-my-theme', ifNoUser401, updateMyThemeValidators, - createValidatorErrorHandler('errors'), + createValidatorErrorHandler(alertTypes.danger), updateMyTheme );