Delay clearing notifications until a card is actually viewed.

Send the "read" beacon when the card is made visible.

Also take care to only send the "disconnect" beacon if the card is
visible.

ref: https://fizzy.37signals.com/5986089/collections/2/cards/1301
This commit is contained in:
Mike Dalessio
2025-08-06 12:18:12 -04:00
parent a57bed2c6d
commit 8ec109ec1a
2 changed files with 12 additions and 4 deletions
@@ -4,11 +4,17 @@ import { Controller } from "@hotwired/stimulus"
export default class extends Controller {
static values = { url: String }
connect() {
post(this.urlValue, { responseKind: "turbo-stream" })
visibilityChanged() {
this.#sendBeacon()
}
disconnect() {
post(this.urlValue, { responseKind: "turbo-stream" })
this.#sendBeacon()
}
#sendBeacon() {
if (!document.hidden) {
post(this.urlValue, { responseKind: "turbo-stream" })
}
}
}