Files
bodyshop/client/src/redux/messaging/messaging.reducer.js
2020-02-21 15:02:56 -08:00

59 lines
1.5 KiB
JavaScript

import MessagingActionTypes from "./messaging.types";
const INITIAL_STATE = {
visible: false,
conversations: [
{ phone: "6049992002", open: false },
{ phone: "6049992991", open: false }
]
};
const messagingReducer = (state = INITIAL_STATE, action) => {
switch (action.type) {
case MessagingActionTypes.TOGGLE_CHAT_VISIBLE:
return {
...state,
visible: !state.visible
};
case MessagingActionTypes.SET_CHAT_VISIBLE:
return {
...state,
visible: true
};
case MessagingActionTypes.OPEN_CONVERSATION:
if (state.conversations.find(c => c.phone === action.payload))
return {
...state,
conversations: state.conversations.map(c =>
c.phone === action.payload ? { ...c, open: true } : c
)
};
else
return {
...state,
conversations: [
...state.conversations,
{ phone: action.payload, open: true }
]
};
case MessagingActionTypes.CLOSE_CONVERSATION:
return {
...state,
conversations: state.conversations.filter(
c => c.phone !== action.payload
)
};
case MessagingActionTypes.TOGGLE_CONVERSATION_VISIBLE:
return {
...state,
conversations: state.conversations.map(c =>
c.phone === action.payload ? { ...c, open: !c.open } : c
)
};
default:
return state;
}
};
export default messagingReducer;