Private
Public Access
1
0

osx: mark as read when hovering over window

This commit is contained in:
2025-09-25 00:20:19 -07:00
parent cbd9dccf1a
commit e650cffde7
2 changed files with 23 additions and 2 deletions

View File

@@ -23,5 +23,10 @@ struct ConversationView: View
entryModel.handleDroppedProviders(providers)
return true
}
.onHover { isHovering in
guard isHovering else { return }
transcriptModel.setNeedsMarkAsRead()
}
}
}

View File

@@ -131,6 +131,9 @@ struct TranscriptView: View
internal var messages: [Display.Message]
internal let client = XPCClient()
private var needsMarkAsRead: Bool = false
private var lastMarkAsRead: Date = .now
init(messages: [Display.Message] = []) {
self.messages = messages
rebuildDisplayItems()
@@ -148,6 +151,19 @@ struct TranscriptView: View
}
}
func setNeedsMarkAsRead() {
guard needsMarkAsRead == false else { return }
guard Date.now.timeIntervalSince(lastMarkAsRead) > 5.0 else { return }
needsMarkAsRead = true
Task { @MainActor [weak self] in
guard let self else { return }
await markAsRead()
needsMarkAsRead = false
lastMarkAsRead = .now
}
}
func attachmentDownloaded(id: String) {
// TODO: should be smarter here
setNeedsReload(animated: false)