Fix git panel's suggested commit message not updating (#25708)

Closes #ISSUE

Release Notes:

- N/A
This commit is contained in:
Cole Miller 2025-02-27 12:27:09 -05:00 committed by GitHub
parent cc3b5c729e
commit 6856e869fc
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 20 additions and 11 deletions

View file

@ -165,7 +165,7 @@ impl CommitModal {
git_panel.set_modal_open(true, cx);
let buffer = git_panel.commit_message_buffer(cx).clone();
let project = git_panel.project.clone();
cx.new(|cx| commit_message_editor(buffer, project.clone(), false, window, cx))
cx.new(|cx| commit_message_editor(buffer, None, project.clone(), false, window, cx))
});
let commit_message = commit_editor.read(cx).text(cx);

View file

@ -170,7 +170,7 @@ pub struct GitPanel {
pending_remote_operations: RemoteOperations,
pub(crate) active_repository: Option<Entity<Repository>>,
commit_editor: Entity<Editor>,
suggested_commit_message: Option<String>,
pub(crate) suggested_commit_message: Option<String>,
conflicted_count: usize,
conflicted_staged_count: usize,
current_modifiers: Modifiers,
@ -212,6 +212,7 @@ impl Drop for RemoteOperationGuard {
pub(crate) fn commit_message_editor(
commit_message_buffer: Entity<Buffer>,
placeholder: Option<&str>,
project: Entity<Project>,
in_panel: bool,
window: &mut Window,
@ -232,7 +233,8 @@ pub(crate) fn commit_message_editor(
commit_editor.set_show_gutter(false, cx);
commit_editor.set_show_wrap_guides(false, cx);
commit_editor.set_show_indent_guides(false, cx);
commit_editor.set_placeholder_text("Enter commit message", cx);
let placeholder = placeholder.unwrap_or("Enter commit message");
commit_editor.set_placeholder_text(placeholder, cx);
commit_editor
}
@ -260,7 +262,7 @@ impl GitPanel {
// Once the active git repo is set, this buffer will be replaced.
let temporary_buffer = cx.new(|cx| Buffer::local("", cx));
let commit_editor = cx.new(|cx| {
commit_message_editor(temporary_buffer, project.clone(), true, window, cx)
commit_message_editor(temporary_buffer, None, project.clone(), true, window, cx)
});
commit_editor.update(cx, |editor, cx| {
editor.clear(window, cx);
@ -1293,13 +1295,13 @@ impl GitPanel {
fn update_editor_placeholder(&mut self, cx: &mut Context<Self>) {
let suggested_commit_message = self.suggest_commit_message();
self.suggested_commit_message = suggested_commit_message.clone();
let suggested_commit_message = suggested_commit_message
.as_deref()
.unwrap_or("Enter commit message");
if let Some(suggested_commit_message) = suggested_commit_message {
self.commit_editor.update(cx, |editor, cx| {
editor.set_placeholder_text(Arc::from(suggested_commit_message), cx)
});
}
self.commit_editor.update(cx, |editor, cx| {
editor.set_placeholder_text(Arc::from(suggested_commit_message), cx)
});
cx.notify();
}
@ -1581,7 +1583,14 @@ impl GitPanel {
!= Some(&buffer)
{
git_panel.commit_editor = cx.new(|cx| {
commit_message_editor(buffer, git_panel.project.clone(), true, window, cx)
commit_message_editor(
buffer,
git_panel.suggested_commit_message.as_deref(),
git_panel.project.clone(),
true,
window,
cx,
)
});
}
})