UNPKG

stitch-ui

Version:

52 lines (49 loc) 1.57 kB
import { createReducer } from "redux-act"; import { Map } from "immutable"; import * as actions from "./actions"; import { FIELD_TEXT, FIELD_LABEL, FIELD_TOPIC } from "./constants"; const setError = (state, { error }) => ({ ...state, modalError: error }); export default createReducer( { [actions.setNewMessageText]: (state, { input }) => ({ ...state, newMessage: state.newMessage.set(FIELD_TEXT, input) }), [actions.setNewMessageLabel]: (state, { input }) => ({ ...state, newMessage: state.newMessage.set(FIELD_LABEL, input) }), [actions.setNewMessageTopic]: (state, { input }) => ({ ...state, newMessage: state.newMessage.set(FIELD_TOPIC, input) }), [actions.loadMessagesActions.req]: state => ({ ...state, messages: [], loadingMessages: true }), [actions.loadMessagesActions.rcv]: (state, { payload }) => ({ ...state, messages: payload, loadingMessagesError: null, loadingMessages: false }), [actions.loadMessagesActions.fail]: (state, { error }) => ({ ...state, loadingMessagesError: error, loadingMessages: false }), [actions.executePushPipelineActions.fail]: setError, [actions.saveMessageActions.fail]: setError, [actions.createMessageActions.fail]: setError, [actions.setMessageStatusActions.fail]: setError, [actions.setNewMessageError]: setError }, { newMessage: new Map(), messages: [], modalError: null, loadingMessagesError: null, loadingMessages: false } );