Files
Jason Zimdars 1d6a60cd17 Remove debug
2025-07-24 14:49:53 -05:00

42 lines
892 B
JavaScript

import { Controller } from "@hotwired/stimulus"
import { onNextEventLoopTick } from "helpers/timing_helpers"
export default class extends Controller {
static targets = [ "unread" ]
static classes = [ "unread" ]
connect() {
onNextEventLoopTick(() => this.update())
}
update() {
onNextEventLoopTick(() => {
if (this.#available) {
const unreadCount = this.#unreadCount
if (unreadCount > 0) {
navigator.setAppBadge(unreadCount)
} else {
navigator.clearAppBadge()
}
}
})
}
clear() {
onNextEventLoopTick(() => {
if (this.#available) {
navigator.clearAppBadge()
}
})
}
get #unreadCount() {
return this.unreadTargets.filter(unreadTarget => unreadTarget.classList.contains(this.unreadClass)).length
}
get #available() {
return "setAppBadge" in navigator
}
}