diff --git a/app/containers/App.js b/app/containers/App.js index 0d6e61157b..c709efcc44 100644 --- a/app/containers/App.js +++ b/app/containers/App.js @@ -25,8 +25,7 @@ class App extends Component { } render () { - const {actions, modals, workspaces} = this.props; - const {requests, requestGroups, responses} = workspaces; + const {actions, modals, workspaces, requestGroups, requests, responses} = this.props; const activeRequest = requests.active; const activeResponse = activeRequest ? responses[activeRequest._id] : undefined; @@ -95,15 +94,15 @@ App.propTypes = { }) }).isRequired, workspaces: PropTypes.shape({ - active: PropTypes.object, - responses: PropTypes.object.isRequired, - requestGroups: PropTypes.shape({ - all: PropTypes.array.isRequired - }).isRequired, - requests: PropTypes.shape({ - all: PropTypes.array.isRequired, - active: PropTypes.object - }).isRequired + active: PropTypes.object + }).isRequired, + responses: PropTypes.object.isRequired, + requestGroups: PropTypes.shape({ + all: PropTypes.array.isRequired + }).isRequired, + requests: PropTypes.shape({ + all: PropTypes.array.isRequired, + active: PropTypes.object }).isRequired, modals: PropTypes.array.isRequired }; @@ -112,6 +111,9 @@ function mapStateToProps (state) { return { actions: state.actions, workspaces: state.workspaces, + requestGroups: state.requestGroups, + requests: state.requests, + responses: state.responses, modals: state.modals }; } diff --git a/app/redux/modules/workspaces.js b/app/redux/modules/workspaces.js index eb8af4d3b0..325284721f 100644 --- a/app/redux/modules/workspaces.js +++ b/app/redux/modules/workspaces.js @@ -1,9 +1,5 @@ import {combineReducers} from 'redux' -import responsesReducer from './responses' -import requestsReducer from './requests' -import requestGroupsReducer from './requestGroups' - export const WORKSPACE_UPDATE = 'workspaces/update'; export const WORKSPACE_DELETE = 'workspaces/delete'; @@ -55,36 +51,11 @@ function activeReducer (state = null, action) { } } -const workspaceReducer = combineReducers({ +export default combineReducers({ all: allReducer, - active: activeReducer, - - // Nested resources - responses: responsesReducer, - requests: requestsReducer, - requestGroups: requestGroupsReducer + active: activeReducer }); -export default function (state = {}, action) { - // Call the reducer manually, so we can check if the active workspace has changed - let newState = workspaceReducer(state, action); - - const oldActiveId = state.active && state.active._id; - const newActiveId = newState.active && newState.active._id; - const activeWorkspaceChanged = oldActiveId !== newActiveId; - - // Clear all of these things if the workspace has changed - if (activeWorkspaceChanged) { - newState = Object.assign({}, newState, { - responses: responsesReducer(undefined, action), - requests: requestsReducer(undefined, action), - requestGroups: requestGroupsReducer(undefined, action) - }) - } - - return newState; -} - // ~~~~~~~ // // ACTIONS // diff --git a/app/redux/reducer.js b/app/redux/reducer.js index d0ed39b34a..49a1d27824 100644 --- a/app/redux/reducer.js +++ b/app/redux/reducer.js @@ -1,12 +1,18 @@ import {combineReducers} from 'redux' import workspaces from './modules/workspaces' +import requestGroups from './modules/requestGroups' +import requests from './modules/requests' +import responses from './modules/responses' import global from './modules/global' import modals from './modules/modals' import entities from './modules/entities' export default combineReducers({ workspaces, + responses, + requests, + requestGroups, modals, global, entities