From 5cc359a4ea2f52ef787196d74b12b245ed62f249 Mon Sep 17 00:00:00 2001 From: hmhealey Date: Thu, 4 Feb 2016 16:51:32 -0500 Subject: Changed notifications to only request permission once per session if the user clicks 'Not now' on Firefox --- web/react/utils/utils.jsx | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) (limited to 'web') diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx index e8cfc82bc..6bb7baa64 100644 --- a/web/react/utils/utils.jsx +++ b/web/react/utils/utils.jsx @@ -142,16 +142,24 @@ export function getCookie(name) { } } +var requestedNotificationPermission = false; + export function notifyMe(title, body, channel) { - if ('Notification' in window && Notification.permission !== 'denied') { - Notification.requestPermission(function onRequestPermission(permission) { + if (!('Notification' in window)) { + return; + } + + if (Notification.permission === 'granted' || (Notification.permission === 'default' && !requestedNotificationPermission)) { + requestedNotificationPermission = true; + + Notification.requestPermission((permission) => { if (Notification.permission !== permission) { Notification.permission = permission; } if (permission === 'granted') { - var notification = new Notification(title, {body: body, tag: body, icon: '/static/images/icon50x50.png'}); - notification.onclick = function onClick() { + var notification = new Notification(title, {body, tag: body, icon: '/static/images/icon50x50.png'}); + notification.onclick = () => { window.focus(); if (channel) { switchChannel(channel); @@ -159,7 +167,7 @@ export function notifyMe(title, body, channel) { window.location.href = TeamStore.getCurrentTeamUrl() + '/channels/town-square'; } }; - setTimeout(function closeNotificationOnTimeout() { + setTimeout(() => { notification.close(); }, 5000); } -- cgit v1.2.3-1-g7c22