From e2f273935e33329684ea88f02975f8a37548cfe5 Mon Sep 17 00:00:00 2001 From: Phil Hughes Date: Thu, 22 Mar 2018 17:19:44 +0000 Subject: toggling viewer mode closes the pending tab then opens the file in edit mode --- .../ide/components/commit_sidebar/list_item.vue | 2 -- app/assets/javascripts/ide/components/ide.vue | 1 + app/assets/javascripts/ide/components/repo_tabs.vue | 18 ++++++++++++++++-- app/assets/javascripts/ide/stores/actions/file.js | 12 +++++++++--- app/assets/javascripts/ide/stores/mutations/file.js | 7 +++++++ 5 files changed, 33 insertions(+), 7 deletions(-) diff --git a/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue b/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue index e443bd4e3fa..421be7fb3cb 100644 --- a/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue +++ b/app/assets/javascripts/ide/components/commit_sidebar/list_item.vue @@ -1,7 +1,6 @@ @@ -54,7 +68,7 @@ export default { :viewer="viewer" :show-shadow="showShadow" :has-changes="hasChanges" - @click="updateViewer" + @click="openFileViewer" /> diff --git a/app/assets/javascripts/ide/stores/actions/file.js b/app/assets/javascripts/ide/stores/actions/file.js index 5a39bfb02c4..755e8e14989 100644 --- a/app/assets/javascripts/ide/stores/actions/file.js +++ b/app/assets/javascripts/ide/stores/actions/file.js @@ -18,9 +18,9 @@ export const closeFile = ({ commit, state, getters, dispatch }, file) => { commit(types.TOGGLE_FILE_OPEN, path); commit(types.SET_FILE_ACTIVE, { path, active: false }); - if (state.openFiles.length > 0 && fileWasActive) { + if (getters.tabs.length > 0 && fileWasActive) { const nextIndexToOpen = indexOfClosedFile === 0 ? 0 : indexOfClosedFile - 1; - const nextFileToOpen = state.entries[state.openFiles[nextIndexToOpen].path]; + const nextFileToOpen = state.openFiles[nextIndexToOpen]; router.push(`/project${nextFileToOpen.url}`); } else if (!state.openFiles.length) { @@ -133,6 +133,12 @@ export const discardFileChanges = ({ state, commit }, path) => { eventHub.$emit(`editor.update.model.content.${file.path}`, file.raw); }; -export const openPendingTab = ({ commit }, file) => { +export const openPendingTab = ({ commit, state }, file) => { commit(types.ADD_PENDING_TAB, file); + + router.push(`/project/${file.projectId}/tree/${state.currentBranchId}/`); +}; + +export const removePendingTab = ({ commit }, file) => { + commit(types.REMOVE_PENDING_TAB, file); }; diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index 915126f10eb..e9945055e6f 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -5,6 +5,13 @@ export default { Object.assign(state.entries[path], { active, }); + + Object.assign(state, { + pendingTabs: state.pendingTabs.map(f => ({ + ...f, + active: false, + })), + }); }, [types.TOGGLE_FILE_OPEN](state, path) { Object.assign(state.entries[path], { -- cgit v1.2.1