gitlab-org--gitlab-foss/app/assets/javascripts/lib/utils/notify.js
Brandon Labuschagne 3d8163dcf6 Disable unnecessary ESLint i18n offences
Unnecessary offences include false positives as well as flagged
errors which have follow up issues in order to be addressed.

Not all issues have been addressed before this being submitted
in the spirit of results and iteration.
2019-06-13 19:15:25 +00:00

50 lines
1.4 KiB
JavaScript

/* eslint-disable func-names, no-var, consistent-return, prefer-arrow-callback, no-return-assign, object-shorthand */
function notificationGranted(message, opts, onclick) {
var notification;
notification = new Notification(message, opts);
setTimeout(function() {
// Hide the notification after X amount of seconds
return notification.close();
}, 8000);
return (notification.onclick = onclick || notification.close);
}
function notifyPermissions() {
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */
if ('Notification' in window) {
return Notification.requestPermission();
}
}
function notifyMe(message, body, icon, onclick) {
var opts;
opts = {
body: body,
icon: icon,
};
// Let's check if the browser supports notifications
/* eslint-disable-next-line @gitlab/i18n/no-non-i18n-strings */
if (!('Notification' in window)) {
// do nothing
} else if (Notification.permission === 'granted') {
// If it's okay let's create a notification
return notificationGranted(message, opts, onclick);
} else if (Notification.permission !== 'denied') {
return Notification.requestPermission(function(permission) {
// If the user accepts, let's create a notification
if (permission === 'granted') {
return notificationGranted(message, opts, onclick);
}
});
}
}
const notify = {
notificationGranted,
notifyPermissions,
notifyMe,
};
export default notify;