1 Commits
Author SHA1 Message Date
reya 2124b00590 show owner avatar in repo row
Rust / build (macos-latest, stable) (push) Waiting to run
Rust / build (ubuntu-latest, stable) (push) Waiting to run
Rust / build (windows-latest, stable) (push) Waiting to run
2026-10-27 09:26:33 +07:00
2 changed files with 27 additions and 32 deletions
Generated
+13 -13
View File
@@ -285,7 +285,7 @@ dependencies = [
[[package]]
name = "assets"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"gpui-component",
@@ -1863,7 +1863,7 @@ dependencies = [
[[package]]
name = "dock"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"gpui-base",
"gpui-component",
@@ -5562,7 +5562,7 @@ dependencies = [
[[package]]
name = "metadata"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"flume 0.11.1",
@@ -6654,7 +6654,7 @@ dependencies = [
[[package]]
name = "paths"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"dirs 6.0.0",
]
@@ -8237,7 +8237,7 @@ dependencies = [
[[package]]
name = "settings"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"gpui-pre",
@@ -8334,7 +8334,7 @@ dependencies = [
[[package]]
name = "signed"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"assets",
"dock",
@@ -8356,7 +8356,7 @@ dependencies = [
[[package]]
name = "signed_core"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"nostr",
"serde",
@@ -8365,7 +8365,7 @@ dependencies = [
[[package]]
name = "signed_git"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"diffy",
@@ -8383,7 +8383,7 @@ dependencies = [
[[package]]
name = "signed_nostr"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"nostr-connect",
@@ -8395,7 +8395,7 @@ dependencies = [
[[package]]
name = "signed_state"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"bitcoin_hashes 1.2.0",
@@ -8419,7 +8419,7 @@ dependencies = [
[[package]]
name = "signed_ui"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"assets",
"futures",
@@ -10018,7 +10018,7 @@ checksum = "b6c140620e7ffbb22c2dee59cafe6084a59b5ffc27a8859a5f0d494b5d52b6be"
[[package]]
name = "utils"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"nostr",
]
@@ -11267,7 +11267,7 @@ checksum = "1ebf944e87a7c253233ad6766e082e3cd714b5d03812acc24c318f549614536e"
[[package]]
name = "workspace"
version = "0.2.0-alpha"
version = "0.2.0"
dependencies = [
"anyhow",
"assets",
+11 -16
View File
@@ -514,10 +514,13 @@ impl SidebarPanel {
cx: &mut Context<Self>,
) -> impl IntoElement {
let name = announcement.name().map(SharedString::from);
// The sidebar rows are compact, so the avatar matches the 16px nav icons.
let avatar = Avatar::new(format!("{}:{}", announcement.owner, announcement.id)).xsmall();
let announcement = announcement.clone();
let owner = self.directory.read(cx).profile(&announcement.owner, cx);
let avatar = Avatar::new(announcement.owner)
.name(owner.name())
.picture(owner.picture())
.xsmall();
let announcement = announcement.clone();
let addr = announcement.addr();
let unpushed = self.unpushed.get(&addr).copied().unwrap_or(0);
let unsynced = self.sync_directory.read(cx).unsynced(&addr, cx);
@@ -773,32 +776,24 @@ pub(super) fn server_host(relay: &RelayUrl) -> SharedString {
.unwrap_or_else(|| SharedString::from(relay.to_string()))
}
/// The repository's pixel avatar, with the bound owner's avatar at its bottom right.
/// The bound owner's avatar, falling back to the repo's pixel avatar when unowned.
fn local_avatar(
entry: &ResolvedLocalRepo,
directory: &Entity<ProfileDirectory>,
cx: &App,
) -> AnyElement {
// Matches the other sidebar rows, and the badge below sits at its corner.
let avatar = Avatar::new(entry.path.to_string_lossy()).xsmall();
let Some(owner) = entry.nip34.as_ref().and_then(|binding| binding.owner) else {
return avatar.into_any_element();
return Avatar::new(entry.path.to_string_lossy())
.xsmall()
.into_any_element();
};
let profile = directory.read(cx).profile(&owner, cx);
div()
.relative()
.child(avatar)
.child(
div().absolute().bottom_neg_0p5().right_neg_0p5().child(
Avatar::new(owner)
.name(profile.name())
.picture(profile.picture())
.size(px(14.)),
),
)
.xsmall()
.into_any_element()
}