summaryrefslogtreecommitdiff
path: root/frontend/src/containers/modals/NewScenarioModal.js
blob: 6a87d697e0277f53aa5130f12c82d007c17c6864 (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
35
36
37
38
39
40
41
42
43
44
45
import { connect } from 'react-redux'
import NewScenarioModalComponent from '../../components/modals/custom-components/NewScenarioModalComponent'
import { addScenario } from '../../actions/scenarios'
import { closeNewScenarioModal } from '../../actions/modals/scenarios'

const mapStateToProps = (state) => {
    let topologies =
        state.currentProjectId !== '-1'
            ? state.objects.project[state.currentProjectId].topologyIds.map((t) => state.objects.topology[t])
            : []
    if (topologies.filter((t) => !t).length > 0) {
        topologies = []
    }

    return {
        show: state.modals.newScenarioModalVisible,
        currentPortfolioId: state.currentPortfolioId,
        traces: Object.values(state.objects.trace),
        topologies,
        schedulers: Object.values(state.objects.scheduler),
    }
}

const mapDispatchToProps = (dispatch) => {
    return {
        callback: (name, portfolioId, trace, topology, operational) => {
            if (name) {
                dispatch(
                    addScenario({
                        portfolioId,
                        name,
                        trace,
                        topology,
                        operational,
                    })
                )
            }
            dispatch(closeNewScenarioModal())
        },
    }
}

const NewScenarioModal = connect(mapStateToProps, mapDispatchToProps)(NewScenarioModalComponent)

export default NewScenarioModal