Skip to content

Commit

Permalink
Added markMessageASRead func
Browse files Browse the repository at this point in the history
  • Loading branch information
RCGV1 committed Feb 18, 2025
1 parent 6e6de4d commit 1abe1bf
Showing 1 changed file with 19 additions and 10 deletions.
29 changes: 19 additions & 10 deletions Meshtastic/Views/Messages/ChannelMessageList.swift
Original file line number Diff line number Diff line change
Expand Up @@ -112,16 +112,8 @@ struct ChannelMessageList: View {
.frame(maxWidth: .infinity)
.id(message.messageId)
.onAppear {
if !message.read {
message.read = true
do {
try context.save()
Logger.data.info("📖 [App] Read message \(message.messageId) ")
appState.unreadChannelMessages = myInfo.unreadMessages
context.refresh(myInfo, mergeChanges: true)
} catch {
Logger.data.error("Failed to read message \(message.messageId): \(error.localizedDescription)")
}
Task {
await markMessageAsRead(message)
}
}
}
Expand Down Expand Up @@ -178,4 +170,21 @@ struct ChannelMessageList: View {
}
}
}

@MainActor
func markMessageAsRead(_ message: MessageEntity) async {
guard !message.read else { return }

message.read = true

do {
try await Task.sleep(nanoseconds: 300_000_000) // 300ms debounce
try context.save()
Logger.data.info("📖 [App] Read message \(message.messageId)")
appState.unreadChannelMessages = myInfo.unreadMessages
context.refresh(myInfo, mergeChanges: true)
} catch {
Logger.data.error("Failed to read message \(message.messageId): \(error.localizedDescription)")
}
}
}

0 comments on commit 1abe1bf

Please sign in to comment.