Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1125 | Rev 1132 | 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: [],
1126 stevensc 7
  capsuleById: {},
8
  slidesAllIds: [],
9
  slideById: {}
1118 stevensc 10
}
11
 
12
const topicsReducer = (state = initialState, { type, payload }) => {
13
  switch (type) {
14
    case TOPIC_ACTIONS.ADD_TOPIC: {
15
      const { uuid, ...topic } = payload
16
 
17
      return {
18
        ...state,
19
        topicById: {
20
          ...state.topicById,
1120 stevensc 21
          [uuid]: { ...topic, uuid }
1118 stevensc 22
        },
23
        topicsAllIds: [...state.topicsAllIds, uuid]
24
      }
25
    }
26
 
27
    case TOPIC_ACTIONS.ADD_CAPSULE: {
1125 stevensc 28
      const { topicId, capsule } = payload
1118 stevensc 29
 
30
      return {
31
        ...state,
32
        capsuleById: {
33
          ...state.capsuleById,
34
          [capsule.uuid]: { ...capsule, topicId }
35
        },
36
        capsulesAllIds: [...state.capsulesAllIds, capsule.uuid]
37
      }
38
    }
39
 
1126 stevensc 40
    case TOPIC_ACTIONS.ADD_SLIDE: {
41
      const { capsuleId, slide } = payload
42
 
43
      return {
44
        ...state,
45
        slideById: {
46
          ...state.capsuleById,
47
          [slide.uuid]: { ...slide, capsuleId }
48
        },
49
        slidesAllIds: [...state.slidesAllIds, slide.uuid]
50
      }
51
    }
52
 
1118 stevensc 53
    default:
54
      return state
55
  }
56
}
57
 
58
export default topicsReducer