From a7f3b22051bfd184c69109ec7a57b529b73b7ed9 Mon Sep 17 00:00:00 2001 From: Cole Miller Date: Thu, 13 Mar 2025 16:17:23 -0400 Subject: [PATCH] Don't render "Initialize Repository" button when no worktrees (#26713) Closes #26676 Release Notes: - Fixed the git panel to not show an "Initialize Repositories" button in empty projects --- crates/git_ui/src/git_panel.rs | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/crates/git_ui/src/git_panel.rs b/crates/git_ui/src/git_panel.rs index f42b085480..6a72409f12 100644 --- a/crates/git_ui/src/git_panel.rs +++ b/crates/git_ui/src/git_panel.rs @@ -3048,21 +3048,24 @@ impl GitPanel { "No Git repositories" }, )) - .children(self.active_repository.is_none().then(|| { - h_flex().w_full().justify_around().child( - panel_filled_button("Initialize Repository") - .tooltip(Tooltip::for_action_title_in( - "git init", - &git::Init, - &self.focus_handle, - )) - .on_click(move |_, _, cx| { - cx.defer(move |cx| { - cx.dispatch_action(&git::Init); - }) - }), - ) - })) + .children({ + let worktree_count = self.project.read(cx).visible_worktrees(cx).count(); + (worktree_count > 0 && self.active_repository.is_none()).then(|| { + h_flex().w_full().justify_around().child( + panel_filled_button("Initialize Repository") + .tooltip(Tooltip::for_action_title_in( + "git init", + &git::Init, + &self.focus_handle, + )) + .on_click(move |_, _, cx| { + cx.defer(move |cx| { + cx.dispatch_action(&git::Init); + }) + }), + ) + }) + }) .text_ui_sm(cx) .mx_auto() .text_color(Color::Placeholder.color(cx)),