summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/ide/stores/mutations/file.js
diff options
context:
space:
mode:
authorPhil Hughes <me@iamphill.com>2018-03-21 10:05:08 +0000
committerPhil Hughes <me@iamphill.com>2018-03-22 10:33:19 +0000
commit51c64f3fc7180732621d60f939bfe6157165040f (patch)
treeeaa1154ec945cfc289de9d2fd3f54a906d74d43b /app/assets/javascripts/ide/stores/mutations/file.js
parent4718f22f5751f8d50bd7897ff4a967ccc5625c80 (diff)
downloadgitlab-ce-51c64f3fc7180732621d60f939bfe6157165040f.tar.gz
Added staged files state to IDE
Closes https://gitlab.com/gitlab-org/gitlab-ee/issues/4541
Diffstat (limited to 'app/assets/javascripts/ide/stores/mutations/file.js')
-rw-r--r--app/assets/javascripts/ide/stores/mutations/file.js28
1 files changed, 28 insertions, 0 deletions
diff --git a/app/assets/javascripts/ide/stores/mutations/file.js b/app/assets/javascripts/ide/stores/mutations/file.js
index 2500f13db7c..8e739a83270 100644
--- a/app/assets/javascripts/ide/stores/mutations/file.js
+++ b/app/assets/javascripts/ide/stores/mutations/file.js
@@ -1,4 +1,5 @@
import * as types from '../mutation_types';
+import { findIndexOfFile, findEntry } from '../utils';
export default {
[types.SET_FILE_ACTIVE](state, { path, active }) {
@@ -75,6 +76,33 @@ export default {
changedFiles: state.changedFiles.filter(f => f.path !== path),
});
},
+ [types.STAGE_CHANGE](state, file) {
+ const stagedFile = findEntry(state.stagedFiles, 'blob', file.name);
+
+ Object.assign(file, {
+ staged: true,
+ });
+
+ if (stagedFile) {
+ Object.assign(stagedFile, {
+ ...file,
+ });
+ } else {
+ state.stagedFiles.push({
+ ...file,
+ });
+ }
+ },
+ [types.UNSTAGE_CHANGE](state, file) {
+ const indexOfStagedFile = findIndexOfFile(state.stagedFiles, file);
+ const changedFile = findEntry(state.changedFiles, 'blob', file.name);
+
+ state.stagedFiles.splice(indexOfStagedFile, 1);
+
+ Object.assign(changedFile, {
+ staged: false,
+ });
+ },
[types.TOGGLE_FILE_CHANGED](state, { file, changed }) {
Object.assign(state.entries[file.path], {
changed,