summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ide/stores/mutations/file.js
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/ide/stores/mutations/file.js')
-rw-r--r--app/assets/javascripts/ide/stores/mutations/file.js26
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,
});
}
},