migrate icons to gpui-native-kit

This commit is contained in:
2026-11-10 04:11:42 +07:00
parent 8e8ceaf2db
commit 48d16bb33e
35 changed files with 224 additions and 114 deletions
+1 -1
View File
@@ -1,7 +1,7 @@
use std::rc::Rc;
use gpui::{App, AppContext, ClickEvent, ParentElement, Styled, Window, px};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::input::{Input, InputState};
use gpui_kit::component::notification::Notification;
+1 -1
View File
@@ -9,7 +9,7 @@ use gpui::{
Render, SharedString, StatefulInteractiveElement as _, Styled, Subscription, Task, WeakEntity,
Window, div, px, uniform_list,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::dock::{DockArea, DockPlacement, PanelHandle};
use gpui_kit::component::input::{Input, InputEvent, InputState};
+6 -5
View File
@@ -6,7 +6,7 @@ use gpui::{
Subscription, Task, WeakEntity, Window, div, px, rems,
};
use gpui_base::{Popup, Select};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::dock::{DockArea, DockPlacement, PanelHandle};
@@ -14,7 +14,8 @@ use gpui_kit::component::group_box::{GroupBox, GroupBoxVariants};
use gpui_kit::component::input::{Input, InputEvent, InputState, Textarea, TextareaState};
use gpui_kit::component::separator::Separator;
use gpui_kit::component::switch::Switch;
use gpui_kit::component::{ActiveTheme, Disableable, Icon, Sizable, WindowExt, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Disableable, Sizable, WindowExt, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nip29::{GroupCreateOptions, GroupKey, GroupsEvent, GroupsRegistry};
use nostr_sdk::prelude::*;
use settings::AppSettings;
@@ -379,9 +380,9 @@ impl NewGroup {
}))
.child(selected.to_owned())
.child(
Icon::new(IconName::ChevronDown)
.small()
.text_color(cx.theme().muted_foreground),
Icon::named(IconName::ChevronDown)
.size(ui::small_icon_size(cx))
.color(cx.theme().muted_foreground),
);
let select = Select::new("relay-select")
+1 -1
View File
@@ -7,7 +7,7 @@ use gpui::{
App, AppContext, Context, Div, Entity, IntoElement, ParentElement, Render, SharedString,
Styled, Task, Window, div, retain_all,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::clipboard::Clipboard;
+1 -1
View File
@@ -7,7 +7,7 @@ use gpui::{
ParentElement, Render, SharedString, Stateful, Styled, Subscription, Task, TextAlign,
WeakEntity, Window, div, rems,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::input::{Input, InputEvent, InputState};
+1 -1
View File
@@ -4,7 +4,7 @@ use gpui::{
AppContext, Context, Entity, IntoElement, ParentElement, Render, SharedString, Styled,
Subscription, Task, Window, div,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::input::{Input, InputEvent, InputState};
use gpui_kit::component::{ActiveTheme, WindowExt, h_flex, v_flex};
+14 -10
View File
@@ -7,17 +7,17 @@ use gpui::{
App, AppContext, Context, Div, Entity, InteractiveElement, IntoElement, ParentElement, Render,
SharedString, Styled, Subscription, Task, Window, div, px, relative, uniform_list,
};
use gpui_kit::assets::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::spinner::Spinner;
use gpui_kit::component::{ActiveTheme, Disableable, Icon, Sizable, WindowExt, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Disableable, Sizable, WindowExt, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use instant::Duration;
use nostr_sdk::prelude::*;
use person::{Directory, Person, PersonRegistry, shorten_pubkey};
use smallvec::{SmallVec, smallvec};
use state::{BOOTSTRAP_RELAYS, NostrAddress, NostrRegistry, TIMEOUT};
use ui::Avatar;
use ui::{Avatar, IconName};
pub fn init(public_key: PublicKey, window: &mut Window, cx: &mut App) -> Entity<Screening> {
cx.new(|cx| Screening::new(public_key, window, cx))
@@ -569,13 +569,17 @@ fn status_badge(status: Option<bool>, cx: &App) -> Div {
.flex_shrink_0()
.map(|this| {
if let Some(status) = status {
this.child(Icon::new(IconName::CircleCheck).small().text_color({
if status {
cx.theme().primary
} else {
cx.theme().muted_foreground
}
}))
this.child(
Icon::named(IconName::CircleCheck)
.size(ui::small_icon_size(cx))
.color({
if status {
cx.theme().primary
} else {
cx.theme().muted_foreground
}
}),
)
} else {
this.child(Spinner::new().small())
}
+1 -1
View File
@@ -11,7 +11,7 @@ use gpui::{
AnyElement, App, AppContext, Context, Entity, IntoElement, ParentElement, Render, Styled,
Subscription, Window, div,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::input::{Input, InputState};
use gpui_kit::component::kbd::Kbd;
+1 -1
View File
@@ -15,7 +15,7 @@ use gpui_base::dock::{
PanelView as BasePanelView, TabGroupContext, TabGroupRenderer,
};
use gpui_base::{ElementExt, InteractiveElementExt, Tab, Tabs};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::animation::{Lerp as _, ease_out_cubic};
use gpui_kit::component::button::{Button, ButtonVariants as _};
use gpui_kit::component::dock::{ClosePanel, PanelControl, PanelHandle, ToggleZoom};
+4 -3
View File
@@ -3,8 +3,9 @@ use gpui::{
App, Hsla, InteractiveElement, IntoElement, MouseButton, ParentElement, RenderOnce,
StatefulInteractiveElement, Styled, Window, div, px,
};
use gpui_kit::assets::IconName;
use gpui_kit::component::{ActiveTheme as _, Icon, Sizable as _, h_flex};
use gpui_kit::component::{ActiveTheme as _, h_flex};
use gpui_native_kit::icons::Icon;
use ui::IconName;
use super::TAB_BAR_HEIGHT;
@@ -131,7 +132,7 @@ impl RenderOnce for ControlIcon {
}
})
})
.child(Icon::new(self.icon()).small())
.child(Icon::named(self.icon()).size(ui::small_icon_size(cx)))
}
}
+7 -7
View File
@@ -9,19 +9,19 @@ use gpui::{
size, transparent_black,
};
use gpui_base::{VirtualListScrollHandle, v_virtual_list};
use gpui_kit::assets::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::dock::{DockArea, DockPlacement, Panel, PanelEvent, PanelHandle};
use gpui_kit::component::input::{Input, InputEvent, InputState};
use gpui_kit::component::notification::Notification;
use gpui_kit::component::scroll::Scrollbar;
use gpui_kit::component::{ActiveTheme, Icon, Sizable, WindowExt, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Sizable, WindowExt, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nip29::{Discovery, GroupCandidate, GroupKey, GroupsEvent, GroupsRegistry, Membership};
use nostr_sdk::prelude::{RelayUrl, Timestamp};
use settings::AppSettings;
use smallvec::{SmallVec, smallvec};
use ui::Avatar;
use ui::{Avatar, IconName};
const TITLE: &str = "Browse";
const INPUT_PLACEHOLDER: &str = "wss://relay.example.com";
@@ -437,7 +437,7 @@ impl BrowsePanel {
.w_full()
.gap_1p5()
.text_color(cx.theme().muted_foreground)
.child(Icon::new(IconName::Book))
.child(Icon::named(IconName::Book))
.child(
div()
.text_xs()
@@ -464,9 +464,9 @@ impl Panel for BrowsePanel {
.gap_1()
.text_xs()
.child(
Icon::new(IconName::Compass)
.small()
.text_color(cx.theme().muted_foreground),
Icon::named(IconName::Compass)
.size(ui::small_icon_size(cx))
.color(cx.theme().muted_foreground),
)
.child(TITLE)
.into_any_element()
+1 -1
View File
@@ -7,7 +7,7 @@ use gpui::{
IntoElement, ParentElement, Render, SharedString, Styled, Subscription, Task, TextAlign,
Window, div, rems, retain_all,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::dock::{Panel, PanelEvent};
+5 -5
View File
@@ -9,17 +9,17 @@ use gpui::{
InteractiveElement, IntoElement, ParentElement, Render, SharedString,
StatefulInteractiveElement, Styled, Subscription, Task, WeakEntity, Window, div, svg,
};
use gpui_kit::assets::IconName;
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::dock::{DockArea, DockPlacement, Panel, PanelEvent, PanelHandle};
use gpui_kit::component::scroll::ScrollableElement;
use gpui_kit::component::{ActiveTheme, Icon, Sizable, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Sizable, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nostr_sdk::prelude::*;
use person::PersonRegistry;
use smallvec::{SmallVec, smallvec};
use state::{NostrRegistry, StateEvent};
use ui::Avatar;
use ui::{Avatar, IconName};
use super::browse;
use crate::dock::add_panel_to;
@@ -458,7 +458,7 @@ impl GreeterPanel {
.w_full()
.child(
Nav::new("browse-group")
.prefix(Icon::new(IconName::Compass))
.prefix(Icon::named(IconName::Compass))
.label("Browse Public Groups")
.text_sm()
.on_click(cx.listener(|this, _, window, cx| {
@@ -474,7 +474,7 @@ impl GreeterPanel {
)
.child(
Nav::new("browse-posts")
.prefix(Icon::new(IconName::Link))
.prefix(Icon::named(IconName::Link))
.label("Browse Nostr via Jumble")
.text_sm()
.on_click(|_, _, cx| {
+6 -5
View File
@@ -2,9 +2,10 @@ use gpui::{
App, AppContext, Context, Entity, EventEmitter, FocusHandle, Focusable, IntoElement,
ParentElement, Render, SharedString, Styled, Window,
};
use gpui_kit::assets::IconName;
use gpui_kit::component::dock::{Panel, PanelEvent};
use gpui_kit::component::{ActiveTheme, Icon, Sizable, h_flex};
use gpui_kit::component::{ActiveTheme, h_flex};
use gpui_native_kit::icons::Icon;
use ui::IconName;
pub fn init(window: &mut Window, cx: &mut App) -> Entity<InboxPanel> {
cx.new(|cx| InboxPanel::new(window, cx))
@@ -35,9 +36,9 @@ impl Panel for InboxPanel {
h_flex()
.gap_1p5()
.child(
Icon::new(IconName::Inbox)
.small()
.text_color(cx.theme().muted_foreground),
Icon::named(IconName::Inbox)
.size(ui::small_icon_size(cx))
.color(cx.theme().muted_foreground),
)
.child(self.name.clone())
.into_any_element()
+5 -4
View File
@@ -8,7 +8,8 @@ use gpui::{
};
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::menu::{ContextMenuExt as _, PopupMenuItem};
use gpui_kit::component::{ActiveTheme, Icon, Sizable, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Sizable, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nip29::Group;
use nostr_sdk::prelude::*;
use settings::AppSettings;
@@ -231,9 +232,9 @@ impl Sidebar {
Nav::new(label)
.label(label)
.suffix(
Icon::new(icon)
.small()
.text_color(cx.theme().muted_foreground),
Icon::named(icon)
.size(ui::small_icon_size(cx))
.color(cx.theme().muted_foreground),
)
.text_xs()
.font_semibold()
+4 -3
View File
@@ -16,7 +16,8 @@ use gpui_kit::component::dialog::DialogButtonProps;
use gpui_kit::component::menu::{DropdownMenu, PopupMenuItem};
use gpui_kit::component::popover::Popover;
use gpui_kit::component::separator::Separator;
use gpui_kit::component::{ActiveTheme, Icon, Selectable, Sizable, WindowExt, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, Selectable, Sizable, WindowExt, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nostr_sdk::prelude::*;
use person::shorten_pubkey;
use settings::AppSettings;
@@ -210,7 +211,7 @@ impl Sidebar {
})
}
pub(super) fn render_footer(&self, loading: bool, _cx: &mut Context<Self>) -> Div {
pub(super) fn render_footer(&self, loading: bool, cx: &mut Context<Self>) -> Div {
v_flex()
.p_2()
.flex_shrink_0()
@@ -220,7 +221,7 @@ impl Sidebar {
.when(!loading, |this| {
this.child(
Nav::new("settings")
.prefix(Icon::new(IconName::Settings).small())
.prefix(Icon::named(IconName::Settings).size(ui::small_icon_size(cx)))
.center_prefix(true)
.label("Settings")
.text_sm()
+6 -5
View File
@@ -6,7 +6,8 @@ use gpui::{
AnyElement, App, Context, IntoElement, ParentElement, SharedString, Styled, div, uniform_list,
};
use gpui_kit::base::StyledExt as _;
use gpui_kit::component::{ActiveTheme, Icon, Sizable, h_flex, v_flex};
use gpui_kit::component::{ActiveTheme, h_flex, v_flex};
use gpui_native_kit::icons::Icon;
use nip29::GroupsRegistry;
use settings::AppSettings;
use ui::IconName;
@@ -70,7 +71,7 @@ impl Sidebar {
.when(cfg!(not(target_arch = "wasm32")), |this| {
this.child(
Nav::new("wallet")
.prefix(Icon::new(gpui_kit::assets::IconName::Wallet).small())
.prefix(Icon::named(IconName::Wallet).size(ui::small_icon_size(cx)))
.label("Wallet")
.text_sm()
.on_click(|_, window, cx| {
@@ -80,7 +81,7 @@ impl Sidebar {
})
.child(
Nav::new("browse")
.prefix(Icon::new(IconName::Compass).small())
.prefix(Icon::named(IconName::Compass).size(ui::small_icon_size(cx)))
.label("Browse")
.text_sm()
.on_click(|_, window, cx| {
@@ -89,7 +90,7 @@ impl Sidebar {
)
.child(
Nav::new("reqs")
.prefix(Icon::new(IconName::Invite).small())
.prefix(Icon::named(IconName::Invite).size(ui::small_icon_size(cx)))
.label("Requests")
.text_sm()
.when(request_count > 0, |this| {
@@ -129,7 +130,7 @@ impl Sidebar {
)
.child(
Nav::new("contacts")
.prefix(Icon::new(IconName::Book).small())
.prefix(Icon::named(IconName::Book).size(ui::small_icon_size(cx)))
.label("Contacts")
.text_sm()
.when(contacts_open, |this| this.bg(cx.theme().list_active))
+5 -4
View File
@@ -11,7 +11,8 @@ use gpui_kit::base::StyledExt as _;
use gpui_kit::component::dialog::DialogButtonProps;
use gpui_kit::component::dock::{ClosePanel, DockArea, DockPlacement, PanelHandle};
use gpui_kit::component::menu::{ContextMenuExt as _, PopupMenuItem};
use gpui_kit::component::{ActiveTheme, Icon, Selectable, Sizable, WindowExt, h_flex};
use gpui_kit::component::{ActiveTheme, Selectable, Sizable, WindowExt, h_flex};
use gpui_native_kit::icons::Icon;
use nip29::Group;
use nostr_sdk::prelude::*;
use settings::AppSettings;
@@ -119,9 +120,9 @@ impl Sidebar {
Nav::new(label)
.label(label)
.suffix(
Icon::new(icon)
.small()
.text_color(cx.theme().muted_foreground),
Icon::named(icon)
.size(ui::small_icon_size(cx))
.color(cx.theme().muted_foreground),
)
.text_xs()
.font_semibold()
+1 -1
View File
@@ -6,7 +6,7 @@ use gpui::{
AnyElement, App, Context, Entity, IntoElement, ParentElement, SharedString, Styled, Task,
Window, div, uniform_list,
};
use gpui_kit::assets::IconName;
use ui::IconName;
use gpui_kit::component::button::{Button, ButtonVariants};
use gpui_kit::component::input::Input;
use gpui_kit::component::{ActiveTheme, Selectable, Sizable, h_flex, v_flex};