diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-10-07 16:00:11 +0200 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-10-07 16:00:11 +0200 |
commit | 1f650d327d35bc48b897da99914c43750d8e5fd3 (patch) | |
tree | 6960b24e30c46c55ba9f3bf1af0a24b43cd9d248 /app/assets/javascripts/components/reducers | |
parent | 06016453bd91882a53e91c11fc80f2c75fd474bb (diff) |
Adding public timeline
Diffstat (limited to 'app/assets/javascripts/components/reducers')
-rw-r--r-- | app/assets/javascripts/components/reducers/timelines.jsx | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/app/assets/javascripts/components/reducers/timelines.jsx b/app/assets/javascripts/components/reducers/timelines.jsx index 392683150..0b02ac181 100644 --- a/app/assets/javascripts/components/reducers/timelines.jsx +++ b/app/assets/javascripts/components/reducers/timelines.jsx @@ -30,6 +30,7 @@ import Immutable from 'immutable'; const initialState = Immutable.Map({ home: Immutable.List([]), mentions: Immutable.List([]), + public: Immutable.List([]), statuses: Immutable.Map(), accounts: Immutable.Map(), accounts_timelines: Immutable.Map(), @@ -110,7 +111,7 @@ function normalizeTimeline(state, timeline, statuses) { }; function appendNormalizedTimeline(state, timeline, statuses) { - let moreIds = Immutable.List(); + let moreIds = Immutable.List([]); statuses.forEach((status, i) => { state = normalizeStatus(state, status); @@ -121,29 +122,33 @@ function appendNormalizedTimeline(state, timeline, statuses) { }; function normalizeAccountTimeline(state, accountId, statuses) { + state = state.updateIn(['accounts_timelines', accountId], Immutable.List([]), list => { + return (list.size > 0) ? list.clear() : list; + }); + statuses.forEach((status, i) => { state = normalizeStatus(state, status); - state = state.updateIn(['accounts_timelines', accountId], Immutable.List(), list => list.set(i, status.get('id'))); + state = state.updateIn(['accounts_timelines', accountId], Immutable.List([]), list => list.set(i, status.get('id'))); }); return state; }; function appendNormalizedAccountTimeline(state, accountId, statuses) { - let moreIds = Immutable.List(); + let moreIds = Immutable.List([]); statuses.forEach((status, i) => { state = normalizeStatus(state, status); moreIds = moreIds.set(i, status.get('id')); }); - return state.updateIn(['accounts_timelines', accountId], Immutable.List(), list => list.push(...moreIds)); + return state.updateIn(['accounts_timelines', accountId], Immutable.List([]), list => list.push(...moreIds)); }; function updateTimeline(state, timeline, status) { state = normalizeStatus(state, status); state = state.update(timeline, list => list.unshift(status.get('id'))); - state = state.updateIn(['accounts_timelines', status.getIn(['account', 'id'])], Immutable.List(), list => list.unshift(status.get('id'))); + state = state.updateIn(['accounts_timelines', status.getIn(['account', 'id'])], Immutable.List([]), list => (list.includes(status.get('id')) ? list : list.unshift(status.get('id')))); return state; }; @@ -161,7 +166,7 @@ function deleteStatus(state, id) { }); // Remove references from account timelines - state = state.updateIn(['accounts_timelines', status.get('account')], Immutable.List(), list => list.filterNot(item => item === id)); + state = state.updateIn(['accounts_timelines', status.get('account')], Immutable.List([]), list => list.filterNot(item => item === id)); // Remove reblogs of deleted status const references = state.get('statuses').filter(item => item.get('reblog') === id); |