Adding public timeline
This commit is contained in:
parent
06016453bd
commit
1f650d327d
21 changed files with 229 additions and 71 deletions
|
@ -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);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue