aboutsummaryrefslogtreecommitdiff
path: root/src/api
diff options
context:
space:
mode:
Diffstat (limited to 'src/api')
-rw-r--r--src/api/Notifications/Notifications.tsx11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/api/Notifications/Notifications.tsx b/src/api/Notifications/Notifications.tsx
index 9c599aa..46472ad 100644
--- a/src/api/Notifications/Notifications.tsx
+++ b/src/api/Notifications/Notifications.tsx
@@ -76,8 +76,15 @@ function shouldBeNative() {
return false;
}
-export function showNotification(data: NotificationData) {
- if (shouldBeNative()) {
+export async function requestPermission() {
+ return (
+ Notification.permission === "granted" ||
+ (Notification.permission !== "denied" && (await Notification.requestPermission()) === "granted")
+ );
+}
+
+export async function showNotification(data: NotificationData) {
+ if (shouldBeNative() && await requestPermission()) {
const { title, body, icon, image, onClick = null, onClose = null } = data;
const n = new Notification(title, {
body,