refactor avatar component

This commit is contained in:
2026-09-29 13:18:20 +07:00
parent 8073c97c5a
commit 4d116036b9
8 changed files with 100 additions and 207 deletions
+15 -9
View File
@@ -11,6 +11,7 @@ use gpui::{
};
use nostr_sdk::prelude::*;
use person::PersonRegistry;
use settings::AppSettings;
use state::NostrRegistry;
use theme::ActiveTheme;
use ui::avatar::Avatar;
@@ -21,8 +22,6 @@ use ui::input::{Input, InputEvent, InputState};
use ui::nav::Nav;
use ui::{Disableable, IconName, Sizable, WindowExtension, h_flex, v_flex};
use crate::sidebar::nav_avatar;
/// Maximum number of members a chat can have.
const MAX_MEMBERS: usize = 3;
@@ -349,10 +348,14 @@ impl NewChat {
Nav::new(SharedString::from(format!("contact-{}", start + offset)))
.label(profile.name())
.text_sm()
.when_some(
nav_avatar(Some(profile.avatar_seed()), profile.avatar(), cx),
|this, avatar| this.prefix(avatar),
)
.when(!AppSettings::get_hide_avatar(cx), |this| {
this.prefix(
Avatar::from_source(profile.avatar())
.seed(profile.avatar_seed())
.small()
.flex_shrink_0(),
)
})
.on_click(cx.listener(move |this, _event, _window, cx| {
this.toggle_member(&public_key, cx);
}))
@@ -380,9 +383,12 @@ impl NewChat {
.bg(cx.theme().ghost_element_background_alt)
.text_size(px(10.))
.hover(|this| this.bg(cx.theme().ghost_element_hover))
.when_some(profile.avatar(), |this, avatar| {
this.child(Avatar::from_source(avatar).xsmall().flex_shrink_0())
})
.child(
Avatar::from_source(profile.avatar())
.seed(profile.avatar_seed())
.xsmall()
.flex_shrink_0(),
)
.child(div().max_w_32().truncate().child(profile.name()))
.on_click(cx.listener(move |this, _event, _window, cx| {
this.toggle_member(&public_key, cx);