import { connect } from 'react-redux' import TopologyListComponent from '../../../../components/app/sidebars/project/TopologyListComponent' import { setCurrentTopology } from '../../../../actions/topology/building' import { openNewTopologyModal } from '../../../../actions/modals/topology' import { withRouter } from 'react-router-dom' import { getState } from '../../../../util/state-utils' import { deleteTopology } from '../../../../actions/topologies' const mapStateToProps = (state) => { let topologies = state.objects.project[state.currentProjectId] ? state.objects.project[state.currentProjectId].topologyIds.map((t) => state.objects.topology[t]) : [] if (topologies.filter((t) => !t).length > 0) { topologies = [] } return { currentTopologyId: state.currentTopologyId, topologies, } } const mapDispatchToProps = (dispatch, ownProps) => { return { onChooseTopology: async (id) => { dispatch(setCurrentTopology(id)) const state = await getState(dispatch) ownProps.history.push(`/projects/${state.currentProjectId}`) }, onNewTopology: () => { dispatch(openNewTopologyModal()) }, onDeleteTopology: async (id) => { if (id) { const state = await getState(dispatch) dispatch(deleteTopology(id)) dispatch(setCurrentTopology(state.objects.project[state.currentProjectId].topologyIds[0])) ownProps.history.push(`/projects/${state.currentProjectId}`) } }, } } const TopologyListContainer = withRouter(connect(mapStateToProps, mapDispatchToProps)(TopologyListComponent)) export default TopologyListContainer