summaryrefslogtreecommitdiff
path: root/frontend/src/reducers/simulation-list.js
blob: 78f3c4fe18e1d488ae1a4896faa3595d9f3b4d0f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import { combineReducers } from 'redux'
import {
    ADD_SIMULATION_SUCCEEDED,
    DELETE_SIMULATION_SUCCEEDED,
    SET_AUTH_VISIBILITY_FILTER,
} from '../actions/simulations'
import { FETCH_AUTHORIZATIONS_OF_CURRENT_USER_SUCCEEDED } from '../actions/users'

export function authorizationsOfCurrentUser(state = [], action) {
    switch (action.type) {
        case FETCH_AUTHORIZATIONS_OF_CURRENT_USER_SUCCEEDED:
            return action.authorizationsOfCurrentUser
        case ADD_SIMULATION_SUCCEEDED:
            return [...state, action.authorization]
        case DELETE_SIMULATION_SUCCEEDED:
            return state.filter(authorization => authorization[1] !== action.id)
        default:
            return state
    }
}

export function authVisibilityFilter(state = 'SHOW_ALL', action) {
    switch (action.type) {
        case SET_AUTH_VISIBILITY_FILTER:
            return action.filter
        default:
            return state
    }
}

export const simulationList = combineReducers({
    authorizationsOfCurrentUser,
    authVisibilityFilter,
})