Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1120 | Rev 1126 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
1118 stevensc 1
import { TOPIC_ACTIONS } from './topics.types'
2
 
3
const initialState = {
4
  topicsAllIds: [],
5
  topicById: {},
6
  capsulesAllIds: [],
7
  capsuleById: {}
8
}
9
 
10
const topicsReducer = (state = initialState, { type, payload }) => {
11
  switch (type) {
12
    case TOPIC_ACTIONS.ADD_TOPIC: {
13
      const { uuid, ...topic } = payload
14
 
15
      return {
16
        ...state,
17
        topicById: {
18
          ...state.topicById,
1120 stevensc 19
          [uuid]: { ...topic, uuid }
1118 stevensc 20
        },
21
        topicsAllIds: [...state.topicsAllIds, uuid]
22
      }
23
    }
24
 
25
    case TOPIC_ACTIONS.ADD_CAPSULE: {
1125 stevensc 26
      const { topicId, capsule } = payload
1118 stevensc 27
 
28
      return {
29
        ...state,
30
        capsuleById: {
31
          ...state.capsuleById,
32
          [capsule.uuid]: { ...capsule, topicId }
33
        },
34
        capsulesAllIds: [...state.capsulesAllIds, capsule.uuid]
35
      }
36
    }
37
 
38
    default:
39
      return state
40
  }
41
}
42
 
43
export default topicsReducer