Rev 5320 | AutorÃa | Comparar con el anterior | Ultima modificación | Ver Log |
/* eslint-disable no-case-declarations */import { getMessagesDifferences } from '../../services/chat'import { conversationActionTypes } from './conversation.types'const initialState = [{id: '',lastPage: 1,currentPage: 1,loading: false,online: false,messages: []}]const conversationReducer = (state = initialState,{ type, payload }) => {switch (type) {case conversationActionTypes.START_LOADING:return { ...state, loading: true }case conversationActionTypes.FINISH_LOADING:return { ...state, loading: false }case conversationActionTypes.SET_UPDATE_MESSAGES:return {...state,messages: [payload, ...state.messages]}case conversationActionTypes.SET_MESSAGES:const newMessages = getMessagesDifferences(state.messages, payload)if (!newMessages.length) {return { ...state, messages: payload }}return {...state,messages: [...state.messages, ...newMessages]}case conversationActionTypes.SET_NEW_MESSAGE:return {...state,messages: [...state.messages,{...payload,not_received: !state.conversation.online}]}default:return state}}export default conversationReducer