Proyectos de Subversion LeadersLinked - SPA

Rev

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