diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index 83db566491203231a2f057c23bc028244df614cb..0d878d6c6e53dd05e939ed4476ad31d9a2d9a554 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -100,13 +100,7 @@ export default { const pendingTab = state.openFiles.find(f => f.path === file.path && f.pending); Object.assign(state, { - openFiles: state.openFiles.map(f => { - if (!f.pending) { - return Object.assign(f, { active: false }); - } - - return f; - }), + openFiles: state.openFiles.map(f => Object.assign(f, { active: false })), }); if (pendingTab) { @@ -121,11 +115,22 @@ export default { }); } else { Object.assign(state, { - openFiles: state.openFiles.concat({ - ...file, - active: true, - pending: true, - key: `pending-${file.key}`, + entries: Object.assign(state.entries, { + [file.path]: Object.assign(state.entries[file.path], { + opened: false, + }), + }), + openFiles: state.openFiles.map(f => { + if (f.path === file.path) { + return { + ...f, + active: true, + pending: true, + key: `pending-${f.key}`, + }; + } + + return f; }), }); }