Port f54ca3d08e
to glitch-soc
Signed-off-by: Thibaut Girka <thib@sitedethib.com>
local
parent
2eb054c07f
commit
b5927301cf
14 changed files with 202 additions and 18 deletions
@ -0,0 +1,29 @@ |
||||
// 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)); |
||||
} |
||||
}; |
Loading…
Reference in new issue