Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 764 | Rev 1656 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 764 Rev 1650
Línea 1... Línea 1...
1
import { feedActionTypes } from './feed.types'
1
import { feedActionTypes } from './feed.types'
Línea 2... Línea 2...
2
 
2
 
-
 
3
const initialState = {
-
 
4
  feeds: {
-
 
5
    byId: {},
-
 
6
    allIds: []
3
const initialState = {
7
  },
4
  timelineUrl: '',
-
 
5
  allFeeds: [],
8
  timelineUrl: '',
6
  currentFeed: null,
9
  currentFeed: null,
7
  loading: false,
10
  loading: false,
8
  currentPage: 1,
11
  currentPage: 1,
9
  pages: 1
12
  pages: 1
Línea 20... Línea 23...
20
      return { ...state, loading: true }
23
      return { ...state, loading: true }
21
    }
24
    }
Línea 22... Línea 25...
22
 
25
 
23
    case feedActionTypes.LOAD_FEEDS_SUCCESS: {
26
    case feedActionTypes.LOAD_FEEDS_SUCCESS: {
-
 
27
      const { feeds, currentPage, pages } = payload
-
 
28
      const feedsById = {}
-
 
29
 
-
 
30
      feeds.forEach((feed) => {
-
 
31
        feedsById[feed.feed_unique] = feed
-
 
32
      })
-
 
33
 
-
 
34
      const feedsIds = feeds.map((feed) => feed.feed_unique)
24
      const { feeds, currentPage, pages } = payload
35
 
25
      return {
36
      return {
26
        ...state,
37
        ...state,
27
        allFeeds: feeds,
38
        feeds: { byId: feedsById, allIds: feedsIds },
28
        currentPage,
39
        currentPage,
29
        pages,
40
        pages,
30
        loading: false
41
        loading: false
31
      }
42
      }
Línea -... Línea 43...
-
 
43
    }
-
 
44
 
-
 
45
    case feedActionTypes.REMOVE_COMMENT: {
-
 
46
      const { feedId, commentId, totalComments } = payload
-
 
47
      const feed = state.feeds.byId[feedId]
-
 
48
      feed.owner_comments = totalComments
-
 
49
      feed.comments = feed.comments.filter(
-
 
50
        (comment) => comment.id !== commentId
-
 
51
      )
-
 
52
 
-
 
53
      return {
-
 
54
        ...state,
-
 
55
        feeds: {
-
 
56
          ...state.feeds,
-
 
57
          byId: { ...state.feeds.byId, [feedId]: feed }
-
 
58
        }
-
 
59
      }
-
 
60
    }
-
 
61
 
-
 
62
    case feedActionTypes.ADD_COMMENT: {
-
 
63
      const { feedId, comment, totalComments } = payload
-
 
64
      const feed = state.feeds.byId[feedId]
-
 
65
      feed.owner_comments = totalComments
-
 
66
      feed.comments.push(comment)
-
 
67
 
-
 
68
      return {
-
 
69
        ...state,
-
 
70
        feeds: {
-
 
71
          ...state.feeds,
-
 
72
          byId: { ...state.feeds.byId, [feedId]: feed }
-
 
73
        }
-
 
74
      }
32
    }
75
    }
33
 
76
 
34
    case feedActionTypes.LOAD_FEEDS_FAILURE: {
77
    case feedActionTypes.LOAD_FEEDS_FAILURE: {
Línea 35... Línea 78...
35
      return state
78
      return state
-
 
79
    }
-
 
80
 
-
 
81
    case feedActionTypes.ADD_FEED: {
36
    }
82
      const { feedSharedId, feed } = payload
37
 
83
      const isShare = state.feeds.allIds.some((id) => id === feedSharedId)
-
 
84
 
-
 
85
      if (isShare) {
-
 
86
        const feedShared = state.feeds.byId[feedSharedId]
-
 
87
        feedShared.owner_comments = feedShared.owner_comments + 1
-
 
88
 
-
 
89
        return {
38
    case feedActionTypes.ADD_FEED: {
90
          ...state,
39
      if (payload.feedSharedId) {
91
          feeds: {
-
 
92
            byId: {
-
 
93
              ...state.feeds.byId,
40
        const newFeed = payload.feed
94
              [feed.feed_unique]: feed,
41
        const oldFeeds = state.allFeeds.map((feed) => {
95
              [feedSharedId]: feedShared
42
          if (feed.feed_unique === payload.feedSharedId) {
96
            },
43
            feed.owner_shared = (parseInt(feed.owner_shared) + 1).toString()
97
            allIds: [feed.feed_unique, ...state.feeds.allIds]
-
 
98
          }
44
          }
99
        }
45
          return feed
100
      }
46
        })
101
 
47
        const newAllFeeds = [newFeed, ...oldFeeds]
102
      return {
48
        return { ...state, allFeeds: newAllFeeds }
103
        ...state,
49
      } else {
104
        feeds: {
50
        const newFeed = payload.feed
105
          byId: { ...state.feeds.byId, [feed.feed_unique]: feed },
51
        const newAllFeeds = [newFeed, ...state.allFeeds]
106
          allIds: [feed.feed_unique, ...state.feeds.allIds]
Línea 52... Línea 107...
52
        return { ...state, allFeeds: newAllFeeds }
107
        }
53
      }
108
      }
54
    }
-
 
55
 
-
 
56
    case feedActionTypes.UPDATE_FEED: {
-
 
57
      const { feed, uuid } = payload
-
 
58
      const currentFeedIndex = state.allFeeds.findIndex(
-
 
59
        (feed) => feed.feed_uuid === uuid
-
 
Línea 60... Línea 109...
60
      )
109
    }
61
 
110
 
-
 
111
    case feedActionTypes.UPDATE_FEED: {
62
      const newFeeds = structuredClone(state.allFeeds)
112
      const { feed, uuid } = payload
-
 
113
 
-
 
114
      return {
63
      newFeeds[currentFeedIndex] = feed
115
        ...state,
64
 
116
        feeds: {
Línea 65... Línea 117...
65
      return {
117
          ...state.feeds,
-
 
118
          byId: { ...state.feeds.byId, [uuid]: feed }
-
 
119
        }
-
 
120
      }
-
 
121
    }
66
        ...state,
122
 
67
        allFeeds: newFeeds
123
    case feedActionTypes.DELETE_FEED: {
-
 
124
      const feedId = payload
68
      }
125
      const newIds = state.feeds.allIds.filter((id) => id !== feedId)
-
 
126
      const newFeeds = { ...state.feeds.byId, [feedId]: null }
-
 
127
 
-
 
128
      return {
69
    }
129
        ...state,
70
 
130
        feeds: {
Línea 71... Línea 131...
71
    case feedActionTypes.DELETE_FEED: {
131
          ...state.feeds,
72
      return {
132
          byId: newFeeds,