diff --git a/bitchat/Services/BLEService.swift b/bitchat/Services/BLEService.swift index 6bec699f..6389d839 100644 --- a/bitchat/Services/BLEService.swift +++ b/bitchat/Services/BLEService.swift @@ -2041,6 +2041,8 @@ final class BLEService: NSObject { for peerID in disconnectedPeers { self.delegate?.didDisconnectFromPeer(peerID) } + // Publish snapshots so UnifiedPeerService updates connection/reachability icons + self.publishFullPeerData() self.delegate?.didUpdatePeerList(currentPeerIDs) } } diff --git a/bitchat/Views/MeshPeerList.swift b/bitchat/Views/MeshPeerList.swift index 88aa1686..df25f8af 100644 --- a/bitchat/Views/MeshPeerList.swift +++ b/bitchat/Views/MeshPeerList.swift @@ -115,6 +115,14 @@ struct MeshPeerList: View { Spacer() + // Unread message indicator for this peer + if !isMe, item.hasUnread { + Image(systemName: "envelope.fill") + .font(.system(size: 10)) + .foregroundColor(.yellow) + .help("New messages") + } + if !isMe { Button(action: { onToggleFavorite(peer.id) }) { Image(systemName: (peer.favoriteStatus?.isFavorite ?? false) ? "star.fill" : "star")