summaryrefslogtreecommitdiff
path: root/src/containers/simulations/VisibleSimulationAuthList.js
blob: 578ae30346f8847c691298241d0f19fa4878d754 (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
import {connect} from "react-redux";
import SimulationList from "../../components/simulations/SimulationAuthList";
import {denormalize} from "../../store/denormalizer";

const getVisibleSimulationAuths = (simulationAuths, filter) => {
    switch (filter) {
        case 'SHOW_ALL':
            return simulationAuths;
        case 'SHOW_OWN':
            return simulationAuths.filter(simulationAuth => simulationAuth.authorizationLevel === "OWN");
        case 'SHOW_SHARED':
            return simulationAuths.filter(simulationAuth => simulationAuth.authorizationLevel !== "OWN");
        default:
            return simulationAuths;
    }
};

const mapStateToProps = state => {
    const denormalizedAuthorizations = state.simulationList.authorizationsOfCurrentUser.map(authorizationIds =>
        denormalize(state, "authorization", authorizationIds)
    );

    return {
        authorizations: getVisibleSimulationAuths(denormalizedAuthorizations, state.simulationList.authVisibilityFilter)
    };
};

const VisibleSimulationAuthList = connect(mapStateToProps)(SimulationList);

export default VisibleSimulationAuthList;