import * as types from '../actions/actionsTypes'; const initialState = { isFetching: false, failure: false, message: {}, actionMessage: {}, replyMessage: {}, editing: false, showActions: false, showErrorActions: false, showReactionPicker: false }; export default function messages(state = initialState, action) { switch (action.type) { case types.MESSAGES.REQUEST: return { ...state, isFetching: true }; case types.MESSAGES.SUCCESS: return { ...state, isFetching: false }; case types.LOGIN.FAILURE: return { ...state, isFetching: false, failure: true, errorMessage: action.err }; case types.MESSAGES.ACTIONS_SHOW: return { ...state, showActions: true, actionMessage: action.actionMessage }; case types.MESSAGES.ACTIONS_HIDE: return { ...state, showActions: false }; case types.MESSAGES.ERROR_ACTIONS_SHOW: return { ...state, showErrorActions: true, actionMessage: action.actionMessage }; case types.MESSAGES.ERROR_ACTIONS_HIDE: return { ...state, showErrorActions: false }; case types.MESSAGES.EDIT_INIT: return { ...state, message: action.message, editing: true }; case types.MESSAGES.EDIT_CANCEL: return { ...state, message: {}, editing: false }; case types.MESSAGES.EDIT_SUCCESS: return { ...state, message: {}, editing: false }; case types.MESSAGES.EDIT_FAILURE: return { ...state, message: {}, editing: false }; case types.MESSAGES.REPLY_INIT: return { ...state, replyMessage: { ...action.message, mention: action.mention } }; case types.MESSAGES.REPLY_CANCEL: return { ...state, replyMessage: {} }; case types.MESSAGES.SET_INPUT: return { ...state, message: action.message }; case types.MESSAGES.CLEAR_INPUT: return { ...state, message: {} }; case types.MESSAGES.TOGGLE_REACTION_PICKER: return { ...state, showReactionPicker: !state.showReactionPicker, actionMessage: action.message }; default: return state; } }