Now that the spec is finished use the unprefixed API, which was also moved from window to navigator. Still uses feature detection so it fail gracefully when not available in the user agent.
24 lines
575 B
JavaScript
24 lines
575 B
JavaScript
// Updates the PWA badging if avaliable
|
|
export default {
|
|
name: "badging",
|
|
after: "message-bus",
|
|
|
|
initialize(container) {
|
|
if (!navigator.setAppBadge) return; // must have the Badging API
|
|
|
|
const user = container.lookup("current-user:main");
|
|
if (!user) return; // must be logged in
|
|
|
|
this.notifications =
|
|
user.unread_notifications + user.unread_private_messages;
|
|
|
|
container
|
|
.lookup("service:app-events")
|
|
.on("notifications:changed", this, "_updateBadge");
|
|
},
|
|
|
|
_updateBadge() {
|
|
navigator.setAppBadge(this.notifications);
|
|
}
|
|
};
|