Skip to content

Commit eb20dd4

Browse files
committed
fix: use queue for actions in source control view
close #517
1 parent 833bd2b commit eb20dd4

File tree

1 file changed

+46
-30
lines changed

1 file changed

+46
-30
lines changed

src/ui/sourceControl/sourceControl.svelte

Lines changed: 46 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -62,29 +62,33 @@
6262
plugin.setState(PluginState.idle);
6363
return false;
6464
}
65-
plugin.gitManager
66-
.commit(commitMessage)
67-
.then(() => {
68-
if (commitMessage !== plugin.settings.commitMessage) {
69-
commitMessage = "";
70-
}
71-
plugin.setUpAutoBackup();
72-
})
73-
.finally(triggerRefresh);
65+
plugin.promiseQueue.addTask(() =>
66+
plugin.gitManager
67+
.commit(commitMessage)
68+
.then(() => {
69+
if (commitMessage !== plugin.settings.commitMessage) {
70+
commitMessage = "";
71+
}
72+
plugin.setUpAutoBackup();
73+
})
74+
.finally(triggerRefresh)
75+
);
7476
}
7577
}
7678
7779
async function backup() {
7880
loading = true;
7981
if (status) {
80-
plugin
81-
.createBackup(false, false, commitMessage)
82-
.then(() => {
83-
if (commitMessage !== plugin.settings.commitMessage) {
84-
commitMessage = "";
85-
}
86-
})
87-
.finally(triggerRefresh);
82+
plugin.promiseQueue.addTask(() =>
83+
plugin
84+
.createBackup(false, false, commitMessage)
85+
.then(() => {
86+
if (commitMessage !== plugin.settings.commitMessage) {
87+
commitMessage = "";
88+
}
89+
})
90+
.finally(triggerRefresh)
91+
);
8892
}
8993
}
9094
@@ -151,36 +155,48 @@
151155
152156
function stageAll() {
153157
loading = true;
154-
plugin.gitManager.stageAll({ status: status }).finally(triggerRefresh);
158+
plugin.promiseQueue.addTask(() =>
159+
plugin.gitManager
160+
.stageAll({ status: status })
161+
.finally(triggerRefresh)
162+
);
155163
}
156164
157165
function unstageAll() {
158166
loading = true;
159-
plugin.gitManager
160-
.unstageAll({ status: status })
161-
.finally(triggerRefresh);
167+
plugin.promiseQueue.addTask(() =>
168+
plugin.gitManager
169+
.unstageAll({ status: status })
170+
.finally(triggerRefresh)
171+
);
162172
}
163173
164174
function push() {
165175
loading = true;
166-
plugin.push().finally(triggerRefresh);
176+
plugin.promiseQueue.addTask(() =>
177+
plugin.push().finally(triggerRefresh)
178+
);
167179
}
168180
function pull() {
169181
loading = true;
170-
plugin.pullChangesFromRemote().finally(triggerRefresh);
182+
plugin.promiseQueue.addTask(() =>
183+
plugin.pullChangesFromRemote().finally(triggerRefresh)
184+
);
171185
}
172186
function discard() {
173187
new DiscardModal(view.app, false, plugin.gitManager.getVaultPath("/"))
174188
.myOpen()
175189
.then((shouldDiscard) => {
176190
if (shouldDiscard === true) {
177-
plugin.gitManager
178-
.discardAll({
179-
status: plugin.cachedStatus,
180-
})
181-
.finally(() => {
182-
dispatchEvent(new CustomEvent("git-refresh"));
183-
});
191+
plugin.promiseQueue.addTask(() =>
192+
plugin.gitManager
193+
.discardAll({
194+
status: plugin.cachedStatus,
195+
})
196+
.finally(() => {
197+
dispatchEvent(new CustomEvent("git-refresh"));
198+
})
199+
);
184200
}
185201
});
186202
}

0 commit comments

Comments
 (0)