From f03c251f00b6c683cd899ecd10110fe7a031f780 Mon Sep 17 00:00:00 2001 From: Ben Wheeler <wheeler.benjamin@gmail.com> Date: Mon, 10 Dec 2018 12:41:44 -0500 Subject: [PATCH] after loading project, switch to code tab --- src/lib/project-fetcher-hoc.jsx | 16 ++++++++++++++++ src/reducers/project-state.js | 6 ++++++ 2 files changed, 22 insertions(+) diff --git a/src/lib/project-fetcher-hoc.jsx b/src/lib/project-fetcher-hoc.jsx index 1879d69e5..9f82fb3d7 100644 --- a/src/lib/project-fetcher-hoc.jsx +++ b/src/lib/project-fetcher-hoc.jsx @@ -8,12 +8,18 @@ import {setProjectUnchanged} from '../reducers/project-changed'; import { LoadingStates, defaultProjectId, + getIsCreatingNew, getIsFetchingWithId, + getIsLoading, getIsShowingProject, onFetchedProjectData, projectError, setProjectId } from '../reducers/project-state'; +import { + activateTab, + BLOCKS_TAB_INDEX +} from '../reducers/editor-tab'; import analytics from './analytics'; import log from './log'; @@ -59,6 +65,9 @@ const ProjectFetcherHOC = function (WrappedComponent) { if (this.props.isShowingProject && !prevProps.isShowingProject) { this.props.onProjectLoaded(); } + if (this.props.isShowingProject && (prevProps.isLoadingProject || prevProps.isCreatingNew)) { + this.props.onActivateTab(BLOCKS_TAB_INDEX); + } } fetchProject (projectId, loadingState) { return storage @@ -89,7 +98,9 @@ const ProjectFetcherHOC = function (WrappedComponent) { /* eslint-disable no-unused-vars */ assetHost, intl, + isLoadingProject: isLoadingProjectProp, loadingState, + onActivateTab, onError: onErrorProp, onFetchedProjectData: onFetchedProjectDataProp, projectHost, @@ -113,7 +124,9 @@ const ProjectFetcherHOC = function (WrappedComponent) { canSave: PropTypes.bool, intl: intlShape.isRequired, isFetchingWithId: PropTypes.bool, + isLoadingProject: PropTypes.bool, loadingState: PropTypes.oneOf(LoadingStates), + onActivateTab: PropTypes.func, onError: PropTypes.func, onFetchedProjectData: PropTypes.func, projectHost: PropTypes.string, @@ -127,12 +140,15 @@ const ProjectFetcherHOC = function (WrappedComponent) { }; const mapStateToProps = state => ({ + isCreatingNew: getIsCreatingNew(state.scratchGui.projectState.loadingState), isFetchingWithId: getIsFetchingWithId(state.scratchGui.projectState.loadingState), + isLoadingProject: getIsLoading(state.scratchGui.projectState.loadingState), isShowingProject: getIsShowingProject(state.scratchGui.projectState.loadingState), loadingState: state.scratchGui.projectState.loadingState, reduxProjectId: state.scratchGui.projectState.projectId }); const mapDispatchToProps = dispatch => ({ + onActivateTab: tab => dispatch(activateTab(tab)), onError: error => dispatch(projectError(error)), onFetchedProjectData: (projectData, loadingState) => dispatch(onFetchedProjectData(projectData, loadingState)), diff --git a/src/reducers/project-state.js b/src/reducers/project-state.js index edec52a53..a58784424 100644 --- a/src/reducers/project-state.js +++ b/src/reducers/project-state.js @@ -58,6 +58,11 @@ const getIsLoadingWithId = loadingState => ( loadingState === LoadingState.LOADING_VM_WITH_ID || loadingState === LoadingState.LOADING_VM_NEW_DEFAULT ); +const getIsLoading = loadingState => ( + loadingState === LoadingState.LOADING_VM_FILE_UPLOAD || + loadingState === LoadingState.LOADING_VM_WITH_ID || + loadingState === LoadingState.LOADING_VM_NEW_DEFAULT +); const getIsCreatingNew = loadingState => ( loadingState === LoadingState.CREATING_NEW ); @@ -488,6 +493,7 @@ export { getIsError, getIsFetchingWithId, getIsFetchingWithoutId, + getIsLoading, getIsLoadingWithId, getIsManualUpdating, getIsRemixing, -- GitLab