diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-02-09 19:48:05 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-02-09 19:48:05 +0100 |
commit | d602c92b310545eb733a58caed49717341abe27c (patch) | |
tree | 59b020274695be37d47d0a4c98962c2677e621e6 /app/javascript/flavours/glitch/reducers/history.js | |
parent | 8987ea4d6b236657b8ea97d619902668768ae8ff (diff) | |
parent | d90da7d080d25355290e5d5e86c2c918d685add7 (diff) |
Merge pull request #1681 from ClearlyClaire/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/javascript/flavours/glitch/reducers/history.js')
-rw-r--r-- | app/javascript/flavours/glitch/reducers/history.js | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/app/javascript/flavours/glitch/reducers/history.js b/app/javascript/flavours/glitch/reducers/history.js new file mode 100644 index 000000000..04f5f2fd1 --- /dev/null +++ b/app/javascript/flavours/glitch/reducers/history.js @@ -0,0 +1,28 @@ +import { HISTORY_FETCH_REQUEST, HISTORY_FETCH_SUCCESS, HISTORY_FETCH_FAIL } from 'flavours/glitch/actions/history'; +import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable'; + +const initialHistory = ImmutableMap({ + loading: false, + items: ImmutableList(), +}); + +const initialState = ImmutableMap(); + +export default function history(state = initialState, action) { + switch(action.type) { + case HISTORY_FETCH_REQUEST: + return state.update(action.statusId, initialHistory, history => history.withMutations(map => { + map.set('loading', true); + map.set('items', ImmutableList()); + })); + case HISTORY_FETCH_SUCCESS: + return state.update(action.statusId, initialHistory, history => history.withMutations(map => { + map.set('loading', false); + map.set('items', fromJS(action.history.map((x, i) => ({ ...x, account: x.account.id, original: i === 0 })).reverse())); + })); + case HISTORY_FETCH_FAIL: + return state.update(action.statusId, initialHistory, history => history.set('loading', false)); + default: + return state; + } +} |