diff --git a/Meshtastic/Views/Messages/ChannelMessageList.swift b/Meshtastic/Views/Messages/ChannelMessageList.swift index 276f6fbf..573a7dc8 100644 --- a/Meshtastic/Views/Messages/ChannelMessageList.swift +++ b/Meshtastic/Views/Messages/ChannelMessageList.swift @@ -112,8 +112,16 @@ struct ChannelMessageList: View { .frame(maxWidth: .infinity) .id(message.messageId) .onAppear { - Task { - await markMessageAsRead(message) + 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)") + } } } } @@ -170,21 +178,4 @@ 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)") - } - } }