Fix read receipts and improve UI

- Changed back to bold blue double checkmarks for read status
- Send read receipts for both 'sent' and 'delivered' status messages
- Added onChange handler to send read receipts whenever switching to a private chat
- Made markPrivateMessagesAsRead public so it can be called from views
- This ensures read receipts are sent when opening a chat from notifications or any other way
This commit is contained in:
jack
2025-07-06 22:37:59 +02:00
parent c72c4949ff
commit fbe779e684
2 changed files with 14 additions and 6 deletions
+3 -3
View File
@@ -895,7 +895,7 @@ class ChatViewModel: ObservableObject {
selectedPrivateChatPeer = nil
}
private func markPrivateMessagesAsRead(from peerID: String) {
func markPrivateMessagesAsRead(from peerID: String) {
guard let messages = privateChats[peerID] else {
print("[Delivery] No messages found for peer \(peerID)")
return
@@ -912,8 +912,8 @@ class ChatViewModel: ObservableObject {
if message.senderPeerID == peerID {
if let status = message.deliveryStatus {
switch status {
case .delivered:
// Create and send read receipt
case .sent, .delivered:
// Create and send read receipt for sent or delivered messages
// Use the senderPeerID from the message to ensure it goes to the right peer
if let messageSenderID = message.senderPeerID {
let receipt = ReadReceipt(