diff options
Diffstat (limited to 'app/assets/javascripts/ide/stores/mutations/file.js')
-rw-r--r-- | app/assets/javascripts/ide/stores/mutations/file.js | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js index 0d878d6c6e5..25faac7c828 100644 --- a/app/assets/javascripts/ide/stores/mutations/file.js +++ b/app/assets/javascripts/ide/stores/mutations/file.js @@ -114,24 +114,30 @@ export default { }), }); } else { - Object.assign(state, { - entries: Object.assign(state.entries, { - [file.path]: Object.assign(state.entries[file.path], { - opened: false, - }), - }), - openFiles: state.openFiles.map(f => { + const openFile = state.openFiles.find(f => f.path === file.path); + const openFiles = state.openFiles + .concat(openFile ? null : file) + .filter(f => f) + .reduce((acc, f) => { if (f.path === file.path) { - return { + return acc.concat({ ...f, active: true, pending: true, key: `pending-${f.key}`, - }; + }); } - return f; + return acc.concat(f); + }, []); + + Object.assign(state, { + entries: Object.assign(state.entries, { + [file.path]: Object.assign(state.entries[file.path], { + opened: false, + }), }), + openFiles, }); } }, |