pinafore/routes/_store/notificationObservers.js

20 lines
581 B
JavaScript
Raw Normal View History

2018-02-16 16:59:44 +00:00
import { setFavicon } from '../_utils/setFavicon'
import { scheduleIdleTask } from '../_utils/scheduleIdleTask'
2018-02-21 05:29:59 +00:00
let currentFaviconHasNotifications = false
2018-02-16 16:59:44 +00:00
export function notificationObservers (store) {
store.observe('hasNotifications', hasNotifications => {
if (!process.browser) {
return
}
2018-02-21 05:29:59 +00:00
if (currentFaviconHasNotifications === hasNotifications) {
return
}
2018-02-16 16:59:44 +00:00
scheduleIdleTask(() => {
2018-02-21 05:29:59 +00:00
setFavicon(hasNotifications ? '/favicon-alert.png' : '/favicon.png')
currentFaviconHasNotifications = !currentFaviconHasNotifications
2018-02-16 16:59:44 +00:00
})
})
2018-02-16 17:01:03 +00:00
}