import { combineReducers } from "redux"; import { OPEN_EXPERIMENT_SUCCEEDED } from "../actions/experiments"; import { CLOSE_NEW_EXPERIMENT_MODAL, OPEN_NEW_EXPERIMENT_MODAL } from "../actions/modals/experiments"; import { CLOSE_DELETE_PROFILE_MODAL, OPEN_DELETE_PROFILE_MODAL } from "../actions/modals/profile"; import { CLOSE_NEW_SIMULATION_MODAL, OPEN_NEW_SIMULATION_MODAL } from "../actions/modals/simulations"; import { CLOSE_DELETE_MACHINE_MODAL, CLOSE_DELETE_RACK_MODAL, CLOSE_DELETE_ROOM_MODAL, CLOSE_EDIT_RACK_NAME_MODAL, CLOSE_EDIT_ROOM_NAME_MODAL, OPEN_DELETE_MACHINE_MODAL, OPEN_DELETE_RACK_MODAL, OPEN_DELETE_ROOM_MODAL, OPEN_EDIT_RACK_NAME_MODAL, OPEN_EDIT_ROOM_NAME_MODAL } from "../actions/modals/topology"; function modal(openAction, closeAction) { return function(state = false, action) { switch (action.type) { case openAction: return true; case closeAction: case OPEN_EXPERIMENT_SUCCEEDED: return false; default: return state; } }; } export const modals = combineReducers({ newSimulationModalVisible: modal( OPEN_NEW_SIMULATION_MODAL, CLOSE_NEW_SIMULATION_MODAL ), deleteProfileModalVisible: modal( OPEN_DELETE_PROFILE_MODAL, CLOSE_DELETE_PROFILE_MODAL ), editRoomNameModalVisible: modal( OPEN_EDIT_ROOM_NAME_MODAL, CLOSE_EDIT_ROOM_NAME_MODAL ), deleteRoomModalVisible: modal( OPEN_DELETE_ROOM_MODAL, CLOSE_DELETE_ROOM_MODAL ), editRackNameModalVisible: modal( OPEN_EDIT_RACK_NAME_MODAL, CLOSE_EDIT_RACK_NAME_MODAL ), deleteRackModalVisible: modal( OPEN_DELETE_RACK_MODAL, CLOSE_DELETE_RACK_MODAL ), deleteMachineModalVisible: modal( OPEN_DELETE_MACHINE_MODAL, CLOSE_DELETE_MACHINE_MODAL ), newExperimentModalVisible: modal( OPEN_NEW_EXPERIMENT_MODAL, CLOSE_NEW_EXPERIMENT_MODAL ) });