Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1151 | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 1151 Rev 3719
Línea 1... Línea 1...
1
import { TOPIC_ACTIONS } from './topics.types'
1
import { TOPIC_ACTIONS } from './topics.types';
2
 
2
 
3
const initialState = {
3
const initialState = {
4
  topicsAllIds: [],
4
  topicsAllIds: [],
5
  topicById: {},
5
  topicById: {},
6
  capsulesAllIds: [],
6
  capsulesAllIds: [],
7
  capsuleById: {},
7
  capsuleById: {},
8
  slidesAllIds: [],
8
  slidesAllIds: [],
9
  slideById: {}
9
  slideById: {}
10
}
10
};
11
 
11
 
12
const topicsReducer = (state = initialState, { type, payload }) => {
12
const topicsReducer = (state = initialState, { type, payload }) => {
13
  switch (type) {
13
  switch (type) {
14
    case TOPIC_ACTIONS.ADD_TOPIC: {
14
    case TOPIC_ACTIONS.ADD_TOPIC: {
15
      const topic = payload
15
      const topic = payload;
16
      const topicsIds = new Set([...state.topicsAllIds, topic.uuid])
16
      const topicsIds = new Set([...state.topicsAllIds, topic.uuid]);
17
 
17
 
18
      return {
18
      return {
19
        ...state,
19
        ...state,
20
        topicById: {
20
        topicById: {
21
          ...state.topicById,
21
          ...state.topicById,
22
          [topic.uuid]: topic
22
          [topic.uuid]: topic
23
        },
23
        },
24
        topicsAllIds: Array.from(topicsIds)
24
        topicsAllIds: Array.from(topicsIds)
25
      }
25
      };
26
    }
26
    }
27
 
27
 
28
    case TOPIC_ACTIONS.ADD_CAPSULE: {
28
    case TOPIC_ACTIONS.ADD_CAPSULE: {
29
      const capsule = payload
29
      const capsule = payload;
30
      const capsulesIds = new Set([...state.capsulesAllIds, capsule.uuid])
30
      const capsulesIds = new Set([...state.capsulesAllIds, capsule.uuid]);
31
 
31
 
32
      return {
32
      return {
33
        ...state,
33
        ...state,
34
        capsuleById: {
34
        capsuleById: {
35
          ...state.capsuleById,
35
          ...state.capsuleById,
36
          [capsule.uuid]: capsule
36
          [capsule.uuid]: capsule
37
        },
37
        },
38
        capsulesAllIds: Array.from(capsulesIds)
38
        capsulesAllIds: Array.from(capsulesIds)
39
      }
39
      };
40
    }
40
    }
41
 
41
 
42
    case TOPIC_ACTIONS.ADD_SLIDE: {
42
    case TOPIC_ACTIONS.ADD_SLIDE: {
43
      const slide = payload
43
      const slide = payload;
44
      const slidesIds = new Set([...state.slidesAllIds, slide.uuid])
44
      const slidesIds = new Set([...state.slidesAllIds, slide.uuid]);
45
 
45
 
46
      return {
46
      return {
47
        ...state,
47
        ...state,
48
        slideById: {
48
        slideById: {
49
          ...state.slideById,
49
          ...state.slideById,
50
          [slide.uuid]: slide
50
          [slide.uuid]: slide
51
        },
51
        },
52
        slidesAllIds: Array.from(slidesIds)
52
        slidesAllIds: Array.from(slidesIds)
53
      }
53
      };
54
    }
54
    }
55
 
55
 
56
    default:
56
    default:
57
      return state
57
      return state;
58
  }
58
  }
59
}
59
};
60
 
60
 
61
export default topicsReducer
61
export default topicsReducer;