const Immutable = require('immutable'); import * as MessageActions from '../../actions/board/message.actions'; import MessageCtrl from '../../controllers/message.controller'; const exclamations = [ 'Congratulations!', 'Yippee!', 'Woohoo!', 'Nice work!', 'Great job!', 'Boom!', 'All finished!', 'Shazam!' ]; const initial = { message: '', hidden: true }; const reducer = (state = initial, action) => { if (action.type !== MessageActions.MESSAGE_ACTION) { return state; } switch (action.action) { case MessageActions.EXCLAIM: MessageCtrl.show(); const msg = exclamations[Math.floor(Math.random() * exclamations.length)]; return Immutable.Map(state) .set('hidden', false) .set('message', msg) .toObject(); case MessageActions.SHOW: MessageCtrl.show(); return Immutable.Map(state) .set('hidden', false) .set('message', action.message) .toObject(); case MessageActions.HIDE: MessageCtrl.hide(); return Immutable.Map(state) .set('hidden', true) .toObject(); } return state; }; export default reducer;