Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1146 | 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: {
1146 stevensc 15
      const topic = payload
16
      const topicsIds = new Set([...state.topicsAllIds, topic.uuid])
1132 stevensc 17
 
1118 stevensc 18
      return {
19
        ...state,
20
        topicById: {
21
          ...state.topicById,
1146 stevensc 22
          [topic.uuid]: topic
1118 stevensc 23
        },
1132 stevensc 24
        topicsAllIds: Array.from(topicsIds)
1118 stevensc 25
      }
26
    }
27
 
28
    case TOPIC_ACTIONS.ADD_CAPSULE: {
1146 stevensc 29
      const capsule = payload
1132 stevensc 30
      const capsulesIds = new Set([...state.capsulesAllIds, capsule.uuid])
31
 
1118 stevensc 32
      return {
33
        ...state,
34
        capsuleById: {
35
          ...state.capsuleById,
1146 stevensc 36
          [capsule.uuid]: capsule
1118 stevensc 37
        },
1132 stevensc 38
        capsulesAllIds: Array.from(capsulesIds)
1118 stevensc 39
      }
40
    }
41
 
1126 stevensc 42
    case TOPIC_ACTIONS.ADD_SLIDE: {
1146 stevensc 43
      const slide = payload
1132 stevensc 44
      const slidesIds = new Set([...state.slidesAllIds, slide.uuid])
45
 
1126 stevensc 46
      return {
47
        ...state,
48
        slideById: {
1132 stevensc 49
          ...state.slideById,
1146 stevensc 50
          [slide.uuid]: slide
1126 stevensc 51
        },
1132 stevensc 52
        slidesAllIds: Array.from(slidesIds)
1126 stevensc 53
      }
54
    }
55
 
1118 stevensc 56
    default:
57
      return state
58
  }
59
}
60
 
61
export default topicsReducer