mirror of
https://github.com/mastodon/mastodon.git
synced 2024-12-14 23:24:55 +01:00
b5927301cf
Port f54ca3d08e
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
30 lines
848 B
JavaScript
30 lines
848 B
JavaScript
// Handles browser quirks, based on
|
|
// https://developer.mozilla.org/en-US/docs/Web/API/Notifications_API/Using_the_Notifications_API
|
|
|
|
const checkNotificationPromise = () => {
|
|
try {
|
|
Notification.requestPermission().then();
|
|
} catch(e) {
|
|
return false;
|
|
}
|
|
|
|
return true;
|
|
};
|
|
|
|
const handlePermission = (permission, callback) => {
|
|
// Whatever the user answers, we make sure Chrome stores the information
|
|
if(!('permission' in Notification)) {
|
|
Notification.permission = permission;
|
|
}
|
|
|
|
callback(Notification.permission);
|
|
};
|
|
|
|
export const requestNotificationPermission = (callback) => {
|
|
if (checkNotificationPromise()) {
|
|
Notification.requestPermission().then((permission) => handlePermission(permission, callback));
|
|
} else {
|
|
Notification.requestPermission((permission) => handlePermission(permission, callback));
|
|
}
|
|
};
|