From 26c69eb41feab5972c87cb5364072e4d3ecf1879 Mon Sep 17 00:00:00 2001 From: Ren Amamiya Date: Thu, 8 Oct 2026 05:00:55 +0700 Subject: [PATCH] Make browse cards fully clickable --- crates/workspace/src/panels/browse.rs | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/crates/workspace/src/panels/browse.rs b/crates/workspace/src/panels/browse.rs index b39319a8..29aee0e6 100644 --- a/crates/workspace/src/panels/browse.rs +++ b/crates/workspace/src/panels/browse.rs @@ -351,7 +351,6 @@ impl BrowsePanel { } fn render_card(&self, candidate: &GroupCandidate, cx: &mut Context) -> AnyElement { - let registry = GroupsRegistry::global(cx); let hide_avatar = AppSettings::get_hide_avatar(cx); let dock = self.dock.clone(); @@ -370,21 +369,8 @@ impl BrowsePanel { .display_about() .map(|about| SharedString::from(about.to_owned())); - let member = registry - .read(cx) - .group(&key, cx) - .is_some_and(|group| matches!(group.read(cx).membership(), Membership::Member)); - - let action = Button::new(format!("open-{seed}")) - .label(if member { "Open" } else { "Preview" }) - .small() - .ghost() - .on_click(move |_event, window, cx| { - Self::open_panel(&dock, key.clone(), window, cx); - }) - .into_any_element(); - v_flex() + .id(SharedString::from(format!("card-{seed}"))) .flex_1() .min_w_0() .h_full() @@ -392,6 +378,11 @@ impl BrowsePanel { .border_1() .border_color(cx.theme().border) .rounded(cx.theme().radius) + .cursor_pointer() + .hover(|this| { + this.border_color(cx.theme().border_focused) + .bg(cx.theme().surface_background) + }) .child( v_flex() .flex_1() @@ -425,8 +416,7 @@ impl BrowsePanel { .text_color(cx.theme().text_placeholder) .child(relay), ), - ) - .child(action), + ), ) .child( div() @@ -457,6 +447,9 @@ impl BrowsePanel { ), ), ) + .on_click(move |_event, window, cx| { + Self::open_panel(&dock, key.clone(), window, cx); + }) .into_any_element() } }