Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5306 | Rev 5309 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 5306 Rev 5307
Línea -... Línea 1...
-
 
1
/* eslint-disable no-case-declarations */
-
 
2
import { getMessagesDifferences } from '../../services/chat'
1
import { chatActionTypes } from './chat.types'
3
import { conversationActionTypes } from './conversation.types'
Línea 2... Línea 4...
2
 
4
 
3
const initialState = {
5
const initialState = {
4
  messages: [],
6
  messages: [],
5
  currentPage: 1,
7
  currentPage: 1,
Línea 8... Línea 10...
8
  conversation: {}
10
  conversation: {}
9
}
11
}
Línea 10... Línea 12...
10
 
12
 
11
export default (state = initialState, { type, payload }) => {
13
export default (state = initialState, { type, payload }) => {
-
 
14
  switch (type) {
-
 
15
    case conversationActionTypes.START_LOADING:
-
 
16
      return {
-
 
17
        ...state,
-
 
18
        loading: true
-
 
19
      }
-
 
20
    case conversationActionTypes.SET_UPDATE_MESSAGES:
-
 
21
      return {
-
 
22
        ...state,
-
 
23
        messages: [payload, ...state.messages]
-
 
24
      }
-
 
25
    case conversationActionTypes.SET_MESSAGES:
-
 
26
 
-
 
27
      const newMessages = getMessagesDifferences(state.messages, payload)
12
  switch (type) {
28
 
-
 
29
      if (!newMessages.length) {
-
 
30
        return { ...state, messages: payload }
-
 
31
      }
-
 
32
 
-
 
33
      return {
-
 
34
        ...state,
-
 
35
        messages: [...state.messages, ...newMessages]
-
 
36
      }
13
    case 'sendMessage':
37
    case conversationActionTypes.SET_NEW_MESSAGE:
14
      return {
38
      return {
15
        ...state,
39
        ...state,
16
        messages: [
40
        messages: [
17
          ...state.messages,
41
          ...state.messages,
18
          {
42
          {
19
            ...payload,
43
            ...payload,
20
            not_received: !state.conversation.online
44
            not_received: !state.conversation.online
21
          }
45
          }
22
        ]
46
        ]
23
      }
-
 
24
    case chatActionTypes.SET_UNREAD_MESSAGES:
-
 
25
      if (JSON.stringify(payload) !== JSON.stringify(state.unreadMessages)) {
-
 
26
        // let newShouldAlertNewMessage;
-
 
27
        return {
-
 
28
          ...state,
-
 
29
          unreadMessages: payload,
-
 
30
          haveNewMessage: true
-
 
31
        }
-
 
32
      } else {
-
 
33
        return state
-
 
34
      }
-
 
35
    case chatActionTypes.SET_NEW_MESSAGE:
-
 
36
      return { ...state, haveNewMessage: payload }
-
 
37
    case chatActionTypes.SET_SHOULD_ALERT_NEW_MESSAGE:
-
 
38
      return { ...state, shouldAlertNewMessage: payload }
47
      }
39
    default:
48
    default:
40
      return state
49
      return state
41
  }
50
  }