From 68055977d24c25cd2d086cba173abb392059b03d Mon Sep 17 00:00:00 2001 From: Vendicated Date: Tue, 14 Feb 2023 19:20:10 +0100 Subject: NotificationAPI: Correctly request browser permissions --- src/api/Notifications/Notifications.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'src/api/Notifications') 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, -- cgit