From a0269aba77f3f9c8d7676b6eb5113c2f57a200a7 Mon Sep 17 00:00:00 2001 From: Nate Butler Date: Tue, 4 Feb 2025 09:13:24 -0500 Subject: [PATCH] theme_selector: Add a button to open the extension store (#24195) Adds a button to the theme selector to help people find more themes in the extension store. ![CleanShot 2025-02-04 at 09 00 20@2x](https://github.com/user-attachments/assets/fd430ff5-b0e3-4be0-ac4a-eeaf0093089b) Release Notes: - Added a way to access the extension store from the theme selector to make it easier to find new themes. --- crates/theme_selector/src/theme_selector.rs | 30 +++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/crates/theme_selector/src/theme_selector.rs b/crates/theme_selector/src/theme_selector.rs index ee549091ff..aaca1b0210 100644 --- a/crates/theme_selector/src/theme_selector.rs +++ b/crates/theme_selector/src/theme_selector.rs @@ -13,6 +13,7 @@ use theme::{Appearance, Theme, ThemeMeta, ThemeRegistry, ThemeSettings}; use ui::{prelude::*, v_flex, ListItem, ListItemSpacing}; use util::ResultExt; use workspace::{ui::HighlightedLabel, ModalView, Workspace}; +use zed_actions::Extensions; use crate::icon_theme_selector::{IconThemeSelector, IconThemeSelectorDelegate}; @@ -321,4 +322,33 @@ impl PickerDelegate for ThemeSelectorDelegate { )), ) } + + fn render_footer( + &self, + _: &mut Window, + cx: &mut Context>, + ) -> Option { + Some( + h_flex() + .w_full() + .p_2() + .gap_2() + .border_t_1() + .border_color(cx.theme().colors().border_variant) + .child( + Button::new("docs", "Theme Docs").on_click(cx.listener(|_, _, _, cx| { + cx.open_url("https://zed.dev/docs/themes"); + })), + ) + .child(div().flex_grow()) + .child( + Button::new("more-themes", "Install Themes").on_click(cx.listener({ + move |_, _, window, cx| { + window.dispatch_action(Box::new(Extensions), cx); + } + })), + ) + .into_any_element(), + ) + } }