vn-verdnaturachat/app/reducers/messages.js

113 lines
2.1 KiB
JavaScript
Raw Normal View History

2017-08-17 06:28:41 +00:00
import * as types from '../actions/actionsTypes';
const initialState = {
isFetching: false,
failure: false,
message: {},
2017-11-24 20:44:52 +00:00
actionMessage: {},
replyMessage: {},
editing: false,
showActions: false,
showErrorActions: false,
showReactionPicker: false
2017-08-17 06:28:41 +00:00
};
export default function messages(state = initialState, action) {
switch (action.type) {
case types.MESSAGES.REQUEST:
2017-11-13 12:58:35 +00:00
return {
...state,
2017-08-17 06:28:41 +00:00
isFetching: true
};
case types.MESSAGES.SUCCESS:
2017-11-13 12:58:35 +00:00
return {
...state,
2017-08-17 06:28:41 +00:00
isFetching: false
};
case types.LOGIN.FAILURE:
2017-11-13 12:58:35 +00:00
return {
...state,
2017-08-17 06:28:41 +00:00
isFetching: false,
failure: true,
errorMessage: action.err
};
2017-11-24 20:44:52 +00:00
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
};
2017-11-24 20:44:52 +00:00
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
};
2017-11-24 20:44:52 +00:00
case types.MESSAGES.CLEAR_INPUT:
return {
...state,
message: {}
};
case types.MESSAGES.TOGGLE_REACTION_PICKER:
return {
...state,
showReactionPicker: !state.showReactionPicker,
actionMessage: action.message
};
2017-08-17 06:28:41 +00:00
default:
return state;
}
}