From 02252b6a91e5b0a3d6be064bad2713788ea4fd53 Mon Sep 17 00:00:00 2001 From: jack Date: Sun, 24 Aug 2025 17:33:04 +0200 Subject: [PATCH] UI: MeshPeerList shows transport state icon: radio for mesh-connected, purple globe for mutual favorite/Nostr; fallback dim person for others --- bitchat/Views/MeshPeerList.swift | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/bitchat/Views/MeshPeerList.swift b/bitchat/Views/MeshPeerList.swift index dc67f958..7b1559ac 100644 --- a/bitchat/Views/MeshPeerList.swift +++ b/bitchat/Views/MeshPeerList.swift @@ -44,9 +44,24 @@ struct MeshPeerList: View { let assigned = viewModel.colorForMeshPeer(id: peer.id, isDark: colorScheme == .dark) let baseColor = isMe ? Color.orange : assigned if isMe { - Image(systemName: "person.fill").font(.system(size: 10)).foregroundColor(baseColor) + Image(systemName: "person.fill") + .font(.system(size: 10)) + .foregroundColor(baseColor) + } else if peer.isConnected { + // Mesh-connected peer: radio icon + Image(systemName: "antenna.radiowaves.left.and.right") + .font(.system(size: 10)) + .foregroundColor(baseColor) + } else if peer.isMutualFavorite { + // Mutual favorite reachable via Nostr: globe icon (purple) + Image(systemName: "globe") + .font(.system(size: 10)) + .foregroundColor(.purple) } else { - Image(systemName: "mappin.and.ellipse").font(.system(size: 10)).foregroundColor(baseColor) + // Fallback icon for others (dimmed) + Image(systemName: "person") + .font(.system(size: 10)) + .foregroundColor(secondaryTextColor) } let displayName = isMe ? viewModel.nickname : peer.nickname