Rev 5309 | Ir a la última revisión | 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 = {messages: [],currentPage: 1,lastPage: 1,loading: false,activeConversations: [{id: '',image: '',name: '',online: false,type: '',profile: ''}]}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