diff options
| author | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-14 14:07:21 +0200 |
|---|---|---|
| committer | Georgios Andreadis <g.andreadis@student.tudelft.nl> | 2017-09-23 10:06:02 +0200 |
| commit | f604406453f95c82c3e5e4294a51245661868bbe (patch) | |
| tree | 6282cc3eb3164ddd94052175f872c8fc2ee2f623 /src/containers | |
| parent | 7151ae60cf587a502a7e09d19ebd0fd33e761bf2 (diff) | |
First attempt at experiment list UI
Diffstat (limited to 'src/containers')
| -rw-r--r-- | src/containers/experiments/ExperimentListContainer.js | 27 | ||||
| -rw-r--r-- | src/containers/experiments/ExperimentRowContainer.js | 19 | ||||
| -rw-r--r-- | src/containers/modals/NewExperimentModal.js | 36 |
3 files changed, 82 insertions, 0 deletions
diff --git a/src/containers/experiments/ExperimentListContainer.js b/src/containers/experiments/ExperimentListContainer.js new file mode 100644 index 00000000..38e5a9f6 --- /dev/null +++ b/src/containers/experiments/ExperimentListContainer.js @@ -0,0 +1,27 @@ +import {connect} from "react-redux"; +import ExperimentListComponent from "../../components/experiments/ExperimentListComponent"; + +const mapStateToProps = state => { + if (!state.currentSimulationId) { + return { + experimentIds: [], + }; + } + + const experimentIds = state.objects.simulation[state.currentSimulationId].experimentIds; + if (experimentIds) { + return { + experimentIds, + }; + } + + return { + experimentIds: [], + }; +}; + +const ExperimentListContainer = connect( + mapStateToProps +)(ExperimentListComponent); + +export default ExperimentListContainer; diff --git a/src/containers/experiments/ExperimentRowContainer.js b/src/containers/experiments/ExperimentRowContainer.js new file mode 100644 index 00000000..99b35779 --- /dev/null +++ b/src/containers/experiments/ExperimentRowContainer.js @@ -0,0 +1,19 @@ +import {connect} from "react-redux"; +import ExperimentRowComponent from "../../components/experiments/ExperimentRowComponent"; + +const mapStateToProps = (state, ownProps) => { + const experiment = Object.assign({}, state.objects.experiment[ownProps.experimentId]); + experiment.trace = state.objects.trace[experiment.traceId]; + experiment.scheduler = state.objects.scheduler[experiment.schedulerName]; + experiment.path = state.objects.path[experiment.pathId]; + + return { + experiment, + }; +}; + +const ExperimentRowContainer = connect( + mapStateToProps +)(ExperimentRowComponent); + +export default ExperimentRowContainer; diff --git a/src/containers/modals/NewExperimentModal.js b/src/containers/modals/NewExperimentModal.js new file mode 100644 index 00000000..13aed74d --- /dev/null +++ b/src/containers/modals/NewExperimentModal.js @@ -0,0 +1,36 @@ +import {connect} from "react-redux"; +import {addExperiment} from "../../actions/experiments"; +import {closeNewExperimentModal} from "../../actions/modals/experiments"; +import NewExperimentModalComponent from "../../components/modals/custom-components/NewExperimentModalComponent"; + +const mapStateToProps = state => { + return { + show: state.modals.newExperimentModalVisible, + paths: Object.values(state.objects.path).filter(path => path.simulationId === state.currentSimulationId), + traces: Object.values(state.objects.trace), + schedulers: Object.values(state.objects.scheduler), + }; +}; + +const mapDispatchToProps = dispatch => { + return { + callback: (name, pathId, traceId, schedulerName) => { + if (name) { + dispatch(addExperiment({ + name, + pathId, + traceId, + schedulerName + })); + } + dispatch(closeNewExperimentModal()); + } + }; +}; + +const NewExperimentModal = connect( + mapStateToProps, + mapDispatchToProps +)(NewExperimentModalComponent); + +export default NewExperimentModal; |
