summaryrefslogtreecommitdiff
path: root/frontend/src/containers/experiments
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/src/containers/experiments')
-rw-r--r--frontend/src/containers/experiments/ExperimentListContainer.js28
-rw-r--r--frontend/src/containers/experiments/ExperimentRowContainer.js30
-rw-r--r--frontend/src/containers/experiments/NewExperimentButtonContainer.js15
3 files changed, 73 insertions, 0 deletions
diff --git a/frontend/src/containers/experiments/ExperimentListContainer.js b/frontend/src/containers/experiments/ExperimentListContainer.js
new file mode 100644
index 00000000..53bb1dad
--- /dev/null
+++ b/frontend/src/containers/experiments/ExperimentListContainer.js
@@ -0,0 +1,28 @@
+import { connect } from "react-redux";
+import ExperimentListComponent from "../../components/experiments/ExperimentListComponent";
+
+const mapStateToProps = state => {
+ if (
+ state.currentSimulationId === -1 ||
+ !("experimentIds" in state.objects.simulation[state.currentSimulationId])
+ ) {
+ return {
+ loading: true,
+ experimentIds: []
+ };
+ }
+
+ const experimentIds =
+ state.objects.simulation[state.currentSimulationId].experimentIds;
+ if (experimentIds) {
+ return {
+ experimentIds
+ };
+ }
+};
+
+const ExperimentListContainer = connect(mapStateToProps)(
+ ExperimentListComponent
+);
+
+export default ExperimentListContainer;
diff --git a/frontend/src/containers/experiments/ExperimentRowContainer.js b/frontend/src/containers/experiments/ExperimentRowContainer.js
new file mode 100644
index 00000000..96ebc3db
--- /dev/null
+++ b/frontend/src/containers/experiments/ExperimentRowContainer.js
@@ -0,0 +1,30 @@
+import { connect } from "react-redux";
+import { deleteExperiment } from "../../actions/experiments";
+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,
+ simulationId: state.currentSimulationId
+ };
+};
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onDelete: id => dispatch(deleteExperiment(id))
+ };
+};
+
+const ExperimentRowContainer = connect(mapStateToProps, mapDispatchToProps)(
+ ExperimentRowComponent
+);
+
+export default ExperimentRowContainer;
diff --git a/frontend/src/containers/experiments/NewExperimentButtonContainer.js b/frontend/src/containers/experiments/NewExperimentButtonContainer.js
new file mode 100644
index 00000000..60eb92a6
--- /dev/null
+++ b/frontend/src/containers/experiments/NewExperimentButtonContainer.js
@@ -0,0 +1,15 @@
+import { connect } from "react-redux";
+import { openNewExperimentModal } from "../../actions/modals/experiments";
+import NewExperimentButtonComponent from "../../components/experiments/NewExperimentButtonComponent";
+
+const mapDispatchToProps = dispatch => {
+ return {
+ onClick: () => dispatch(openNewExperimentModal())
+ };
+};
+
+const NewExperimentButtonContainer = connect(undefined, mapDispatchToProps)(
+ NewExperimentButtonComponent
+);
+
+export default NewExperimentButtonContainer;