git_ui: Update section header checkboxes immediately on stage/unstage all (#57148)
Some checks are pending
Congratsbot / check-author (push) Waiting to run
Congratsbot / congrats (push) Blocked by required conditions
run_tests / orchestrate (push) Waiting to run
run_tests / check_style (push) Waiting to run
run_tests / clippy_windows (push) Blocked by required conditions
run_tests / clippy_linux (push) Blocked by required conditions
run_tests / clippy_mac (push) Blocked by required conditions
run_tests / clippy_mac_x86_64 (push) Blocked by required conditions
run_tests / run_tests_windows (push) Blocked by required conditions
run_tests / run_tests_linux (push) Blocked by required conditions
run_tests / run_tests_mac (push) Blocked by required conditions
run_tests / miri_scheduler (push) Blocked by required conditions
run_tests / doctests (push) Blocked by required conditions
run_tests / check_workspace_binaries (push) Blocked by required conditions
run_tests / build_visual_tests_binary (push) Blocked by required conditions
run_tests / check_wasm (push) Blocked by required conditions
run_tests / check_dependencies (push) Blocked by required conditions
run_tests / check_docs (push) Blocked by required conditions
run_tests / check_licenses (push) Blocked by required conditions
run_tests / check_scripts (push) Blocked by required conditions
run_tests / check_postgres_and_protobuf_migrations (push) Blocked by required conditions
run_tests / extension_tests (push) Blocked by required conditions
run_tests / tests_pass (push) Blocked by required conditions
deploy_nightly_docs / deploy_docs (push) Has been skipped

Release Notes:

- Fixed Stash All / Unstash All checkbox UI delay issue

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
This commit is contained in:
Xiaobo Liu 2026-06-01 04:04:06 +08:00 committed by GitHub
parent 315d474c2e
commit 8734d01903
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -1743,17 +1743,14 @@ impl GitPanel {
cx.spawn({
async move |this, cx| {
let result = this
.update(cx, |this, cx| {
let task = active_repository.update(cx, |repo, cx| {
.update(cx, |_this, cx| {
active_repository.update(cx, |repo, cx| {
if stage {
repo.stage_all(cx)
} else {
repo.unstage_all(cx)
}
});
this.update_counts(active_repository.read(cx));
cx.notify();
task
})
})?
.await;
@ -1761,6 +1758,7 @@ impl GitPanel {
if let Err(err) = result {
this.show_error_toast(if stage { "add" } else { "reset" }, err, cx);
}
this.update_counts(active_repository.read(cx));
cx.notify()
})
}